QMT 如何运行:三大核心运行机制
发布时间:12小时前阅读:13
QMT 的运行方式和你写的普通 Python 脚本不一样,它把「什么时候执行」交给了框架。理解这一点,很多「代码没错但不执行」的困惑就没了。
第一套机制是事件驱动。框架在每根 K 线到达、每个行情推送、每次委托状态变化时,调用你写的对应函数。你不需要写循环,也不该在函数里写死循环等待。新手最容易犯的错是在初始化函数里写一个 while,把整个进程卡住,之后所有事件都进不来。
第二套机制是上下文。策略运行时会带一个上下文对象,里面存着当前标的、当前时间、账户信息、以及你自己定义的变量。这个对象在两次调用之间是保留的,但也可能因为重新加载而重置。所以关键状态不要只存在内存里,重要的参数和持仓记录要落盘,重启后能恢复。
第三套机制是交易通道。策略发出的委托先到客户端,再由客户端提交给券商柜台,返回的状态有已报、部成、已成、已撤、废单。策略只负责发单,不负责保证成交。因此判断「有没有买上」必须看成交回报,不能看委托是否成功。
三套机制串起来的实际流程是:行情到达触发函数,函数读上下文做判断,判断通过就发单,发单结果异步回来更新上下文。任何一环的假设错了,行为就会偏。
有两个实践建议。一是把「信号」和「下单」拆成两步,信号先记日志,确认逻辑无误再放开下单,避免误触发。二是给每个函数加时间戳日志,运行时能看出是哪个环节慢。
判断标准:能把一次完整交易拆成「事件进来、上下文变化、委托出去、回报回来」四步讲清楚,就算真的理解 QMT 的运行方式了。
股票/量化开户欢迎找我!满足条件股票佣金万0.854、etf 可转债佣金万0.5、国债逆回购一折(百万分之一)!期权1.8元一张全包价!量化软件QMT+ptrade免费使用!还有888、999资金靓号等你选!
温馨提示:投资有风险,选择需谨慎。



问一问
从业认证

+微信
分享该文章
