QMT软件自学教程——目录大纲

PTD 阅读:12 2026-07-17 10:09:58 评论:0

QMT极速策略交易系统——Python策略函数开发完全指南

📚 目录与大纲

第一章:初识QMT策略函数交易 —— 环境准备与核心概念

1.1 什么是策略函数交易

  • 策略函数交易 vs 手动交易的区别
  • QMT策略交易的三种模式:回测、模拟盘、实盘

1.2 环境准备与软件配置

  • 系统最低配置要求(操作系统、CPU、内存)
  • QMT客户端下载与安装
  • 登录模式选择:「行情+交易」与「独立行情」

1.3 首次使用必须完成的准备工作

  • 在「模型研究」中下载Python运行库(最关键的第一步)
  • 添加资金账号到管理端白名单
  • 设置Python库路径

1.4 策略开发工具介绍

  • 模型编辑器的界面布局与功能区
  • VBA模型 vs Python模型的选择建议
  • 代码高亮、自动补全、函数帮助的使用

第二章:实战入门 —— 手把手实现“定时国债逆回购”策略

2.1 为什么选择逆回购作为入门案例

  • 逻辑简单、风险极低、实用性强
  • 掌握定时任务、资金查询、下单三大核心能力

2.2 完整策略代码逐行解析

  • init() 初始化函数:账号设置、品种选择、定时任务注册
  • run_time() 定时任务的使用方法
  • get_account_info() 查询可用资金
  • 逆回购下单的特殊性:操作为“卖出”(opType=24),数量单位为“张”
  • passorder() 综合下单函数的首次实战

2.3 从编辑到运行的全流程操作

  • 新建Python模型 → 编写代码 → 编译检查
  • 添加到「模型交易」→ 选择模拟/实盘模式 → 启动策略
  • 查看日志输出与交易信号

2.4 策略的优化与扩展思路

  • 增加收益率阈值判断
  • 自动选择沪市/深市最高收益品种
  • 节假日自动跳过

第三章:Python策略开发核心框架

3.1 策略的三种运行机制

  • 逐K驱动(handlebar):每根K线触发一次
  • 定时任务驱动(run_time):固定时间触发
  • 事件驱动(订阅推送):行情变化实时触发

3.2 标准策略代码结构

  • init(ContextInfo) —— 初始化函数(只执行一次)
  • handlebar(ContextInfo) —— 核心逻辑函数(每笔行情触发)
  • 自定义定时函数 —— 定时任务执行入口

3.3 ContextInfo上下文对象详解

  • 作用:贯穿策略全局的状态容器
  • 常用属性:account(账号)、stock_list(股票池)
  • 自定义属性的存储与读取

3.4 常用内置函数速览

  • ContextInfo.run_time() —— 注册定时任务
  • ContextInfo.is_last_bar() —— 判断是否为最新K线(避免重复触发)

第四章:核心交易函数 —— passorder 深度解析

4.1 passorder 函数完整语法

  • 11个参数的完整签名与各自作用

4.2 参数一:opType(操作类型)全解

  • 股票:23(买入)、24(卖出)
  • 融资融券:27~32
  • 股票期权:48~51
  • 基金申赎:86~87
  • 新股申购:92

4.3 参数二:orderType(下单方式)

  • 1101 的含义与使用场景
  • 其他下单方式的适用情况

