3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant (聚宽) 平台中,get_price 是获取历史行情数据最常用的 API 之一。理解 skip_paused、fill_paused 和 count 这三个参数对于正确处理停牌股票的数据至关重要。
count:表示你要获取的数据行数(即 K 线根数)。例如 count=1 表示获取距离 end_date 最近的 1 根 K 线数据。skip_paused:是否跳过不交易的日期(包括停牌、未上市、已退市)。
True:跳过停牌日,直接往前寻找最近的一个正常交易日的数据。False(默认):不跳过停牌日,时间轴保持连续。fill_paused:当 skip_paused=False(即不跳过停牌日)时,如何填充停牌日的数据。
True(默认):使用停牌前最后一个正常交易日的收盘价(pre_close)来填充停牌日的开、高、低、收价格,成交量(volume)和成交额(money)为 0。False:停牌日的所有价格和成交量数据都用 NaN(空值)填充。skip_paused 和 fill_paused 的关系是先后的:
skip_paused=True:系统会直接把停牌的日期从结果中剔除。既然停牌日都不存在于返回的结果中了,那么 fill_paused 参数实际上就失效了(因为没有停牌日需要去填充)。skip_paused=False:系统会保留停牌的日期,此时 fill_paused 才会起作用,决定这个保留下来的停牌日里填的是前收盘价还是 NaN。假设股票上个交易日停牌,您设置了 count=1(获取最近 1 天的数据):
情况 1:skip_paused=True,fill_paused=False,count=1
skip_paused=True,系统会跳过上个交易日(停牌日),继续往前找,直到找到停牌前最后一个正常交易的日子,并返回那一天的真实交易数据。此时 fill_paused=False 不起作用。情况 2:skip_paused=True,fill_paused=True,count=1
fill_paused=True 同样不起作用。补充情况 3:skip_paused=False,fill_paused=False,count=1
NaN。补充情况 4:skip_paused=False,fill_paused=True,count=1
skip_paused=True,这样计算出的指标是基于真实交易日的,不会被停牌日的平直线干扰。skip_paused=False, fill_paused=True,这样所有股票在同一天都有数据,方便矩阵运算。