🚀 AI 一键生成 qmt 策略代码

QMT 平台 set_universe 设定 ETF 代码报错“无效股票代码”的解决方法

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

问题描述

ContextInfo.set_universe 函数无法设定 etf 代码

def init(ContextInfo):
ContextInfo.trade_code_list = [
"513100.XSHG", # 纳指ETF
"513520.XSHG", # 日经ETF
"513030.XSHG", # 德国ETF
]
ContextInfo.set_universe(ContextInfo.trade_code_list)


报错:【2025-11-16 23:11:05.806】 [系统][WARNING][set_universe]无效股票代码:513100.XSHG 513030.XSHG 513520.XSHG

解决方案

出现这个报错的原因是股票/ETF代码的市场后缀格式不正确

在很多其他的量化平台(如聚宽、米筐等)中,上交所的后缀通常是 .XSHG,深交所是 .XSHE。但是,在 QMT 平台中,上交所的后缀是 .SH,深交所的后缀是 .SZ

因此,QMT 无法识别 513100.XSHG 这种格式,从而提示“无效股票代码”。

解决方法

将代码列表中的 .XSHG 替换为 .SH 即可。修改后的代码如下:

def init(ContextInfo):
    ContextInfo.trade_code_list = [
        "513100.SH",  # 纳指ETF
        "513520.SH",  # 日经ETF
        "513030.SH",  # 德国ETF
    ]
    ContextInfo.set_universe(ContextInfo.trade_code_list)

附:QMT 常用市场代码后缀

根据 QMT API 文档的规定,常用的市场代码后缀如下:

  • 上交所SH (如 600000.SH, 510300.SH)
  • 深交所SZ (如 000001.SZ, 159915.SZ)
  • 中金所IF (如 IF2309.IF)
  • 上期所SF
  • 大商所DF
  • 郑商所ZF

在编写 QMT 策略时,请务必使用 QMT 专属的市场代码规范。