乐于分享
好东西不私藏

QMT使用教程:从安装、数据下载到回测实盘,一篇讲透

QMT使用教程:从安装、数据下载到回测实盘,一篇讲透

QMT使用教程:从安装、数据下载到回测实盘,一篇讲透

文 / 老汪算法

如果你想做A股量化,最后大概率绕不开一个名字:QMT

原因很简单。对很多已经准备接近实盘的人来说,QMT不是一个“讲概念”的平台,而是一套真正能把行情、策略、回测、下单、委托回报连起来的交易终端。

但QMT的资料有一个明显问题:

• 官方知识库很全,但对新手不算友好

• 社区文章很多,但经常只讲某一个片段

• 有人只讲安装,有人只讲代码,有人只讲下单,很少有人把整条链路讲完整

所以这篇我想做的不是“再抄一遍文档”,而是把QMT最关键的上手路径,按真正使用的顺序,整理成一篇能直接照着走的教程。

如果你只想先记住一句话,那就是:

QMT最重要的不是先把代码写多复杂,而是先把“安装—数据—回测—运行—委托回报”这条链跑通。


01|QMT到底是什么,适合谁用?

先说最朴素的理解。

QMT本质上是一套量化交易终端。根据迅投知识库的说法,它内置Python运行环境,核心提供两件事:

• 行情数据

• 交易下单

也就是说,它不是一个单纯的研究平台,也不是只做回测的云端网站,而是更接近“能把策略真正推向交易执行”的本地化终端。

它更适合下面这几类人:

第一类:已经不满足只看回测的人

你已经在别的平台做过基础回测,接下来想把策略往真实交易环境推。

第二类:希望把研究、行情和交易放在一套系统里的人

你不想数据一套、回测一套、下单再一套,希望流程尽量连起来。

第三类:准备做A股或ETF量化实盘的人

尤其是希望用券商正式交易环境跑策略的人,QMT通常会比“只会回测的工具”更接近真实需求。

但它不一定适合所有纯新手。

如果你连数据结构、回测、成交逻辑、仓位管理这些基础概念都没跑通过,一上来就进QMT,往往会先卡在环境、接口和下单机制里。

所以QMT更像一个从研究走向执行的桥梁,而不是零基础第一站。


02|开始之前,你得先准备什么?

真正开始之前,先把几个前提条件讲清楚。

1. 先确认你已经开通了QMT权限

QMT通常不是随便下载安装就能完整使用的。

你需要通过券商渠道开通,具体到什么权限、给不给量化终端、是大QMT还是MiniQMT、支持到什么程度,不同券商口径会不一样。

所以这里最稳的动作不是到处搜“哪家一定能开”,而是直接问你的客户经理:

• 是否支持QMT / MiniQMT

• 是否支持Python策略

• 是否支持模拟 / 实盘

• 是否支持本地策略交易

2. 先确认你要做的是哪一类策略

QMT里不同运行机制,适合不同场景。

如果你只是想跑一个按日线执行的策略,和你要做盘中随分笔触发的策略,后面写法和运行方式都不一样。

3. 接受一个现实:不同券商界面和配置会有差异

这点非常重要。

QMT的大逻辑是一样的,但不同券商版本、不同权限包、不同终端配置,具体界面和菜单位置可能会有区别。

所以你在看教程时,最该抓的是“流程”和“机制”,而不是死记某个截图位置。


03|安装QMT,第一步不要急着写代码

很多人第一次接触QMT,最容易犯的错就是:

软件刚装好,就立刻去找Python接口。

其实更稳的顺序应该是:

第一步:先把客户端本身装好、登上去

正常情况下,客户经理会提供下载地址。安装完后,先确认你能正常登录交易端,能看到行情、账户和功能菜单。

第二步:找到数据管理/补充行情的位置

这是后面回测和读取本地历史数据的前提。

很多人代码没问题,结果策略跑不起来,最后发现不是代码错了,而是本地历史行情根本没下全。

第三步:下载Python库

社区教程里有一个反复提到的细节:QMT里一般会提供Python库下载入口。如果库没装好,后面导入 xtquant 相关模块就会报错。

第四步:确认本地数据目录和 `userdata_mini` 路径

如果你后面要做MiniQMT / xtquant方式连接,本地路径是最常见的坑之一。很多示例代码第一行就卡在这里。

也就是说,QMT第一步的核心不是“把策略写出来”,而是先把客户端、数据、Python环境、路径四件事确认干净。


04|QMT里最重要的三个运行机制,先搞懂再写策略

