3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
遇到 ErrorID: 200006, ErrorMsg: "Parameter 'period is invalid" 错误,通常是因为传入的参数不符合 QMT 底层接口的规范。针对您下载郑商所纯碱连续合约 tick 数据的情况,请按照以下几个方向进行排查和修改:
在 QMT 平台中,交易所的市场代码后缀与常见的其他软件(如 CZCE、SHFE)不同。根据 QMT 官方文档的市场简称代码规范:
.ZF.DF.SF.IF因此,您传入的合约代码 SA00.CZCE 是无法被 QMT 识别的,底层在解析时可能会导致后续参数(如 period)校验级联报错。请将合约代码修改为 SA00.ZF。
period 参数的拼写确保您在调用 download_history_data 时,period 参数传入的是全小写的字符串 'tick'。QMT 对大小写敏感,传入 'Tick'、'TICK' 或其他变体都会导致 period is invalid 错误。
SA00.ZF 代表纯碱的主力连续合约。在 QMT 中,连续合约的日线、分钟线数据通常是拼接好的,但 Tick(分笔)数据的数据量极其庞大,部分券商的 QMT 服务器可能不支持直接下载长期的连续合约 Tick 数据。
建议排查步骤:
SA401.ZF 或当前实际的主力合约代码),看是否能成功下载 tick 数据。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 数据。