QMT量化软件开户指南!还在为miniQMT停用发愁?大白话讲透怎么无缝迁移到大QMT
发布时间:6小时前阅读:47
有一套完整详细的替代方案,适用于大部分投资者,想要获取更详细、更具体、更能实操的代替方案,请留言“量化”
大QMT平替miniQMT:策略迁移与行情获取全攻略
一、先搞明白:miniQMT为啥要换,大QMT到底是个啥?
简单说,miniQMT就像一台“外卖车”——它只管把外部Python算好的交易指令送给券商执行,本身不带厨房(不提供研究环境)。而大QMT更像一个“中央厨房+外卖车”的整合体——它有自己内置的Python环境,策略直接在客户端里跑,不需要单独开一个外部Python进程去连它-5。
根据最新政策,从2026年7月6日起,新开通的QMT权限默认不再包含miniQMT模式,存量用户后续也会逐步迁移
。
两者最核心的区别就两点:

二、四条平替路线:选哪种看你情况
迁移方案从“几乎不用改代码”到“重写所有代码” ,分四个难度等级:
路线一:开源桥接工具——代码改动最小(强烈推荐)
GitHub上有两个开源项目可以把大QMT“伪装”成miniQMT,让你的旧代码几乎原样运行:
方案A:xtquant_big_convert
这个项目在大QMT内置Python里跑一个RPC翻译层,对外暴露和miniQMT同名的xtdata.get_market_data、XtQuantTrader.order_stock等方法。支持Redis、ZMQ、共享内存四种传输方式,覆盖117个只读方法+2个下单方法,你原来的Mini脚本几乎不用改-。
方案B:cfquant
同样是把大QMT转成miniQMT兼容层,提供Web控制台进行桥接端管理和账号绑定。外部Python可以把cfquant当作xtquant兼容层使用,只需要把原来的:
from xtquant import xtdatafrom xtquant.xttrader import XtQuantTrader改成:
from cfquant import xtdatafrom cfquant.xttrader import XtQuantTrader就能直接用了-。
适用场景:miniQMT代码量大、不想重写的人,这是最省事的方案。
路线二:文件/SQLite信号中转——中低频策略首选
外部策略算完信号,写入signal.csv或signal.db文件,大QMT里的handlebar()轮询读取文件→执行passorder下单。
优点:零网络依赖,单机最稳,新手半天就能接好-。
缺点:秒级延迟,高频别用;写文件要加filelock防读写冲突。
适用场景:日线/小时线策略、可转债条件单、选股后次日执行这类对延迟不敏感的。
路线三:Redis/ZMQ消息队列——低延迟方案
外部策略发指令到Redis的list或pub/sub,大QMT内置Python订阅消费,成交回报写回Redis。
延迟能到毫秒~几十毫秒,比文件快一个量级,而且支持多策略/多账户解耦,指令可持久化,跨机器也能用-。
路线四:完全重写为handlebar模式——最彻底的方案
如果上面三种都不合适,就只能把策略完全改写成大QMT的handlebar框架了。需要:
- 删掉XtQuantTrader(path, session_id).connect()——大QMT自动维护连接,手动连会打架
- 删掉sys.path.insert(...)找xtquant——内置环境已自带
- xtconstant.STOCK_BUY等常量换成passorder数字常量(23买/24卖/1101限价)
- 定时逻辑从while True改成handlebar(ContextInfo)周期驱动,或用run_time注册1
三、行情数据怎么获取?
大QMT获取行情主要有三种方式-:
1. 本地数据(历史数据)
需要提前下载到本地的加密数据文件,适合回测。对应的Python接口是get_market_data_ex(subscribe=False)。
# 下载历史数据download_history_data("000001.SZ","1d","20231001","")# 读取本地数据data = C.get_market_data_ex([],["000001.SZ"], period="1d", start_time="20231001", subscribe=False)2. 全推数据(实时快照)
客户端启动后自动接收全市场最新数据快照,只有最新值没有历史值。用get_full_tick一次性取当前最新值,或用subscribe_whole_quote注册回调处理增量数据-。
# 获取最新五档盘口tick = C.get_full_tick(["000001.SZ","600000.SH"])print(tick["000001.SZ"]["lastPrice"])3. 订阅数据(指定品种)
向行情服务器订阅指定品种的行情,有分笔、1分钟、5分钟、日线四种周期。当天以前的需用down_history_data下载。订阅有数量限制(一般最多300个)
# 订阅并获取最新+历史数据data = C.get_market_data_ex([],["000001.SZ"], period="1d", subscribe=True, count=-1)一个常见坑:大QMT里行情接口优先用ContextInfo.get_full_tick(),次选xtdata作为fallback,别只留xtdata-1。
四、实战迁移步骤
第一步:备份旧策略
在miniQMT里把所有策略源码、配置文件、第三方库清单都备份好。
第二步:选迁移路线
根据策略复杂度选上面四条路线之一。新手建议先试路线一(开源桥接) ,不行再考虑其他方案。
第三步:在新环境部署
- 桥接方案:把开源工具拷贝到QMT的Python策略目录,在QMT里加载桥接脚本,在Web控制台完成账号绑定27
- 文件信号方案:在大QMT里新建策略,写handlebar()读取外部信号文件
- 重写方案:新建Python策略,按大QMT框架重写
第四步:验证
- 先跑历史数据回测,确保结果一致4
- 再跑模拟盘测试,确认委托正确
- 最后用小资金实盘测试一段时间
第五步:正式切换
确认没问题后,停掉旧miniQMT,启动大QMT正式运行。
五、几个必须注意的坑
- 编码问题:大QMT策略文件注意用GBK保存,Mini脚本常是UTF-1
- 不要同时跑:禁止新旧两套同时运行同一实盘策略,会重复委托-
- 先核对接口清单:迁移最值钱的是已验证的业务逻辑,不是代码行数。先做一份接口清单,再做最小可运行测试9
- 保留回退路径:迁移时保留原账户和原策略的可回退路径,别把旧环境直接删了9
六、选大QMT还是PTrade?
如果策略重度依赖外部Python、有自己的数据库和因子计算,大QMT是更自然的选择,它可以在本地读写文件和数据库,外部系统继续负责计算,QMT作为执行端-12。
如果只是做日线调仓、分钟级判断,PTrade可能更省心,更偏平台化策略框架,维护负担相对低-1。
一句话判断:“我是想让策略托管运行,还是想让外部系统继续接入执行?” 前者选PTrade,后者选QMT-12。
总结:miniQMT转大QMT,最省事的是用开源桥接工具(xtquant_big_convert或cfquant),几乎不改代码;不想折腾桥接的就用文件/Redis做信号中转;实在不行再全量重写。行情数据用get_full_tick拿实时快照,用get_market_data_ex拿历史数据。关键是先跑通最小可用版本,再逐步加功能,别一次性全搬。
温馨提示:投资有风险,选择需谨慎。
下一篇资讯:
暂无下一篇
-
REITs打新日历:四川成都 ⌈锦江 REIT⌋ 本周四售!(附认购操作指南)
2026-07-27 16:59
-
2026夜市委托怎么操作?个人经验攻略全分享
2026-07-27 16:59
-
新股发行:【展芯股份】+【国仪公司】+【超纯应材】本周可申购!(附打新神器)
2026-07-27 16:59


问一问

+微信
分享该文章
