🚀 AI 一键生成 joinquant 策略代码

JoinQuant 聚宽平台获取 ETF 期权数据的限制与正确方法

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

问题描述

ETF期权数据获取是不是有什么限制?

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_dateend_date 设定在了 2025 年。由于目前还没有到 2025 年,系统自然无法返回未来的行情数据。

JoinQuant 平台关于期权数据的说明与限制:

  1. 日期设置:获取数据时,start_dateend_date 必须是历史已经发生的真实交易日期。
  2. 复权参数:期权本身没有复权的概念,所以您设置 fq='none'(或者 fq=None)是非常正确的。
  3. 回测与模拟限制:根据聚宽官方文档,目前期权仅提供数据获取不支持在回测和模拟交易中进行下单交易
  4. 支持的 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(退市/到期日期),确保您查询的时间段落在该期权的实际存续期内。