QMT软件自学教程——目录大纲
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.本站对信息准确性或完整性不作保证,亦不对因使用该等信息而引发或可能引发的损失承担任何责任。