4.4 参数三~四:账号与证券代码

  • 资金账号的填写格式
  • 证券代码的规范写法(600000.SH / 000001.SZ

4.5 参数五~七:报价类型、价格与数量

  • prType:指定价(3/11)、最新价(5)、市价单(42~48)
  • price:-1表示自动取价,指定价时填写具体数值
  • volume:不同品种的单位差异(股、张、手)

4.6 参数八~十一:辅助参数

  • strategyName:策略备注(便于追踪来源)
  • quickTrade:0(走完K线)、1(立即下单)、2(立即下单+实时反馈)—— 重点:实盘必用2
  • userOrderId:外部系统追踪ID
  • ContextInfo:必填的上下文对象

4.7 passorder 返回值解读

  • 0 = 成功
  • 其他错误码的含义与排查方法

第五章:行情数据获取全攻略

5.1 get_market_data —— 获取历史K线数据

  • 参数详解:fields、period、count、start_time、end_time
  • 返回值格式(DataFrame)与字段说明
  • 实战示例:获取MA均线、计算技术指标

5.2 get_full_tick —— 获取实时行情快照

  • 返回数据结构:最新价、涨跌幅、成交量、买卖盘口等
  • 获取单只或多只股票的实时行情
  • get_market_data的配合使用场景

5.3 subscribe_quote —— 持续订阅实时行情推送

  • init()中订阅,在handlebar()中接收
  • get_subscribe_quote() 获取订阅数据

5.4 数据的补充与维护

  • 通过「数据管理」补充历史数据
  • 智能下载、批量下载的使用方法
  • 迅投高级数据的特点

第六章:账户与持仓管理(查询函数)

6.1 资金查询 —— get_account_info()

  • 返回字段:可用金额、总资产、市值、冻结金额、可取金额
  • 在多账号场景下的使用

6.2 持仓查询 —— get_positions() / get_position(stock)

  • 返回字段:证券代码、可用数量、持仓成本、市值、盈亏
  • 判断是否持有某只股票
  • 获取持仓数量用于卖出或调仓

6.3 委托查询 —— get_orders()

  • 返回字段:合同编号、委托状态、委托量、成交数量
  • 过滤未成交委托(已报/部成)
  • 委托状态的枚举值含义

6.4 成交查询 —— get_deals()

  • 返回字段:成交编号、成交价格、成交数量、成交时间
  • 统计当日已成交金额/数量

第七章:委托管理与撤单操作

7.1 撤单函数 —— cancel_order()

  • 按合同编号撤单
  • 按市场+合同编号撤单

7.2 批量撤单的几种策略

  • 全部撤单(一键清空所有未成交委托)
  • 按品种撤单(只撤某只股票的委托)
  • 按策略来源撤单(只撤当前策略的委托)

7.3 委托超时自动撤单重报

  • 设置委托超时逻辑
  • 撤单后以更优价格重新下单的算法实现

第八章:策略的部署、运行与监控(软件操作全流程)

8.1 从模型研究到模型交易

  • 「模型研究」界面:编写、回测、调试
  • 「模型交易」界面:添加实盘/模拟交易、启动/停止
  • 两种添加方式:从回测结果转入 vs 直接新建

8.2 回测功能的使用

  • 回测参数设置:时间区间、初始资金、滑点、手续费
  • 绩效分析报告解读:年化收益、夏普比率、最大回撤、胜率等
  • 回测结果中的买入/卖出信号列表

8.3 实盘运行的注意事项

  • 模拟盘 vs 实盘的区别
  • 投资备注(note)的使用
  • 查看任务列表、委托、成交、持仓、日志输出

8.4 策略运行状态的监控

  • 状态栏信息解读(执行中委托、消息提示)
  • 行情源与服务器连接状态检查
  • 策略停止与重启

第九章:附录 —— 函数与参数速查字典

9.1 opType(操作类型)完整速查表
(23买入、24卖出、27融资买入…… 所有类型对照表)

9.2 prType(报价类型)完整速查表
(3指定价、5最新价、42~48市价单…… 全对照)

9.3 quickTrade(交易模式)速查表
(0走完K线、1立即下单、2立即下单+实时反馈)

9.4 常见错误码与排查方法
(100009、账号错误、资金不足等常见错误及解决方案)

9.5 策略开发常用代码片段

  • 获取当前时间与日期
  • 计算移动平均线
  • 判断交易日与节假日
  • 资金按比例分配下单
  • 多股票轮询交易模板

第十章:常见问题与最佳实践

10.1 新手常犯的10个错误

  • 忘记下载Python库
  • 忘记设置quickTrade=2
  • 证券代码格式错误(市场后缀缺失)
  • 数量单位搞错(股vs张vs手)

10.2 策略开发的最佳实践

  • 模拟盘先行验证
  • 日志输出的合理使用
  • 异常捕获与容错处理
  • 防止过度交易(频率控制)

10.3 进阶学习方向

  • VBA模型与Python模型的混合使用
  • 组合交易(篮子交易)
  • 算法交易与随机量交易
  • 风控设置与合规管理

📌 本大纲对应完整教程内容。 用户可根据需要选择章节按顺序学习,亦可直接跳转至感兴趣的部分。建议初学者从第二章“实战入门”开始,亲自动手编写并运行第一个逆回购策略,建立直观感受后再系统学习各章细节。

本文由 海星量化研究所 作者提供,转载请保留链接和署名!网址:https://qmt.hxquant.com/?id=76

声明

1.本站原创文章,转载需注明文章作者来源。 2.如果文章内容涉及版权问题,请联系我们删除,向本站投稿文章可能会经我们编辑修改。 3.本站对信息准确性或完整性不作保证,亦不对因使用该等信息而引发或可能引发的损失承担任何责任。

搜索
排行榜
关注我们

扫码开通QMT/ptrade