
为什么普通人需要关心qmt这类工具
股票和期货市场里,手工下单的延迟以秒计算,情绪波动还会让计划变形。qmt这类量化交易终端把执行交给程序,把决策交给事先写好的规则。它不保证赚钱,但能保证纪律。对散户来说,qmt的吸引力在于它把机构用的交易基础设施搬到了个人电脑上——行情、策略、回测、下单在同一个界面里跑通。
qmt到底是什么
qmt是券商提供的一款量化交易软件,支持Python编写策略,覆盖股票、期货、期权等品种。它分成两个部分:客户端负责行情展示和账户管理,策略引擎负责执行代码。你在客户端里登录账户,策略引擎通过接口拿到实时行情和持仓数据,策略信号触发后直接报单到交易所。

和普通的交易软件相比,qmt多了一个编程入口。普通软件里你点按钮下单,qmt里你写一行代码下单。区别在于,这行代码可以带上条件、循环和风控逻辑。
股票和期货在qmt里的差异
股票是T+1,当天买入不能当天卖出。qmt写股票策略时,持仓管理要绕开这个规则。期货是T+0,当天可以反复开平仓。qmt的期货策略需要额外处理保证金和强平逻辑。
股票交易成本主要是佣金和印花税,期货交易成本主要是手续费和滑点。qmt的回测模块允许你把这两类成本分别设进去。很多人回测时忽略滑点,实盘一跑就发现收益被吃掉一大截。qmt的模拟撮合可以按对手价成交,比按最新价成交更接近真实情况。
策略从想法到实盘的四个步骤
第一步 把交易逻辑写成规则
人话版的策略逻辑是:什么条件下买,什么条件下卖,买多少,亏多少止损。qmt要求你把这些条件翻译成代码。比如双均线策略,短期均线上穿长期均线买入,下穿卖出。代码里就是两个移动平均值的比较。
第二步 用历史数据回测
qmt内置回测引擎,你把策略挂到历史K线上跑一遍,看收益曲线和最大回撤。回测时要留意未来函数——用了当天收盘价做当天开盘的决策,回测收益会虚高。qmt的逐K线模式可以避免这个问题。
第三步 模拟盘验证
qmt支持模拟交易账户,行情是实时的,下单不报交易所。这一步检验的是策略在真实行情跳动下的表现,特别是滑点和成交概率。模拟盘跑两周以上,和回测结果偏差太大就要回头改逻辑。
第四步 小资金实盘
实盘账户和模拟账户的代码几乎一样,改一下账户配置就行。qmt的风控参数要提前设好:单笔最大亏损、当日最大回撤、最大持仓数量。这些参数在客户端里填,不写在策略代码里,改起来不用动程序。
一个双均线策略的qmt代码框架
# 假设在qmt策略编辑器里运行
import numpy as np
def init(context):
context.short_window = 5
context.long_window = 20
context.symbol = '600000.SH'
context.position = 0
def handle_bar(context, bar_dict):
prices = context.history(context.symbol, context.long_window + 1, '1d', 'close')
if len(prices) < context.long_window + 1:
return
short_ma = np.mean(prices[-context.short_window:])
long_ma = np.mean(prices[-context.long_window:])
price = bar_dict[context.symbol].close
if short_ma > long_ma and context.position == 0:
order_shares(context.symbol, 1000)
context.position = 1
elif short_ma < long_ma and context.position == 1:
order_shares(context.symbol, -1000)
context.position = 0
这段代码只是框架,实盘要加滑点控制和止损。qmt的order_shares函数按股数下单,期货要用order_lots按手数下单。
期货策略在qmt里的特殊处理
期货有夜盘,qmt的行情服务器在夜盘时段继续推送数据。策略里的时间判断要用交易所时间,不能用本地时间。期货合约有到期日,qmt的策略需要处理换月逻辑,临近交割月自动平仓或移仓。
期货保证金会随价格波动变化,qmt的策略里要留出保证金余量。满仓操作在期货里是危险的,一个反向跳空就可能触发强平。qmt的风控模块可以设置保证金占用比例上限,超过就拒绝开仓。
散户用qmt最容易踩的三个坑
第一个坑是过度拟合。回测时把参数调到最优,曲线漂亮得像艺术品,实盘一跑就亏。qmt的回测报告里有参数敏感性测试,把参数上下调10%再看收益变化,变化太大说明策略不稳。
第二个坑是忽略交易成本。qmt回测默认的佣金和滑点可能偏低,自己按实际费率改。股票印花税千分之一,期货手续费按品种不同差异很大,这些都要填对。
第三个坑是策略无人值守时出故障。qmt的策略在客户端里跑,电脑关机策略就停。实盘跑策略要用独立电脑或云服务器,qmt支持断线重连,但网络中断期间错过的行情不会补。
股票期货组合策略在qmt里的玩法
股票多头加期货空头可以对冲市场风险,qmt支持在同一个策略里操作不同品种。股票端选一篮子股票,期货端做空股指期货,策略逻辑是股票组合跑赢指数的部分作为收益来源。qmt的账户模型允许股票账户和期货账户分开配置,策略引擎统一调度。
这种策略的难点在于股票和期货的保证金计算方式不同,qmt里股票是全额交易,期货是保证金交易。策略里要实时计算两个账户的可用资金,避免一边下单另一边资金不足。
用qmt之前先想清楚的事
qmt是工具不是印钞机。策略的收益来自你对市场的理解,不是来自软件本身。先用qmt的模拟盘把交易逻辑跑通,再用小资金验证,最后才放大仓位。量化交易的核心优势是纪律和执行速度,前提是策略逻辑本身经得起检验。股票和期货的规则差异决定了策略不能简单套用,股票策略移植到期货上之前,保证金和T+0规则要重新算一遍。
