新版 QMT 内置 XtQuant,旧 miniQMT 策略怎么迁移?
最近一则新版 QMT 测试版说明提到:客户端内置了 Python 3.12 和 XtQuant,部分原来运行在 miniQMT 上的量化策略,可以迁移到这个 QMT 环境测试。对已有 miniQMT 策略的人来说,最值得关注的是:策略有机会继续使用 XtQuant 的行情、账户和交易接口,不必一开始就把整套代码重写成 QMT 模型交易格式。
不过,“内置了 XtQuant”不等于旧策略复制进去就能直接运行。Python 版本、权限、行情来源和线程使用方式都可能不同,需要按自己的客户端逐项验证。
截图里的测试版说明了什么
按用户提供的测试版说明截图:
- 客户端已集成 Python 3.12。
- 客户端集成了 XtQuant,可在内置 Python 环境中调用 XtData 和 XtTrade。
- 原 miniQMT 客户端用户会有部分功能权限限制。
- 原来使用 miniQMT 的用户,可以继续用 XtQuant 获取行情并提交委托,也可以尝试迁移到 QMT 模型研究环境。
- 行情和交易函数不支持多线程方式调用。
- 文件、数据库、网络连接和多网络接口等外部交互会受到限制。
这是截图所述测试版的信息。实际功能要看券商给你的客户端版本、账号权限和终端配置,不能直接套用到所有券商 QMT。
旧策略有两种迁移思路
保留 XtQuant 调用
如果策略原本通过 XtQuant 获取行情、查询账户或提交委托,可以先在新版 QMT 自带的 Python 环境里测试对应接口。这样策略主体可能改动较少,但仍要检查依赖是否支持 Python 3.12,以及客户端是否给当前账号开放了相应权限。
改成 QMT 模型策略
也可以把代码迁到 QMT 的模型研究环境,再按客户端要求接入行情和交易回调。这条路更贴近客户端自带的模型交易流程,但通常需要调整策略入口、定时方式、行情调用和下单接口。
两种方式没有对所有人都适用的统一答案。先看策略依赖什么,再选迁移路径,别为了“新版”就一次性重写全部代码。
迁移前先查这几项
Python 依赖。 新客户端使用 Python 3.12。旧环境安装的第三方库、二进制扩展或旧版语法,未必能直接复用。先确认依赖是否支持 3.12。
XtQuant 权限。 截图明确提到原 miniQMT 客户端用户会有权限限制。能导入模块不代表行情和交易接口都已授权;应分别测试行情查询、账户查询和模拟委托,并查看客户端日志。
文件和外部连接。 如果策略会读写本地文件、连接数据库、请求外网或访问局域网设备,这些部分可能被限制。不要假设把 SQLite 换成另一个本地数据库就能解决;截图把数据库和文件等外部交互都列入限制。
多线程。 行情和交易函数不支持多线程调用。旧策略如果由多个线程同时查行情或下单,需要先调整调用方式,按客户端支持的回调或单线程流程执行。
行情和委托结果。 在研究环境中能启动,只说明代码通过了部分启动检查。还要确认行情更新是否正常、回调是否按预期触发、委托是否被柜台接受。提交委托不等于成交。
建议的测试顺序
- 备份原 miniQMT 策略和运行环境,先不要覆盖原文件。
- 在新版客户端查看 Python 版本,并确认 XtQuant 模块可以导入。
- 用不下单的代码分别验证行情读取和账户查询。
- 在模拟环境验证下单接口、回调和日志,再观察一段时间。
- 最后才评估是否迁移到模型交易或用于实盘,并逐项核对未完成委托和持仓。
如果策略依赖文件、网络、数据库或多线程,先把这些依赖单独列出来。它们往往才是迁移工作量的主要来源,不一定是策略选股逻辑本身。
和聚宽信号同步有什么不同
XtQuant 兼容能力主要面向“已有本地 Python / miniQMT 策略,希望在 QMT 环境继续调用行情和交易接口”的场景。
如果策略仍在聚宽运行,只想把聚宽产生的交易信号交给本机 QMT,使用的是信号同步流程。QMT 能否直接联网取信号,要看客户端网络权限;受限时,可以评估聚宽信号同步本地接收版,由 Windows 软件联网,再通过本机命名管道把指令交给 QMT。这种方式也要在实际客户端测试本机通信权限,不能保证兼容所有券商环境。
**简单说:**新版客户端提供了新的迁移机会,但不是“一键兼容”。先验证 Python 3.12、XtQuant 权限、文件和网络依赖以及线程调用,再决定保留 XtQuant 接口还是改成 QMT 模型策略。
相关入口:miniQMT 桥接穿透模式 · 聚宽信号同步本地版 · 网页直连版
本文根据用户提供的新版 QMT 测试版说明截图整理。具体功能和权限以所用券商客户端的正式文档及实际测试为准。本文介绍的是软件迁移问题,不构成投资建议;接口测试不能替代真实委托核对。
