问题描述
在研究环境下,通过get_price获取深证市场成交额结果不对。以2023年5月19日为例,get_price获取399101.XSHE的money为2183亿,实际上应该是4885亿。但是同样方法获取上海市场的结果却是对的。哪位能分析一下是什么原因吗?
解决方案
您好!出现这个问题的原因是您使用的指数代码不正确。
在您的描述中,您使用了 399101.XSHE 来获取深证市场的成交额。实际上,399101.XSHE 是“中小板综合指数”的代码,它只代表了原中小板股票的成交情况,并不能代表整个深证市场的总成交额。因此,您获取到的 2183 亿仅仅是中小板的成交额,自然远小于深市总成交额的 4885 亿。
正确的深证市场指数代码
如果您想获取整个深证市场的总成交额,应该使用以下两个指数之一:
- 深证成指:代码为
399001.XSHE - 深证综指:代码为
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])
总结:在量化分析中,获取大盘数据时一定要核对指数代码的含义。深市和沪市的指数体系有所不同,深市有成指、综指、中小板指、创业板指等,需根据具体需求选择对应的代码。