迅投 QMT
券商极速量化终端,Python/VBA 双模式 股票
迅投 QMT 是一款面向 A 股(并支持期货、期权、基金)的券商极速量化交易终端,由迅投(ThinkTrader)出品,国信证券的 iQuant、华鑫、国金、中信等多家券商均以 QMT 为底座做定制发行。它把「本地客户端 + Python 策略 + 直连柜台报单」串成一条流水线,既能用历史 K 线做回测,也能接真实账户做实盘,是机构和高频散户在券商侧做自动交易的主流选择之一。
本手册把 QMT 量化开发拆成若干章节,从三种开发方式、内置 Python 运行机制、交易与行情函数,到 XtQuant 外部接口、VBA 公式与数据字典,每章都配可复制的示例代码,照着写就能跑起来。
三种开发方式
QMT 的策略开发有三条路径,先认清自己要走哪条,后面的章节才不会串:
| 方式 | 语言 | 运行位置 | 适合场景 |
|---|---|---|---|
| 内置 Python | Python 3.6 | QMT 客户端内 | 主流方式:回测 + 实盘一体化,事件驱动 |
| XtQuant | Python 3.6~3.12 | 外部 Python 进程,连 MiniQMT | 自己搭框架、对接其它系统、做研究脚本 |
| VBA 公式 | 类 VB 公式语言 | QMT 客户端内 | 指标/选股/图表化的公式策略,老牌写法 |
新手大多从内置 Python 入手——它和回测、实盘结合最紧,函数库最全。想用自己熟悉的 Python 环境(pandas/numpy/任意库)则选 XtQuant;从其它公式平台(通达信/文华)迁移过来、习惯「写公式」的,再看 VBA。详见 平台入门与三种开发方式。
适用市场
- A 股 / ETF / 可转债 / 国债逆回购:QMT 的主战场,普通买卖、融资融券、新股新债申购全覆盖。
- 期货 / 期权:支持商品期货、股指期货与期权行情和交易。
- 指数 / 基金 / 债券:数据字典提供完整的基础信息与行情。
- QMT 是本地客户端,需要券商账号登录;非 A 股的港美股不在支持范围。
核心能力一览
| 能力 | 说明 | 对应章节 |
|---|---|---|
| 三种开发方式选型 | 内置 Python / XtQuant / VBA 的取舍 | 平台入门与三种开发方式 |
| 内置 Python 运行机制 | init/handlebar/subscribe/run_time 三种触发 | 内置Python运行机制 |
| 交易下单 | passorder 综合下单、撤单、账号/持仓/成交查询 | 内置Python交易函数 |
| 行情与数据 | get_market_data_ex、订阅、全推 tick、板块成分 | 内置Python行情与数据函数 |
| XtQuant 外部接口 | xtdata 行情 + xttrader 交易,连 MiniQMT | XtQuant外部接口 |
| VBA 公式模型 | 公式编写规则、数据引用、序列/逐 K 线模式 | VBA公式模型 |
| 数据字典 | 股票/期货/期权/指数/基金数据、迅投因子 | 数据字典与品种数据 |
| 策略示例与回测 | 双均线回测/实盘、订阅下单、定时任务 | 策略示例与回测 |
内置 Python 速览
内置 Python 是 QMT 最常用的开发方式,脚本写在客户端策略编辑器里,引擎按事件回调执行:
#coding:gbk
import numpy as np
def init(C):
# init / handlebar 的入参是 ContextInfo 对象,约定缩写为 C
C.stock = C.stockcode + '.' + C.market # 主图品种,如 600000.SH
C.fast, C.slow = 10, 20 # 快慢均线周期
def handlebar(C):
# 取本地历史收盘(回测用,subscribe=False 不订阅实时)
data = C.get_market_data_ex(['close'], [C.stock], period=C.period,
count=C.slow, subscribe=False)
closes = list(data[C.stock].iloc[:, 0])
ma_f, ma_s = np.mean(closes[-C.fast:]), np.mean(closes[-C.slow:])
if ma_f > ma_s:
passorder(23, 1101, 'test', C.stock, 5, -1, 100, C) # 买入 100 股
- 第一行必须写
#coding:gbk,统一脚本编码为 GBK。 - 全局/跨周期状态挂在
ContextInfo(缩写C)上;下单用passorder,行情用get_market_data_ex。 - 三种触发机制:
handlebar(逐 K 线)、subscribe_quote(订阅推送)、run_time(定时任务)。
函数体系速查
| 分类 | 代表函数 | 作用 |
|---|---|---|
| 下单 | passorder | 股票/期货/期权/两融/申赎综合下单 |
| 查询 | get_trade_detail_data | 账号/持仓/委托/成交/合约明细 |
| 行情(历史) | ContextInfo.get_market_data_ex | K 线、tick、财务、特色数据 |
| 行情(实时) | ContextInfo.subscribe_quote / get_full_tick | 订阅推送 / 全市场快照 |
| 品种/板块 | get_stock_list_in_sector / get_instrument_detail | 板块成分 / 合约基础信息 |
| 定时 | ContextInfo.run_time | 固定间隔回调 |
| XtQuant 行情 | xtdata.get_market_data_ex / subscribe_quote | 外部进程取行情 |
| XtQuant 交易 | xttrader.order_stock / query_stock_positions | 外部进程报单与查询 |
学习路径
- 认清三种开发方式,选定内置 Python → 平台入门与三种开发方式
- 吃透运行机制:handlebar 何时被调用 → 内置Python运行机制
- 学会下单与撤单:passorder → 内置Python交易函数
- 会用行情与数据 API → 内置Python行情与数据函数
- 想用外部 Python 环境 → XtQuant外部接口
- 从公式平台迁移 → VBA公式模型
- 查品种字段与因子 → 数据字典与品种数据
- 抄起来就能改的实战策略 → 策略示例与回测
左侧导航列出了本手册的全部章节,随时可以跳转查阅。
下一步
第一次用 QMT?从 平台入门与三种开发方式 开始。
📚 迅投 QMT 操作手册(8 章)
语法基础
函数参考
内置Python交易函数
QMT 内置 Python 交易 API:passorder 综合下单函数的参数(opType/orderType/prType/quickTrade)、买卖与两融代码、撤单、get_trade_detail_data 账号/持仓/委托/成交查询。
内置Python行情与数据函数
QMT 内置 Python 行情与数据 API:download_history_data 下载数据、get_market_data_ex 取历史K线、subscribe_quote 订阅推送、get_full_tick 全市场快照、板块成分与合约信息,及周期合成规则。
XtQuant外部接口
QMT XtQuant 外部 Python 库:xtdata 行情模块(取K线/订阅/合约信息)、xttrader 交易模块(XtQuantTrader 连接、order_stock 下单、查询、回调),连 MiniQMT 客户端独立运行。
💡 服务
看懂了还是不会用?交给我们