🚀 AI 一键生成 joinquant 策略代码

如何在 JoinQuant 中获取科创板成交量及解析交易所成交金额差异?

joinquant | 发布时间: 2026/5/22
以下内容由 EasyQuant 生成。

问题描述

finance表关于科创板成交量等信息

请问1,finance.STK_EXCHANGE_TRADE_INFO这个表中的数据是否有科创板,查看后没有发现,那是否有其他方式查看科创板数据?

>
>
请问2,finance.STK_EXCHANGE_TRADE_INFO这个表9月19日上海市场成交金额是2744.99,深证成交金额是3615.35,两市总成交金额5360.34
>
同时查看通达信,上海市场成交金额是2741,深证成交金额是3609,两市总成交金额6360(仅能查看到这个精确度)
>
其他日期的金额也是不相同,请问这里面有什么规则性的统计规则差异吗?

解决方案

针对您在 JoinQuant 聚宽平台使用 finance.STK_EXCHANGE_TRADE_INFO 表时遇到的疑问,解答如下:

问题 1:关于科创板成交量数据的获取

finance.STK_EXCHANGE_TRADE_INFO 表主要记录的是沪深交易所整体的宏观交易概况。如果该表中没有单独列出科创板的细分数据,通常是因为上交所的数据已经将其汇总在内,或者该表的设计未针对科创板进行独立拆分。

获取科创板数据的替代方式:

  1. 通过科创50指数获取整体概况
    您可以直接获取科创50指数(代码:000688.XSHG)的行情数据,这能代表科创板核心资产的成交情况。

    df = get_price('000688.XSHG', start_date='2023-09-19', end_date='2023-09-19', fields=['volume', 'money'])
    print(df)
    
  2. 汇总所有科创板个股数据(最精确)
    如果您需要整个科创板的精确成交金额,可以通过 get_all_securities 获取所有科创板股票(代码以 688 开头),然后获取它们的 money(成交额)进行求和。

    # 获取所有股票
    all_stocks = get_all_securities(['stock']).index.tolist()
    # 筛选科创板股票
    star_stocks = [code for code in all_stocks if code.startswith('688')]
    # 获取某日成交额并求和
    df = get_price(star_stocks, start_date='2023-09-19', end_date='2023-09-19', fields=['money'], panel=False)
    total_money = df['money'].sum()
    print("科创板总成交额:", total_money)
    

问题 2:关于聚宽数据与通达信等软件的统计口径差异

您观察到 finance.STK_EXCHANGE_TRADE_INFO 中的数据与通达信软件显示的两市总成交金额存在差异,这在量化数据源和传统行情软件之间是非常常见的现象。主要由以下统计规则和口径差异导致:

  1. 包含的证券品种不同

    • 聚宽(JoinQuant):该表可能仅严格统计了 A股股票 的成交金额,或者剔除了某些特定类型的证券。
    • 通达信等行情软件:通常显示的“两市总成交额”不仅包含A股,还可能包含了 B股、场内基金(ETF/LOF)、债券、甚至部分期权 的成交额。例如,通达信的总成交额6360与聚宽的5360相差约1000亿,这部分差额极有可能是场内基金和债券的成交量。
  2. 大宗交易与盘后交易的计算

    • 某些数据源在日终统计时会包含大宗交易、盘后固定价格交易(如科创板的盘后交易),而另一些数据源可能只统计连续竞价和集合竞价时段的成交额。
  3. 复权与精度处理

    • 宏观统计表的数据来源通常是交易所的每日盘后快报,不同数据商在接收和清洗这些快报时,对单位换算(如万元、亿元)的四舍五入处理可能存在微小差异。

建议:
在量化回测中,如果您需要计算全市场的真实成交额用于策略信号(如判断市场热度),建议统一使用聚宽的个股 money 字段进行横截面求和。这样不仅能保证与您策略交易的标的完全对应,还能避免因宏观统计口径不明导致的信号偏差。