返回顶部
q

qmtQMT量化交易

QMT迅投量化交易终端 - 内置Python策略开发、回测引擎和实盘交易,支持中国证券市场全品种。

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.3
安全检测
已通过
480
下载量
免费
免费
5
收藏
概述
安装方式
版本历史

qmt

QMT(迅投量化交易终端)

QMT(Quant Market Trading)是迅投科技开发的专业量化交易平台。提供完整的桌面客户端,内置Python策略开发、回测引擎和实盘交易功能,支持中国证券市场全品种。

⚠️ 需要通过券商开通QMT权限。QMT仅在Windows上运行。可通过国金、华鑫、中泰、东方财富等券商获取。

两种运行模式

模式说明
QMT(完整版)完整桌面GUI,内置Python编辑器、图表和回测引擎
miniQMT
极简模式 — 通过外部Python使用xtquant SDK(参见 miniqmt skill) |

内置Python策略框架

QMT提供事件驱动策略框架,内置Python运行时(类似聚宽/米筐)。

策略生命周期

python
def init(ContextInfo):
初始化函数 - 策略启动时调用一次,用于设置股票池和参数
ContextInfo.set_universe([000001.SZ, 600519.SH])

def handlebar(ContextInfo):
K线处理函数 - 每根K线触发一次(tick/1m/5m/1d等),在此编写交易逻辑
close = ContextInfo.getmarketdata([close], stock_code=000001.SZ, period=1d, count=20)
# 在此编写交易逻辑

def stop(ContextInfo):
停止函数 - 策略停止时调用
pass

获取行情数据(内置)

python
def handlebar(ContextInfo):
# 获取最近20根K线的收盘价
data = ContextInfo.getmarketdata(
[open, high, low, close, volume],
stock_code=000001.SZ,
period=1d,
count=20
)

# 获取历史数据
history = ContextInfo.gethistorydata(
20, 1d, close, stock_code=000001.SZ
)

# 获取板块股票列表
stocks = ContextInfo.getstocklistinsector(沪深A股)

# 获取财务数据
fin = ContextInfo.getfinancialdata(000001.SZ)

下单(内置)

python
def handlebar(ContextInfo):
# 限价买入100股,价格11.50
order_shares(000001.SZ, 100, fix, 11.50, ContextInfo)

# 限价卖出100股,价格12.00
order_shares(000001.SZ, -100, fix, 12.00, ContextInfo)

# 按目标金额买入(10万元)
ordertargetvalue(000001.SZ, 100000, fix, 11.50, ContextInfo)

# 撤单
cancel(order_id, ContextInfo)

查询持仓与账户

python
def handlebar(ContextInfo):
# 获取持仓信息
positions = gettradedetaildata(youraccount, stock, position)
for pos in positions:
print(pos.mstrInstrumentID, pos.mnVolume, pos.m_dMarketValue)

# 获取委托信息
orders = gettradedetaildata(youraccount, stock, order)

# 获取账户资产信息
account = gettradedetaildata(youraccount, stock, account)

回测

QMT内置回测引擎:

  1. 1. 在内置Python编辑器中编写策略
  2. 设置回测参数(日期范围、初始资金、手续费、滑点)
  3. 点击运行回测
  4. 查看结果:资金曲线、最大回撤、夏普比率、交易记录

回测参数设置

python
def init(ContextInfo):
ContextInfo.capital = 1000000 # 初始资金
ContextInfo.set_commission(0.0003) # 手续费率
ContextInfo.set_slippage(0.01) # 滑点
ContextInfo.set_benchmark(000300.SH) # 基准指数

完整示例:双均线策略

python
import numpy as np

def init(ContextInfo):
ContextInfo.stock = 000001.SZ
ContextInfo.set_universe([ContextInfo.stock])
ContextInfo.fast = 5 # 快速均线周期
ContextInfo.slow = 20 # 慢速均线周期

