零基础搭建 QMT 自动交易策略:回测→模拟→实盘,一步步实现全自动委托
发布时间:14小时前阅读:18
、前期准备:开通权限 + 软件环境
- 账户完成 QMT 程序化权限开通,签署程序化交易协议,完成交易所报备;
- 安装券商下发完整版 QMT,路径无中文,安装在非 C 盘;
- 进入【模型研究】,在【数据管理】下载对应标的历史 K 线、Tick 行情,回测需要本地行情数据;
- QMT 内置 Python 环境,无需单独安装 Python;第三方库需要券商白名单才能导入。
二、第一步:定义清晰可量化的交易逻辑(最关键)
写代码前,必须把主观想法转为无歧义、可被代码识别的交易规则,包含:
- 股票池:要交易哪些标的(单只 ETF / 个股,还是一篮子股票)
- 买入触发条件
- 卖出 / 平仓触发条件
- 仓位规则:单笔最大仓位、总仓位上限
- 止损、止盈风控规则
示例(新手入门双均线策略):
股票:沪深 300ETF 买入:5 日均线上穿 20 日均线(金叉),空仓状态下买入 卖出:5 日均线下穿 20 日均线(死叉),全部卖出 风控:单笔最大仓位 80%,单笔亏损达到 5% 强制止损
❌大忌:模糊描述,例如 “低位企稳买入,涨多了卖出”,这种无法写成自动交易代码。
三、第二步:QMT 新建策略 + 基础代码框架
QMT 的 Python 策略固定两大核心函数,所有自动交易代码都围绕这两个函数编写迅投知识库:
- init(ContextInfo):策略启动时只执行一次。用来初始化股票池、账号、参数、全局变量。
- handlebar(ContextInfo):核心执行函数。回测时逐根 K 线触发;实盘时,行情 Tick 推送就会触发,用来计算指标、判断买卖信号、自动下单。
新建策略操作路径
左侧【模型研究】→新建策略→选择 Python 策略,打开策略编辑器,编写代码后点击编译,无报错代表语法通过。
编码首行务必写#encoding:gbk,防止中文注释乱码报错
极简模板(双均线框架,可直接复制进 QMT 测试)
#encoding:gbk
import pandas as pd
import numpy as np
def init(ContextInfo):
# 初始化股票池、账号、均线参数
ContextInfo.stock = "510300.SH"
ContextInfo.fast_period = 5
ContextInfo.slow_period = 20
ContextInfo.set_universe([ContextInfo.stock])
ContextInfo.acc_id = "" #填入你的资金账号
def handlebar(ContextInfo):
# 获取历史K线
df = ContextInfo.get_history_data(ContextInfo.stock, "1d", ContextInfo.slow_period + 10, "close")
ma_fast = df.rolling(ContextInfo.fast_period).mean().iloc[-1]
ma_slow = df.rolling(ContextInfo.slow_period).mean().iloc[-1]
ma_fast_last = df.rolling(ContextInfo.fast_period).mean().iloc[-2]
ma_slow_last = df.rolling(ContextInfo.slow_period).mean().iloc[-2]
# 查询当前持仓
pos = ContextInfo.get_pos(ContextInfo.stock)
hold_num = pos.volume
# 金叉买入
if ma_fast_last <= ma_slow_last and ma_fast > ma_slow and hold_num == 0:
ContextInfo.passorder(23, 1101, ContextInfo.stock, 0, 0, ContextInfo.acc_id)
# 死叉卖出
if ma_fast_last >= ma_slow_last and ma_fast < ma_slow and hold_num > 0:
ContextInfo.passorder(24, 1101, ContextInfo.stock, hold_num, 0, ContextInfo.acc_id)
代码仅教学演示,实盘使用前必须补充滑点、手续费、强制止损风控。
四、第三步:历史回测,检验策略历史表现
代码编译完成后,先做回测,不要直接跑实盘。
- 切换到回测面板,设置参数:回测起止时间、初始资金、手续费、滑点、复权方式;
- 点击回测,等待运行完成;
- 重点看 4 个指标:年化收益、最大回撤、胜率、盈亏比,不要只看收益率。
⚠️回测陷阱:未来函数、过度拟合、手续费 / 滑点设置过低,会高估策略收益,回测好看不代表实盘能盈利。
五、第四步:模拟盘实时运行(必经步骤)
回测通过之后,进入模拟模式实时跑策略,验证真实行情下信号、委托逻辑:
- 进入【模型交易】,选中策略,运行模式选择模拟;
- 保持 QMT 客户端在线,盘中观察策略日志、信号、模拟委托;
- 持续运行至少数周,观察震荡、下跌、上涨不同行情下策略表现。
重点观察:信号是否延迟、重复发单、委托失败、成交和回测不一致等问题。模拟阶段出现异常,禁止上实盘。
六、第五步:实盘全自动运行(风险最高)
模拟盘稳定后,才可以切换实盘模式,开启全自动委托:
- 模型交易页面,运行模式切换为实盘,选择已开通程序化权限的资金账号;
- 点击运行,策略启动,实时接收行情,满足条件自动下委托;
- 全程监控:保持电脑开机联网,打开策略日志面板,随时查看委托、报错信息;
- 建议小资金试运行,不要一次性重仓。
重要风险:电脑断电、断网、系统蓝屏、行情中断、券商服务器维护,都会导致策略停止自动交易,一定要在代码内增加强制止损兜底。
七、新手搭建全自动策略高频踩坑清单
- ❌代码缺少风控,没有止损,遇到大跌行情大幅回撤;
- ❌回测参数设置不合理,忽略滑点与手续费,美化回测曲线;
- ❌实盘电脑不监控,关机断网,策略停止运行自己却不知道;
- ❌未来函数:使用未来数据,回测完美,实盘信号完全失效;
- ❌频繁重复下单,没有仓位判断,造成反复买卖、多余手续费;
- ❌直接复制网上策略代码,看不懂逻辑,直接上实盘;
- ❌第三方库不在券商白名单,代码直接报错无法运行。
八、新手学习路线建议
- 先吃透 QMT 内置示例策略,看懂 init、handlebar 执行逻辑;
- 写简单单标的均线策略,反复回测,看懂回测报告;
- 放到模拟盘长期运行,观察实盘行情下信号差异;
- 在策略代码中增加仓位控制、止损风控;
- 小资金实盘试运行,持续监控日志与持仓。
结尾
QMT 全自动策略,只是自动执行你的交易规则,不会自动赚钱。自动交易放大收益的同时,也会放大风险,一旦策略逻辑有缺陷,会在盘中不间断执行亏损委托。
新手切记:模拟盘充分验证、完善风控,再考虑实盘自动运行。
股票/量化开户找我!股票佣金万0.854(满足条件)!无门槛国债逆回购一折 (百万分之一)!ETF佣金万0.5!ETF申赎一折!优惠多多!免费量化使用量化软件QMT+ptrade!
温馨提示:投资有风险,选择需谨慎。
-
2026年券商APP月活榜:8家券商座次怎么排?选APP该看的3件事
2026-10-12 16:05
-
2026年可转债投资攻略:【可转债专题】帮你从入门到实操一站式搞定
2026-10-12 16:05
-
银证转账失败是什么原因?这4种情况最常见
2026-10-12 16:05



问一问
从业认证

+微信
分享该文章
