问题描述
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 专属的市场代码规范。