这部分非常关键。

根据迅投知识库,QMT里常见的运行机制,核心可以分成三类:

逐K线驱动:handlebar

事件驱动:subscribe订阅推送

定时任务:run_time定时运行

很多新手不是不会写代码,而是一开始根本没搞明白自己应该用哪一类。

1. handlebar:最适合先学的入口

这是最容易理解的一种。

简单说,它的逻辑是:

• 历史回测时,系统按历史K线从左到右跑

• 盘中时,每来一个新的分笔/新K线触发一次策略处理

它适合做什么?

• 双均线

• 趋势跟踪

• 日线/分钟线级别的规则策略

• 需要回测和实盘逻辑比较一致的模型

如果你是第一次在QMT里写策略,我最建议你先从handlebar开始。

2. subscribe:适合盘中实时订阅触发

这种方式更偏事件驱动。

你先订阅某个品种的行情,行情一更新,就触发回调函数。

它适合什么?

• 对盘中变化更敏感的策略

• 需要随着分笔、tick、实时数据变化立刻做判断的策略

它的问题也很明显:

• 思维方式比handlebar更碎

• 新手更容易把状态管理写乱

3. run_time:适合固定频率轮询

这种方式不是等行情推你,而是你自己设一个固定时间间隔,不断运行某个函数。

它适合什么?

• 定时扫描全市场

• 固定周期刷新条件

• 不依赖每个tick都立即响应的任务型策略

如果用一句话总结这三类运行机制,就是:

想先学完整闭环,用handlebar

想盘中实时订阅,用subscribe

想定时调度任务,用run_time


05|先把回测跑通:这是QMT最值得你认真做的一步

很多人上来就想实盘,但我还是建议你先把回测完整跑一遍。

根据迅投知识库,QMT回测有几个特别重要的点:

1. 回测之前,先补全历史行情

官方写得很清楚:回测依赖本地历史数据。

所以第一次做回测,最好先把你要用的:

• 周期(如日线、1分钟)

• 品种范围(如沪深A股)

• 历史时间范围

补齐。

2. 回测取的是本地数据,不是实时订阅

知识库特别提到:回测模型读取本地数据时,应该优先使用本地行情读取方式,而不是把订阅实时行情那套逻辑混进去。

这件事的意义很大:

回测不是在假装盘中实时交易,而是在用固定历史数据验证策略逻辑。

3. 回测撮合不是实盘撮合

这个细节很多人会忽略。

官方资料里写到,回测时如果你的指定价格落在当前K线高低点之间,会按指定价格撮合;如果超过范围,会按当前K线收盘价撮合。

这意味着什么?

意味着回测结果天然会比真实市场“干净”。

所以你看回测收益时,一定要保留一点怀疑,别把它直接当实盘预告片。

4. 第一个回测策略,建议就用双均线

这不是因为双均线最好,

而是因为它足够简单,最适合拿来测试整条链。

你需要验证的不是“这个策略会不会暴富”,而是下面这些事:

• 数据能不能正常读取

• 指标能不能正常计算

• 信号能不能正常生成

• 回测能不能正常出结果

• 资金曲线和日志能不能看懂

只要这套链第一次通了,后面你再加复杂度,心里会稳很多。


06|进入实盘前,先理解QMT里的两种交易思路

这部分是很多人第一次用QMT时最容易懵的地方。

迅投知识库对实盘交易,实际上强调了两种不同思路:

第一种:逐K线生效

可以理解成:

你希望盘中策略尽量模拟“按K线收完再做决定”的效果。

这种方式更适合:

• 日线策略

• 分钟线策略

• 你希望策略判断和K线节奏对齐

它的好处是思路更整齐,坏处是会有信号延迟和逐K线处理逻辑。

第二种:立即下单

知识库里提到,某些快速交易参数模式下,信号可以在触发后立即发出委托,不再等下一根K线确认。

这种方式更适合:

• 盘中实时策略

• 更重视即时执行的策略

但这里对新手有个很重要的提醒:

一旦进入立即下单逻辑,状态管理、委托跟踪、重复报单控制都会明显变复杂。

所以如果你是第一次跑实盘模型,不要一上来就选最激进的模式。

先把“能稳定跑、能稳定看懂委托和回报”这件事搞定,比什么都重要。


07|QMT里最关键的实操链路,到底长什么样?

如果你已经装好软件,也看过文档,我建议你把实操顺序固定成下面这样:

第一步:开客户端,确认账户已登录

包括交易账户、行情、相关模块都能正常使用。

