量化交易软件QMT开通!QMT里set_universe怎么设?避开这几个坑
发布时间:9小时前阅读:41
在QMT里写策略,set_universe 干的事就是告诉本地客户端“我要盯哪几只票”。你可以把它理解成给策略画个圈,圈里的股票才会被纳入行情订阅和后续计算,圈外的涨跌跟你没关系。这通常是写策略的第一步,放在 init 初始化函数里跑一次就行。
具体怎么塞代码进去
最直接的方式是准备一个列表,把带后缀的股票代码丢进去。后缀千万别漏:上海是 .SH,深圳是 .SZ。A股代码有重复的,写法上大概就是 ContextInfo.set_universe(['******.SH', '******.SZ']) 这个意思。
如果你不想一个个手敲,QMT里能直接取板块成分股。比如把沪深300或者上证50的成分列表拿过来,直接塞给 set_universe,省事很多。不过得留个心眼:股票池设进去之后,你用 get_universe 读出来的顺序不一定跟你当初写进去的顺序一模一样,别指望靠列表下标去对应某只票,那玩意儿不太靠谱。
几个容易踩的坑
第一,这个函数管的是“关注范围”,不是下单指令。设了池子只是让策略去取这些票的数据、算信号,买不买、买多少是后面交易函数的事。第二,如果你跑的是组合策略,池子里多放几只;单股策略放一个代码就行,QMT会自己区分单股还是组合模型。第三,池子不是越大越好。小资金策略控制在几十只以内比较稳妥,一次性塞几百只冷门小票进去,Tick订阅量太大,本地客户端容易卡顿,行情延迟反而误事。
最后提一句,写代码时养成习惯:先圈池子,再写买卖逻辑。顺序搞反了,后面取数据、算指标的时候容易报错,折腾半天才发现是池子没设对,不划算。

温馨提示:投资有风险,选择需谨慎。



问一问
从业认证

+微信
分享该文章
