🚀 AI 一键生成 joinquant 策略代码

为什么在 JoinQuant 中使用 get_price 获取深证市场成交额数据不准确?

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

问题描述

get_price获取深证市场成交额结果不对

在研究环境下,通过get_price获取深证市场成交额结果不对。以2023年5月19日为例,get_price获取399101.XSHE的money为2183亿,实际上应该是4885亿。但是同样方法获取上海市场的结果却是对的。哪位能分析一下是什么原因吗?

解决方案

您好!出现这个问题的原因是您使用的指数代码不正确

在您的描述中,您使用了 399101.XSHE 来获取深证市场的成交额。实际上,399101.XSHE 是“中小板综合指数”的代码,它只代表了原中小板股票的成交情况,并不能代表整个深证市场的总成交额。因此,您获取到的 2183 亿仅仅是中小板的成交额,自然远小于深市总成交额的 4885 亿。

正确的深证市场指数代码

如果您想获取整个深证市场的总成交额,应该使用以下两个指数之一:

  1. 深证成指:代码为 399001.XSHE
  2. 深证综指:代码为 399106.XSHE

通常情况下,使用深证成指(399001.XSHE)或深证综指(399106.XSHE)的 money 字段,就能得到您期望的深市总成交额(约 4885 亿)。

为什么上海市场是对的?

您提到获取上海市场的结果是对的,大概率是因为您使用了 000001.XSHG(上证指数)。上证指数包含了沪市所有的股票,因此它的成交额就等于沪市的总成交额。

正确的代码示例

在 JoinQuant 研究环境中,您可以这样获取正确的深市成交额:

import jqdata

# 获取深证成指(代表深市)的成交额
df_sz = get_price('399001.XSHE', start_date='2023-05-19', end_date='2023-05-19', frequency='daily', fields=['money'])
print("深证市场成交额:", df_sz['money'].values[0])

# 获取上证指数(代表沪市)的成交额
df_sh = get_price('000001.XSHG', start_date='2023-05-19', end_date='2023-05-19', frequency='daily', fields=['money'])
print("上海市场成交额:", df_sh['money'].values[0])

总结:在量化分析中,获取大盘数据时一定要核对指数代码的含义。深市和沪市的指数体系有所不同,深市有成指、综指、中小板指、创业板指等,需根据具体需求选择对应的代码。