miniQMT策略迁移QMT:代码改动、坑点与完整迁移指南
发布时间:2026-9-17 18:50阅读:157
不少做量化的朋友一直在用miniQMT跑网格、可转债、波段选股策略。随着外部接口管控收紧,miniQMT不能正常使用,需要把现有策略迁移到标准版QMT。注意:miniQMT代码不能直接复制粘贴到QMT运行,底层运行架构完全不一样,直接粘贴会报错。
先理清:miniQMT和标准版QMT核心差异
| 对比项 | miniQMT | 标准版QMT |
|---|---|---|
| 运行模式 | 外部独立Python进程,调用xtquant库,自己管理connect连接 | 客户端内置Python环境,基于init/handlebar回调框架运行 |
| 行情接口 | 依赖xtdata主动订阅、下载历史数据 | 内置行情接口,客户端统一管理数据下载 |
| 下单接口 | order_stock、cancel_order_stock | passorder为主流下单函数,参数体系不同 |
| 账户参数 | 账户传入StockAccount对象 | 直接传入资金账号字符串 |
| 回测能力 | 无原生回测,依赖第三方库 | 内置完整tick/分钟回测引擎 |
| 第三方库 | 本地Python,可自由pip安装库 | 内置Python白名单库,新增库需要特殊处理 简单来说:miniQMT是你的Python程序调用交易终端;QMT是策略跑在终端内部,代码范式完全不同。 |
️ 策略迁移必须做的核心调整
策略业务逻辑(买卖条件、选股逻辑、网格计算公式)大部分可以保留;主要改动集中在接口、框架结构、调度方式。
1. 删除miniQMT连接相关代码
miniQMT策略开头会写XtQuantTrader、connect、start、注册回调等连接语句,迁移到QMT内置策略必须全部删除。QMT不需要手动建立socket连接,由客户端框架自动完成行情、交易通道连接。
2. 改造整体策略框架:改成回调模式
miniQMT习惯写while循环、sleep、APScheduler定时循环轮询行情。标准版QMT不建议用while死循环,改用官方回调生命周期:
- init(context):策略初始化,只运行一次
- handlebar(context, bar):K线驱动,每一根K线触发执行你的交易逻辑
- on_stock_order、on_stock_trade:委托、成交回报回调函数
原来while循环里的选股、信号判断、下单逻辑,迁移后放进handlebar中执行。
3. 交易接口替换
- 下单函数替换:miniQMT用order_stock(),QMT内置策略使用passorder(),报单参数枚举不再使用数字常量,改用xtconstant枚举常量,参数顺序、含义有差异。
- 撤单接口适配:miniQMT用cancel_order_stock系列;QMT使用passorder实现撤单逻辑。
- 账户参数修改:miniQMT所有交易查询,账户是StockAccount(account_id)对象;QMT内置策略直接传入资金账号字符串,查询函数名大多不变,但入参对象类型不同,这是迁移高频报错点。
- 4. 行情数据接口改造
- miniQMT大量使用xtdata系列接口下载K线、tick数据。迁移QMT:替换为框架内置接口get_market_data_ex、get_full_tick获取行情,不要继续使用xtdata调用。历史数据不要靠代码下载,优先在QMT客户端界面下载完整K线、tick数据包,避免策略运行时重复下载拖慢性能。
- 5. 文件编码与第三方库适配
- miniQMT本地Python默认UTF-8;QMT内置策略文件需要GBK编码,否则中文注释、读写文件会乱码。如果你用到pandas、numpy以外小众第三方库,QMT内置环境不一定支持;重型机器学习库建议改为外部生成信号,文件传给QMT执行下单的模式,不要直接在内置策略import重型库。
两套迁移方案,按需选择
方案A:完整改写为QMT内置策略【推荐中低频、网格、可转债策略】
把策略全部重构为init-handlebar回调模式,全部接口替换为QMT原生API。
✅ 优势:部署最简单,直接在QMT客户端运行,自带回测、风控,稳定性高。
⚠️ 劣势:代码改动量偏大,第三方库受限。
迁移标准流程:
- 开通QMT权限,下载券商专属客户端;
- 将原有业务逻辑剥离出来,重写框架、替换API;
- 优先跑模拟盘,完整跑2-5个交易日,核对信号、委托、成交回报;
- 模拟盘验证无误,小资金实盘试运行,对比旧miniQMT信号是否一致,再全量上实盘。
方案B:信号中转方案【改动最小,适合不想大规模改代码】
保留原有miniQMT风格Python代码在本地运行,本地脚本只输出买卖信号写入本地文件;QMT内置策略读取信号文件,负责执行下单。
✅ 优势:原有业务代码几乎不动;
⚠️ 劣势:需要两套程序配合运行,需要自己做信号去重、防重复下单逻辑。
还没有开通QMT权限的朋友,账户满足条件可协助办理开通,配套低佣交易,帮你一站式搞定权限申请+账户优化。有需要可以随时私信咨询,早开通早跑起来!
温馨提示:投资有风险,选择需谨慎。
- 开通QMT之后,如果股票账户被券商限制部分品种交易,量化策略会报错吗,PTrade品种交易受限策略会如何表现?
- PTrade开通之后,同一个账号可以同时跑回测任务和实盘策略吗,开通QMT实盘运行同时跑大量回测会卡顿吗?
- 开通QMT之后,策略脚本能不能实现自动可转债强赎卖出逻辑,PTrade脚本如何识别可转债强赎事件自动卖出?
- QMT开户,理财处于到期兑付中,未到账理财市值会计入审核资产吗,PTrade兑付中理财不计入开通资产吗?
- 开通PTrade之后,银证转账转入资金,资金到账之后策略脚本可以立刻识别可用资金吗,QMT读取资金数据有没有延迟?
- QMT个人版,回测可以设置不同的滑点针对股票可转债分开设置吗,开通PTrade多品种滑点参数独立配置吗?
- 开通QMT之后,策略运行的时候电脑休眠唤醒,策略还能继续正常执行吗,PTrade休眠唤醒会不会策略卡死?
- 账户持有的北交所股票市值,是否计入QMT开通50万资产,开通PTrade北交所持仓算达标市值吗?
-
2026年券商APP月活榜:8家券商座次怎么排?选APP该看的3件事
2026-10-12 16:05
-
2026年可转债投资攻略:【可转债专题】帮你从入门到实操一站式搞定
2026-10-12 16:05
-
银证转账失败是什么原因?这4种情况最常见
2026-10-12 16:05



问一问
从业认证

+微信
分享该文章
