QMT Development

Polar Sponsor
爱发电 赞助
.NET 9.0

QMT平台专用技能。触发词:QMT、实盘、QMT策略、QMT回测、QMT开发。提供API规范、核心函数、止损监控、实盘注意事项。用于量化策略开发。

QMT平台开发技能

功能概述

QMT平台开发技能是一项面向实际任务的技能,主要用于版本:1.0.0;适用平台:迅投QMT量化交易平台;

核心要点

  • 🎯 核心函数机制;
  • QMT标准函数;
  • init();

使用与执行

策略启动时;加载信号、设置参数、设置股票池;handlebar();主要逻辑,买入/卖出/止损;2. ⚠️ 重要:is_last_bar() 机制;is_last_bar() 返回值;每根K线都返回True;✅ 每天检查;

结果检查与注意事项

只在特定时刻返回True。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

QMT平台开发技能

版本:1.0.0 适用平台:迅投QMT量化交易平台

🎯 核心函数机制

1. QMT标准函数

函数 用途 触发时机 说明
init() 初始化 策略启动时 加载信号、设置参数、设置股票池
handlebar() K线处理 每根K线 主要逻辑,买入/卖出/止损

2. ⚠️ 重要:is_last_bar() 机制

场景 is_last_bar() 返回值 止损检查
回测 每根K线都返回True ✅ 每天检查
实盘 只在特定时刻返回True ❌ 盘中可能不检查

关键理解:

  • 回测时,每根K线都是"最后一根",所以is_last_bar()都返回True
  • 实盘时,is_last_bar()只在特定时刻返回True(可能是收盘时)

结论:

  • ❌ 不要用is_last_bar()控制止损/止盈检查
  • ✅ 用时间判断控制检查频率

📋 止损监控方式

方式1:时间判断(推荐)

def handlebar(ContextInfo):
    """每根K线都会触发"""
    
    # 止损监控(每5分钟检查一次)
    now = datetime.now()
    if G.last_check_time:
        elapsed = (now - G.last_check_time).total_seconds() / 60
        if elapsed >= 5:  # 每5分钟检查
            check_stop_loss(ContextInfo)
            G.last_check_time = now
    
    # 买入逻辑(可以保留is_last_bar()限制)
    if not ContextInfo.is_last_bar():
        return
    
    # 买入逻辑...

方式2:bar_count判断

def handlebar(ContextInfo):
    """每根K线都会触发"""
    
    # 每5根K线检查一次止损
    if ContextInfo.bar_count % 5 == 0:
        check_stop_loss(ContextInfo)

🚀 代码模板

完整策略模板

# 全局状态对象
class GlobalState:
    pass
G = GlobalState()

def init(ContextInfo):
    """初始化"""
    # 全局状态
    G.waiting_list = []
    G.sent_orders = set()
    G.buy_prices = {}  # 记录买入价格
    G.last_check_time = None
    
    # 加载信号
    with open('trading_signals/alphagbm_signals_qmt.json') as f:
        data = json.load(f)
    G.signals = [s['code'] for s in data['signals']]
    
    # 设置股票池
    ContextInfo.set_universe(G.signals)

def handlebar(ContextInfo):
    """每根K线触发"""
    
    # 1. 止损监控(每5分钟)
    now = datetime.now()
    if G.last_check_time:
        elapsed = (now - G.last_check_time).total_seconds() / 60
        if elapsed >= 5:
            check_stop_loss(ContextInfo)
            G.last_check_time = now
    
    # 2. 检查waiting_list
    if check_waiting_orders(ContextInfo):
        return
    
    # 3. 买入逻辑(只在最后一根K线)
    if not ContextInfo.is_last_bar():
        return
    
    # 买入...

⚠️ 实盘注意事项

1. passorder的prType参数

# ❌ 错误
passorder(23, 1101, accID, code, -1, ...)  # prType=-1(价格不可控)

# ✅ 正确
passorder(23, 1101, accID, code, 14, ...)  # prType=14(对手价)

2. waiting_list防重机制

# 初始化
G.waiting_list = []
G.sent_orders = set()

# 买入时记录
if code not in G.sent_orders:
    passorder(...)
    G.sent_orders.add(code)
    G.waiting_list.append(msg)

# 检查waiting_list
def check_waiting_orders(ContextInfo):
    for msg in G.waiting_list[:]:
        order_result = get_trade_detail_data(...)
        if order_result:
            G.waiting_list.remove(msg)

3. 风控设置

QMT层面:

  • 金额合规(限制资金上限)
  • 反向单交易(禁止买入后立即卖出)
  • 对敲单交易(禁止高买低卖)

代码层面:

  • 硬编码资金限制
  • 止损止盈逻辑
  • 异常处理

🚫 禁止事项

  1. ❌ 使用is_last_bar()控制止损检查
  2. ❌ 使用prType=-1
  3. ❌ 没有waiting_list防重机制
  4. ❌ 没有止损止盈逻辑

📚 参考文档

  • QMT官方示例(双均线实盘、竞价选股、行业轮动、多因子选股)
  • QMT API文档
  • QMT_STRATEGY_DEVELOPMENT_STANDARDS.md

技能版本:1.0.0

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习