MiniQMT 内置 Python 封禁文件读写与外联后解决方案(原有策略无需大规模改写)
发布时间:12小时前阅读:24
近期多家券商收紧 MiniQMT 内置 Python 沙箱权限,下线独立网关,同时拦截策略内本地文件读写、网络请求、Socket 通信。大量已经稳定运行的策略,原本依靠本地文档、MiniQMT 网关实现内外数据交互,更新客户端后直接失效。为了避免大面积重构代码,本文分享低成本外联实现方案,最大程度保留原有交易逻辑,仅修改信号输出环节,轻松实现消息推送、状态监控与数据同步。
一、先分清管控边界:哪些被限制、哪些不受约束
本次风控只针对策略脚本所在的沙箱环境:
- 被封禁项:策略代码里执行 open 读写文件、requests 网络请求、Socket 端口通信、本地数据库读写、MiniQMT 独立网关全部被拦截;
- 不受限制项:QMT 主程序不受沙箱规则约束,代码中 print 控制台输出、软件自带日志、客户端自带导出功能,不属于策略 Python 的 IO 行为,这也是整套方案能够落地的核心前提;
- 关键前提:外部监控程序是独立进程,不在沙箱管控范围内,不受本条风控约束。
二、首选方案:日志打印旁路,策略改动最小
实现原理
沙箱禁止策略主动写入本地文件、发起网络调用,但策略内 print 打印内容,会直接交给 QMT 主程序,并自动持久化写入本地日志文件。
我们只需要把原有策略里写文件、调用 Webhook 的交互代码注释掉,改用 print 输出结构化交易信号;选股逻辑、开平仓条件、仓位风控等核心交易代码完全保留,不需要重新编写。
再单独启动一个外部 Python 脚本,持续监控日志文件增量内容,抓取带标记的交易信号,完成消息推送、数据入库、资产看板展示。
极简改造示例
原有交易逻辑完全不动,仅替换对外输出部分:
# 生成交易信号之后
signal_info = {
"code": stock_code,
"action": "buy",
"price": price,
"volume": vol
}
# 删掉原来写文件、发网络请求的代码
# 改用带专属标记的打印语句
print(f"TRADER_SIGNAL||{signal_info}")
外部脚本持续轮询日志文件,匹配TRADER_SIGNAL||关键字,解析 JSON 内容,对接企业微信、钉钉消息推送,或是写入本地数据库做复盘统计。
方案优势
- 原有策略主体改动极少,调试工作量极低;
- 纯利用软件原生日志功能,无需破解进程、注入内存,合规风险更低;
- 实盘与模拟账户均可稳定运行,通用性强。
客观短板(务必提前知悉)
- 单向传输:只能从 QMT 向外推送信号与告警,外部程序无法反向下发指令给策略,做不了 “外部计算信号、QMT 接收下单” 的双向链路;
- 存在延迟:日志存在轮转与写入延迟,不适合 Tick 级高频策略,更适配 ETF 轮动、网格交易、条件单、成交监控这类中低频场景;
- 非官方接口:属于旁路实现方式,并非券商开放的标准接口,后续存在被进一步管控的可能性;
- 日志轮转兼容:QMT 重启、策略重启会自动生成新日志文件,外部监控脚本必须做好多日志文件切换的兼容处理。
三、两套备选实现路径
备选 1:调用官方 export_data 导出接口
完整版 QMT 依旧保留客户端主进程导出接口export_data,由软件本体批量导出持仓、委托、成交报表,不属于策略沙箱内的 IO 操作,不受新规限制。
适用场景:收盘后批量导出账户数据,用于事后复盘、资产统计、制作持仓看板。
优点:稳定性高于日志解析;缺点:只能定时批量导出,无法做到盘中实时推送交易信号。
备选 2:纯沙箱内闭环运行,取消外部推送
如果对外消息通知需求不强,可以把全部运行状态保存在内存字典与全局变量中,使用 QMT 自带弹窗提醒替代外部消息推送。
适合简单日内短线策略;缺点:软件重启、策略重启会清空内存数据,隔夜持仓标记会丢失,不适合跨交易日策略。
四、反向通路:外部信号下发到 QMT 还能实现吗?
目前个人版 QMT 没有稳定合规的反向接收通道。沙箱内脚本既不能读取外部文件,也无法监听本地端口,日志旁路仅支持向外输出信号。
如果你的策略架构依赖外部算力生成信号再下发给 QMT 执行下单,有两条稳妥替代路线:
- 把全部信号计算、因子选股逻辑全部迁移进 QMT 内置策略,做到全程内部闭环运行,不再依赖外部程序;
- 更换交易终端:改用 Ptrade 云端量化托管,或是申请券商 PB 机构 API(门槛更高,需要单独完成程序化交易报备审批)。
五、严禁触碰的违规操作(避坑红线)
- 尝试特殊路径、相对路径绕过 open 文件读写限制:新版沙箱已经全面封堵,无法生效;
- DLL 注入、进程附加、内存读写劫持:属于刻意绕过风控体系,一旦被系统检测,会直接收回量化权限,触发程序化异常交易预警,实盘绝对不能尝试;
- 下载第三方修改版客户端:存在账号被盗、策略源码泄露的重大安全隐患。
六、方案快速选型对照表
- 只需要向外输出交易信号、盘中告警、成交监控,不需要外部给 QMT 下发指令 → 优先选择 print 日志旁路方案,代码改动最少;
- 仅需要收盘导出持仓、成交记录做复盘统计 → 使用官方 export_data 批量导出功能;
- 纯日内简单策略,不需要任何外部消息通知 → 内存存储 + 软件原生弹窗提醒;
- 必须依靠外部程序计算信号,再下发给 QMT 自动下单 → 重构策略全部迁入沙箱,或是直接更换成 Ptrade 云端托管终端。
七、实盘实操重要提醒
- 旁路方案先用小资金试运行,充分测试消息延迟、日志切换、偶发丢消息等问题,确认稳定后再加大仓位;
- 多账户批量程序化下单,严格遵守监管要求,提前完成程序化交易报备,规避异常交易风控拦截;
- 所有量化策略都存在行情波动、网络中断、程序异常等风险,历史回测收益不能等同于未来实盘收益。
联系我立即咨询!加我微信或致电获取优惠佣金开户+免费优惠福利多多。
温馨提示:投资有风险,选择需谨慎。



问一问
从业认证

+微信
分享该文章
