🚀 AI 一键生成 qmt 策略代码

QMT调用download_history_data下载tick数据报错200006怎么解决?

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

问题描述

求助】xtdata 下载郑商所 SA00 分笔数据报错 ErrorID: 200006 (Parameter 'period'

问题描述:
在调用 xtdata.download_history_data 批量下载郑商所纯碱连续合约(SA00.CZCE)的 分笔数据(tick) 时,接口返回错误:
{error:{ErrorID:200006,ErrorMsg: "Parameter 'period is invalid" } }
请问这是因为什么原因呢?或者有排查的方向吗?

解决方案

遇到 ErrorID: 200006, ErrorMsg: "Parameter 'period is invalid" 错误,通常是因为传入的参数不符合 QMT 底层接口的规范。针对您下载郑商所纯碱连续合约 tick 数据的情况,请按照以下几个方向进行排查和修改:

1. 检查市场代码后缀(最常见原因)

在 QMT 平台中,交易所的市场代码后缀与常见的其他软件(如 CZCE、SHFE)不同。根据 QMT 官方文档的市场简称代码规范

  • 郑商所 的后缀是 .ZF
  • 大商所 的后缀是 .DF
  • 上期所 的后缀是 .SF
  • 中金所 的后缀是 .IF

因此,您传入的合约代码 SA00.CZCE 是无法被 QMT 识别的,底层在解析时可能会导致后续参数(如 period)校验级联报错。请将合约代码修改为 SA00.ZF

2. 检查 period 参数的拼写

确保您在调用 download_history_data 时,period 参数传入的是全小写的字符串 'tick'。QMT 对大小写敏感,传入 'Tick''TICK' 或其他变体都会导致 period is invalid 错误。

3. 连续合约(主连)的特殊性

SA00.ZF 代表纯碱的主力连续合约。在 QMT 中,连续合约的日线、分钟线数据通常是拼接好的,但 Tick(分笔)数据的数据量极其庞大,部分券商的 QMT 服务器可能不支持直接下载长期的连续合约 Tick 数据

建议排查步骤:

  1. 先尝试下载具体月份的合约(例如:SA401.ZF 或当前实际的主力合约代码),看是否能成功下载 tick 数据。
  2. 如果具体合约可以下载,而 SA00.ZF 报错,说明服务器不支持主连的 tick 下载,您需要在代码中自行维护主力合约的换月逻辑,分段下载具体合约的 tick 数据。

正确的代码示例

# 导入 xtdata 模块
from xtquant import xtdata

# 正确的合约代码(郑商所后缀为 .ZF)
stock_code = 'SA00.ZF' 
# 或者尝试具体合约,如 'SA401.ZF'

# 正确的 period 参数
period = 'tick'

# 设置下载的时间范围(格式:YYYYMMDD)
start_time = '20231001'
end_time = '20231010'

try:
    # 调用下载接口
    xtdata.download_history_data(stock_code, period, start_time, end_time)
    print(f"{stock_code} 的 {period} 数据下载任务已提交。")
    
    # 获取本地数据验证
    data = xtdata.get_local_data(field_list=[], stock_list=[stock_code], period=period, start_time=start_time, end_time=end_time)
    print(data)
except Exception as e:
    print(f"下载失败: {e}")

总结: 请优先将 SA00.CZCE 改为 SA00.ZF,并确保 period='tick'。如果仍有问题,请尝试下载具体月份合约的 tick 数据。