第二步:补数据

你要做什么周期、什么品种,就先把数据下全。

第三步:写最简单的策略骨架

最典型的就是:

init() 里做初始化

handlebar() 里写主逻辑

社区教程里大量示例都是这个结构,因为它最容易上手。

第四步:先跑回测

看日志、看净值、看持仓变化。

不要急着开实盘。

第五步:切到模拟交易模式

这一步特别关键。

在QMT里,模拟和实盘运行模式不是一回事。你完全可以在策略层面先跑模拟信号,不真实发委托,先看信号、看流程、看逻辑是不是对的。

第六步:最后才上真实交易模式

当你已经确认:

• 信号对

• 委托逻辑对

• 仓位逻辑对

• 订单不会乱发

• 回报能跟踪

再上真实交易。

这才是最健康的QMT入门路线。


08|如果你用Python API接MiniQMT,最容易卡在哪?

社区教程里,MiniQMT / xtquant这一路的坑其实很集中。

1. 路径写错

比如 userdata_mini 路径不对,这是最常见的问题之一。

2. Python库没装好

如果 xtquant 导不进去,后面什么都别谈。

3. 会话ID和多策略管理混乱

有些示例里会特别提到不同策略最好使用不同的会话编号,否则容易混。

4. 回调没注册 or 线程没启动

很多交易回报、持仓变化、委托状态,依赖回调函数。

如果你只会下单,不会看回调,后面排错会非常痛苦。

5. 账号明明登录了,但程序侧没连上

这也是典型坑。客户端能看,不代表Python侧已经正确建立连接。

所以如果你走MiniQMT + Python API这条路,建议一定先完成下面几个最小动作:

• 能连上客户端

• 能查到账户

• 能查到持仓

• 能取到行情

• 能发一笔最简单的模拟/测试委托

• 能收到回报

这六件事都跑通,后面你再谈策略,才算真正开始。


09|QMT里哪些细节最容易把新手坑住?

这部分我直接给你做成“避坑清单”。

坑1:只看代码,不看数据准备

很多策略报错、回测异常,根本不是策略错,而是本地行情数据不完整。

坑2:只会发单,不会管回报

交易系统最怕的不是“不会下单”,而是“下了单不知道发生了什么”。

坑3:一上来就用复杂策略

QMT不是拿来炫技巧的,第一步应该先把最简单策略跑顺。

坑4:把模拟信号和实盘模式混为一谈

先模拟,再实盘,这个顺序别省。

坑5:回测好看,就默认实盘也会一样

QMT再接近实盘,也不能把回测当实盘复印件。

坑6:不做委托状态管理

尤其是快速交易、实时策略,最怕重复报单、超单、状态丢失。

坑7:对价格和成交假设太乐观

官方知识库明确提到,实盘里价格笼子、可用数量、真实交易所撮合规则都会影响能不能成交。

也就是说,QMT真正难的地方,不是软件会不会点,

而是你有没有把它当成一套完整交易系统来看。


10|如果你今天就要开始,我建议你按这个顺序走

如果你现在就是要开始学QMT,我建议最现实的路径是:

第1步:先开通权限、装好客户端、下好Python库

把环境问题先清掉。

第2步:补历史数据

先把本地回测数据准备完整。

第3步:用最简单的双均线写一个handlebar策略

别一上来就做复杂策略。

第4步:先跑回测

把日志、净值、交易记录看明白。

第5步:切模拟信号模式

确认盘中流程和委托逻辑。

第6步:最后再小资金实盘

真正上线前,先把仓位压小。

如果你能按这个顺序走,QMT这件事会清晰很多。


11|我最后给你的结论

如果你问我:QMT到底值不值得学?

我的回答是:

如果你只是想玩回测,QMT不是唯一选择;但如果你已经准备把A股量化往真实交易推进,QMT非常值得认真学。

因为它真正的价值,不在于“会不会写某个函数”,

而在于它让你开始直面量化最真实的部分:

• 数据要自己准备

• 逻辑要自己验证

• 模拟和实盘要分清

• 委托和回报要自己管理

• 交易系统不是写出来,而是跑出来的

这也是为什么,QMT一旦学明白,对量化理解会明显上一个台阶。

参考来源(整理时重点参考)

1. 迅投知识库《快速开始》

https://dict.thinktrader.net/innerApi/start_now.html

2. 迅投知识库《完整实例》

https://dict.thinktrader.net/nativeApi/code_examples.html


—— 在嘈杂的信号中,捕捉时代的呼吸。