外观
QMT 收紧本地文件和网络:次方量化的应对方案来了
QMT自前段时间禁用miniQMT模式之后,最近针对大QMT也增加了新的限制,最近用 QMT 的朋友,应该陆续收到了券商的通知:QMT 客户端里的内置 Python 策略,将被禁止本地文件读写和网络连接。

一、这次到底做了哪些限制
这次调整的本质,是把QMT从"半开放的本地量化工具"收紧为"封闭的策略执行环境"。对纯内置策略用户几乎零影响,但对重度依赖外部数据、外部信号的玩法,是实打实的洗牌。
1. 本地文件读写被拦截
策略里涉及读写本地文件的操作,都会被拦截并执行失败,包括 open()、read()、write(),也包括 read_csv、to_csv 这类封装好的方法。
2. 网络连接被全面禁止
- 不能发起任何网络连接,HTTP、TCP、UDP 都不行。
- 不能连局域网或本机上其他设备,包括指定 IP 和端口的连接。
- 不能连本机或局域网的数据库,MySQL、Redis、SQLite 都在内。
3. 装第三方库也绕不过去
第三方库只要涉及文件读写或网络连接,一样会被拦截。想靠换个库来绕开限制,行不通。
4. 唯一的口子
官方明确的豁免是:使用内置 Python,且交易信号完全在 QMT 系统内部产生、不与外部环境交互的策略,不受影响。 用 get_market_data_ex 读取 QMT 下载的历史行情、在客户端里打印日志,也不受影响。另外,这是管理端的菜单功能控制,不需要升级客户端。
5. 两个还没落地的问题
- 数据商白名单:官方当时表示会评估是否对万得、聚源、财汇、tushare 这类专业数据商开放网络访问白名单,结果请关注券商后续通知。个人自建的数据服务、爬虫接口,基本不会被放行。
- 中间状态怎么保存:以前不少策略把运行状态写成 CSV 或 pickle 存在本地,现在这条路走不通了。官方的说法是,替代方案还在和供应商沟通验证。
二、次方量化的应对方案
考虑到次方量化平台的很多用户,都在使用QMT进行策略实盘,QMT的本次限制,使得QMT无法通过网络请求的方式来获取次方量化平台的策略信号。为此我们上线了新功能:导出完整实盘代码。
在“我的实盘”里选择一个已经运行的实盘策略,就能把这个策略的完整逻辑导出成一份脚本。这份脚本:
- 不依赖网络访问:不联网,不依赖平台服务,也不需要 API Key。
- 不读写任何文件:运行状态用 QMT 自带的存储接口保存,每次调仓后写入,下次启动时读取。
- 只用 QMT 自己的行情做信号计算:行情取自 QMT 已下载的数据,信号在 QMT 内部算出,完全落在官方豁免的范围里。
把它粘贴进 QMT 的 Python 策略,到了策略设定的执行时间,脚本自己计算、自己下单。
三、导出的代码有哪些优势
1. 和平台完全一致的决策逻辑
动量计算、止盈止损、冷却期、涨跌停和停牌的处理,都沿用平台策略引擎的逻辑。比如策略开启了涨停过滤,就买入除涨停标的外动量最强的;没开启时,要买的标的涨停就空仓等待。
2. 支持多个策略同时运行,策略内部做资金控制
每个导出的脚本都带着它自己的实盘资金和虚拟持仓。买入按本策略的资金规划,卖出只处理本策略自己的份额,同一账户里其他策略或手动买入的同一只标的不会被误卖。多个策略可以同时在一个 QMT 里运行,互不干扰。
3. 支持设置交易委托方式、账户类型和拆单
导出时就可以选好下单参数:
- 账户类型:普通账户或信用账户。
- 买卖类型和委托方式:买入、卖出的 opType 和报价类型(默认买入卖五价、卖出买五价),可按你的习惯调整。
- 委托超时处理:超时未成交自动撤单,并按剩余数量重新挂单,次数可设。
- 拆单:单笔数量大时按份数均分,或每笔在设定区间内随机,并可设置拆单间隔。
4. 支持动量轮动策略和资产配置策略
目前这两类策略都可以导出:动量轮动策略,以及资产配置(全天候)策略。
5. 比传统网络请求方式延迟更低,执行更快
以前每次调仓都要先联网拉取信号,再下单,中间多了网络请求这一步。导出的脚本在本地直接计算、直接下单,少了一次网络往返,也不再受外部服务可用性的影响,执行更快。
四、具体操作流程
- 进入我的实盘:登录次方量化网页版,进入“我的实盘”,选中要导出的实盘策略,点击“导出实盘代码”。小程序里也有入口,会引导你到网页版完成导出。


- 选择平台:选择 QMT。

- 设置 QMT 下单参数:账户类型、买卖类型、委托方式、超时撤单与重新挂单、拆单等,按你的需要设置。

- 复制代码:代码生成后会弹出代码窗口,复制整份代码。

粘贴进 QMT:在 QMT 新建 Python 策略,整份粘贴进去,然后保存。
配置QMT模型交易:在QMT模型交易界面中选择策略和账户,开启运行。
之后如果重新导出:覆盖脚本后,以 QMT 本地保存的状态为准,从它接着往下算,平台上补仓的资金也会自动补进去。
五、使用前请了解
本地运行有它的代价,我们不想回避:
1. 信号数量可能和平台不一致。 脚本在你本机计算,行情数据来源、取价时点和平台不完全相同,算出来的数量可能有偏差,这是正常的。平台无法获知你本地脚本的运行情况,也无法替你核对。
2. 需要保持 QMT 每个交易日运行。 脚本靠 QMT 的定时任务触发。
3. 一份代码最多用 360 天。 QMT 里历史分钟行情最多只能取一年,脚本在状态日期满 360 天后会提示“停止运行”,不再下任何委托。到期前请在平台重新创建实盘,再导出新的代码。
4. 脚本里的状态是推演出来的虚拟状态,不是你账户的真实持仓。 如果你手动买卖过相关标的,请自行核对。
5. 旧版本代码仍然保留。 在“自动交易”页面可以下载。它通过HTTP网络请求接收平台推送的信号,只在你的 QMT 还能访问外部网络时才能用,一旦被限制联网就会失效,建议尽早切换到导出的新代码。
Ptrade 版本也在准备中,即将开放。
六、最后
QMT 这次收紧,方向很明确:让策略在客户端内部自成一体。信号放在本地算,链路更短,也不再依赖外部服务。次方量化选择开放策略源码下载,也是本着公开透明的原则,让大家在使用策略时更加放心和方便。
风险提示:本文仅为功能介绍,不构成任何投资建议。量化策略的历史表现不代表未来,投资有风险,入市需谨慎。QMT 的限制范围、生效时间以券商官方通知为准。