问题描述
get_price('10010312.XSHG', start_date='2025-10-01', end_date='2025-11-14',fq='none')
为啥我这样取不到期权数据呢?
这个期权现在是有数据的啊?
解决方案
您好!您取不到期权数据,最主要的原因是您代码中设置的日期是未来的日期。
在您的代码 get_price('10010312.XSHG', start_date='2025-10-01', end_date='2025-11-14',fq='none') 中,start_date 和 end_date 设定在了 2025 年。由于目前还没有到 2025 年,系统自然无法返回未来的行情数据。
JoinQuant 平台关于期权数据的说明与限制:
- 日期设置:获取数据时,
start_date和end_date必须是历史已经发生的真实交易日期。 - 复权参数:期权本身没有复权的概念,所以您设置
fq='none'(或者fq=None)是非常正确的。 - 回测与模拟限制:根据聚宽官方文档,目前期权仅提供数据获取,不支持在回测和模拟交易中进行下单交易。
- 支持的 API:
get_price/get_bars:可以获取期权的历史 K 线数据。get_ticks:支持上交所 ETF 期权(2017-01-01起)和商品期权(2019-12-02起)的 tick 数据,提供买五卖五盘口。get_call_auction:支持上交所 ETF 期权(2017年至今)的集合竞价数据。
正确的代码示例
请将日期修改为该期权实际存续的历史日期,例如:
from jqdata import *
# 假设该期权在 2023 年 10 月份有交易数据
df = get_price('10010312.XSHG',
start_date='2023-10-01',
end_date='2023-10-31',
frequency='daily',
fq=None) # 期权不复权
print(df)
排查建议:
如果您修改为历史日期后仍然取不到数据,请使用 get_security_info('10010312.XSHG') 检查一下该期权合约的 start_date(上市日期)和 end_date(退市/到期日期),确保您查询的时间段落在该期权的实际存续期内。