def handlebar(ContextInfo):
stock = ContextInfo.stock
# 获取最近slow+1根K线的收盘价
closes = ContextInfo.gethistorydata(ContextInfo.slow + 1, 1d, close, stock_code=stock)

if len(closes) < ContextInfo.slow:
return # 数据不足,跳过

# 计算当前和前一根K线的快慢均线值
ma_fast = np.mean(closes[-ContextInfo.fast:])
ma_slow = np.mean(closes[-ContextInfo.slow:])
prev_fast = np.mean(closes[-ContextInfo.fast-1:-1])
prev_slow = np.mean(closes[-ContextInfo.slow-1:-1])

# 查询当前持仓
positions = gettradedetail_data(ContextInfo.accID, stock, position)
holding = any(p.mstrInstrumentID == stock and p.mnVolume > 0 for p in positions)

# 金叉信号:快速均线上穿慢速均线,买入
if prevfast <= prevslow and mafast > maslow and not holding:
order_shares(stock, 1000, fix, closes[-1], ContextInfo)

# 死叉信号:快速均线下穿慢速均线,卖出
elif prevfast >= prevslow and mafast < maslow and holding:
order_shares(stock, -1000, fix, closes[-1], ContextInfo)

数据覆盖范围

类别内容
股票A股(沪、深、北交所)、港股通
指数
所有主要指数 | | 期货 | 中金所、上期所、大商所、郑商所、能源中心、广期所 | | 期权 | ETF期权、股票期权、商品期权 | | ETF | 所有交易所交易基金 | | 债券 | 可转债、国债 | | 周期 | Tick、1分钟、5分钟、15分钟、30分钟、1小时、日、周、月 | | Level 2 | 逐笔委托、逐笔成交(取决于券商权限) | | 财务 | 资产负债表、利润表、现金流量表、关键指标 |

QMT vs miniQMT vs Ptrade 对比

特性QMTminiQMTPtrade
厂商迅投科技迅投科技恒生电子
Python
内置(版本受限) | 外部(任意版本) | 内置(版本受限) | | 界面 | 完整GUI | 极简 | 完整(网页端) | | 回测 | 内置 | 需自行实现 | 内置 | | 部署 | 本地 | 本地 | 券商服务器(云端) | | 外网访问 | 支持 | 支持 | 不支持(仅内网) |

使用技巧

  • - QMT仅在Windows上运行。
  • 内置Python版本由QMT固定,无法安装任意pip包。
  • 如需不受限的Python环境,使用miniQMT模式配合xtquant SDK。
  • 策略文件存储在QMT安装目录中。
  • 文档:http://dict.thinktrader.net/freshman/rookie.html
  • 也支持VBA接口用于Excel集成。

进阶示例

多股票轮动策略

python
import numpy as np

def init(ContextInfo):
# 设置股票池:银行龙头股
ContextInfo.stock_pool = [601398.SH, 601939.SH, 601288.SH, 600036.SH, 601166.SH]
ContextInfo.setuniverse(ContextInfo.stockpool)
ContextInfo.hold_num = 2 # 最多持有2只股票

def handlebar(ContextInfo):
# 计算每只股票的20日收益率
momentum = {}
for stock in ContextInfo.stock_pool:
closes = ContextInfo.gethistorydata(21, 1d, close, stock_code=stock)
if len(closes) >= 21:
ret = (closes[-1] - closes[0]) / closes[0] # 20日收益率
momentum[stock] = ret

# 按动量排序,选择前N只股票
sorted_stocks = sorted(momentum.items(), key=lambda x: x[1], reverse

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 qmt-1776128343 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 qmt-1776128343 技能

通过命令行安装

skillhub install qmt-1776128343

下载

⬇ 下载 qmt v1.0.3(免费)

文件大小: 50.01 KB | 发布时间: 2026-4-15 14:04

v1.0.3 最新 2026-4-15 14:04
- 新增 demo_project 示例目录,包含 demo.py 示例脚本和 README.md 说明文件。
- 便于用户快速参考和上手 QMT 策略开发。

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部