QMT 详解:本地化的量化实盘平台
QMT 是国内做量化实盘绕不开的一个平台。这篇单独讲它,帮你知道它值不值得用。
两条路线的取舍
一、QMT 是什么?
QMT(迅投极速交易系统)由迅投科技开发,是券商提供给客户的量化交易平台。它最大的特点:策略在你的本地电脑上运行。
一句话定义
QMT = 本地运行的量化实盘平台,集成数据、回测、模拟、实盘全流程。
二、核心能力
- 全流程集成:数据获取 → 策略开发 → 回测 → 模拟 → 实盘,一个平台搞定。
- 高速行情:支持全市场多档实时行情,tick 级数据。
- 本地化运行:策略在本地跑,可直接读本地文件(比如你自己维护的因子库)。
- 直连柜台:经由券商柜台下单,速度快、合规。
三、为什么选本地运行?
本地运行是把双刃剑:
好处
- 完全的控制权,想怎么改就怎么改。
- 能读本地文件、调用本地资源,策略更灵活。
- 数据缓存在本地,不依赖平台。
代价
- 你的电脑必须开着,关了就停。
- 网络、电脑故障都要自己负责。
- 要自己维护运行环境。
四、QMT 适合谁?
- ✅ 有一定编程能力,能自己搭环境的量化玩家。
- ✅ 需要高度灵活、要读本地数据或做复杂策略的人。
- ✅ 设备稳定(有常开的机器/服务器)的实盘用户。
- ❌ 不想折腾环境、希望开箱即用的人。
- ❌ 只有一台时会关机的笔记本的人。
五、开通门槛
注意
QMT 通常需要在券商开通权限,多数券商有资金门槛和风险评估要求(常见是几十万资产级别,各券商不同)。开通前先咨询你的券商。
六、典型使用流程
- 在券商开通 QMT 权限,获取账号。
- 下载客户端,配置行情和交易账号。
- 在本地编写策略代码(通常是 Python)。
- 回测、模拟验证。
- 实盘运行,保证机器常开。
七、一个最小策略长什么样
QMT 的策略入口通常是 init(初始化)和 handle_bar(每根 K 线触发)。下面这段只是骨架,用来理解结构,不是可直接上实盘的代码:
def init(context):
context.stock = "510300.SH" # 示例标的,非推荐
context.fast, context.slow = 5, 20
def handle_bar(context, bar_dict):
px = history_bars(context.stock, context.slow + 1, "1d", "close")
if len(px) < context.slow + 1:
return
fast = px[-context.fast:].mean()
slow = px.mean()
cur = context.portfolio.positions.get(context.stock, None)
# 双均线:金叉买入,死叉清仓
if fast > slow and not cur:
order_target_percent(context.stock, 0.3)
elif fast < slow and cur:
order_target_percent(context.stock, 0)
这段代码只能用来理解结构
它没有处理停牌、涨跌停、复权、滑点和手续费,也没有做样本外验证。直接拿去跑实盘,大概率先亏在成本上。
八、本地运行要准备什么
「本地运行」不是你打开笔记本就能跑。要让一个策略连续几天不中断地执行,得准备这几样:
| 要素 | 最低要求 | 不做的后果 |
|---|---|---|
| 机器 | 常开的 Windows(云主机或闲置台式机) | 关机 = 策略停摆,可能错过止损 |
| 网络 | 有线或稳定 Wi-Fi,最好有备用 | 断网时行情断、下单失败 |
| 进程守护 | 看门狗脚本或计划任务自动重启 | 客户端崩溃后没人知道,全程空仓 |
| 日志与告警 | 每笔订单落盘 + 异常推送 | 出问题几周后才发现 |
| 时间同步 | 开启系统自动对时 | 时间戳错乱导致信号错位 |
最容易被忽略:日志
很多人只关心「策略今天赚没赚钱」,却不留订单日志。等到收益异常时,你根本无从判断是策略失效、没成交,还是程序根本没跑。
最低要求:每次下单记录时间、标的、方向、数量、期望价、成交价。
最低要求:每次下单记录时间、标的、方向、数量、期望价、成交价。
环境隔离
不要用平时上网、装了一堆软件的电脑跑实盘。独立性差的机器上,一次系统更新、一次杀毒软件误杀,就可能让策略停摆。理想做法是一台专机,除了行情和交易客户端什么都不装。
九、QMT 和 PTrade 的实际选择
| 你的情况 | 更合适的选择 |
|---|---|
| 有常开机器、能写代码、要读本地因子库 | QMT |
| 不想运维、只想策略稳定跑着 | PTrade |
| 策略需要大量本地计算(如图计算、机器学习) | QMT |
| 家里只有笔记本、且经常带出门 | PTrade(或先租一台云主机) |
十、三个最常见的误区
1. 以为「本地运行」等于「不会断」
恰恰相反。策略跑在你的电脑上:断电、系统更新、网络抖动、内存泄漏,都会让策略停摆。要跑实盘,通常得准备一台常开的机器,并做进程守护。
2. 把回测曲线当成绩单
QMT 内置回测很方便,但方便本身就是陷阱——参数一调、曲线就漂亮。没有样本外验证和成本建模的回测,参考价值有限。
3. 忽略券商权限的实际差异
不同券商给的 QMT 版本、可用接口、行情级别、资金门槛都不一样。别人能用的函数你未必有,开通前先问清楚。
一句话总结
QMT 给了你最大的控制权,也把最大的运维责任交给了你。想要灵活,选它;想要省心,看 PTrade。