3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
您好!您遇到的数据不匹配问题,并不是因为 skip_paused 参数重复计算了停牌股的成交金额。这里主要存在两个常见的误区:指数定义的混淆和数据单位的理解。
下面为您详细解析:
skip_paused 参数对指数无效在 JoinQuant 的 get_price 函数中,skip_paused 参数的作用是:是否跳过不交易日期(包括停牌、未上市或者退市后的日期)。如果不跳过,停牌时会使用停牌前的数据填充。
但是,这个参数主要是针对个股的。对于股票指数(如创业板指 399006.XSHE)而言,指数本身是由交易所统一计算并发布的,只要市场开市,指数就会有行情数据,不存在“指数停牌”的概念。因此,无论 skip_paused 设置为 True 还是 False,获取到的指数行情数据都是一样的,交易所发布的指数成交额是多少,接口返回的就是多少,不会去底层重新累加成分股。
您使用的代码是 399006.XSHE,这是创业板指(创业板指数)。
6.288269e+10(约 628.8 亿元)正是这 100 只成分股在当天的成交金额之和。如果您去行情软件上对比,请确认您看的是“创业板指”的成交额,还是整个“创业板”板块的总成交额。
get_price 返回的 money 字段,其单位是元(RMB)。
您得到的结果 6.288269e+10,科学计数法转换过来就是 62,882,690,000 元,即 628.82 亿元。您可以核对一下同花顺或东方财富等软件上 2020-03-06 这一天“创业板指(399006)”的成交额,应该是完全一致的。
如果您确实需要获取整个创业板市场的成交金额,请将代码修改为获取创业板综指(399102.XSHE):
# 获取整个创业板市场(创业板综指)的成交金额
x = get_price('399102.XSHE', start_date='2020-03-06', end_date='2020-03-07', frequency='daily', fields='money')
# 打印结果,并转换为“亿元”方便阅读
print(x / 1e8)
希望这个解答能帮您理清思路!