🖥️

迅投 QMT

券商极速量化终端,Python/VBA 双模式 股票

迅投 QMT 是一款面向 A 股(并支持期货、期权、基金)的券商极速量化交易终端,由迅投(ThinkTrader)出品,国信证券的 iQuant、华鑫、国金、中信等多家券商均以 QMT 为底座做定制发行。它把「本地客户端 + Python 策略 + 直连柜台报单」串成一条流水线,既能用历史 K 线做回测,也能接真实账户做实盘,是机构和高频散户在券商侧做自动交易的主流选择之一。

本手册把 QMT 量化开发拆成若干章节,从三种开发方式、内置 Python 运行机制、交易与行情函数,到 XtQuant 外部接口、VBA 公式与数据字典,每章都配可复制的示例代码,照着写就能跑起来。

三种开发方式

QMT 的策略开发有三条路径,先认清自己要走哪条,后面的章节才不会串:

方式语言运行位置适合场景
内置 PythonPython 3.6QMT 客户端内主流方式:回测 + 实盘一体化,事件驱动
XtQuantPython 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 交易,连 MiniQMTXtQuant外部接口
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_exK 线、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外部进程报单与查询

学习路径

  1. 认清三种开发方式,选定内置 Python → 平台入门与三种开发方式
  2. 吃透运行机制:handlebar 何时被调用 → 内置Python运行机制
  3. 学会下单与撤单:passorder → 内置Python交易函数
  4. 会用行情与数据 API → 内置Python行情与数据函数
  5. 想用外部 Python 环境 → XtQuant外部接口
  6. 从公式平台迁移 → VBA公式模型
  7. 查品种字段与因子 → 数据字典与品种数据
  8. 抄起来就能改的实战策略 → 策略示例与回测

左侧导航列出了本手册的全部章节,随时可以跳转查阅。

下一步

第一次用 QMT?从 平台入门与三种开发方式 开始。

📚 迅投 QMT 操作手册(8 章)