QMT策略编写
想要在QMT上面写一个自己的策略?这一篇就详细带你看看怎么开始

策略编写器使用
在模型编辑界面,右侧可设置策略默认的周期与品种。
编写 Python 策略时,首行必须声明编码格式,例如 # coding=gbk。
随后可引入第三方库,但所用库须已纳入券商管理端的白名单,否则策略无法运行。
策略必须实现 init 与 handle_bar 两个函数:
init 仅在策略启动时执行一次,用于通过 ContextInfo 入参完成对象初始化、设定股票池等操作;
handle_bar 则负责处理每根 K 线的逻辑。


Handlebar 函数会沿历史 K 线逐根触发,系统仅保留“末 tick”带来的改动。
盘中阶段,每次行情推送都会进入 handlebar:
若当前 tick 为本 K 线最后一笔,其产生的变量变化、交易指令才会被系统记录,并在下一根 K 线的首个 tick 发出;
其余中间 tick 仅供调试打印,任何修改与信号均不会落盘,也不会下单。
模型代码编写完成后,还需补充填写模型基本信息与回测参数。
基本字段详细说明

| 字段 |
描述 |
| 名称 |
填写模型名称 |
| 快捷码 |
默认根据模型名称自动生成拼音首字母拼写,如需自定义可以手进行更改,用于键盘精灵快速引用模型 |
| 说明 |
简单的说明模型功能 |
| 分类 |
保存当前模型到某个分类下面 |
| 位置 |
模型回测或运行时的位置,有副图、主图叠加、主图三种显示位置 |
| 默认周期 |
点击模型回测或运行时的默认主图周期,可手动切换 |
| 默认品种 |
点击模型回测或运行时的默认主图品种,可手动切换 |
| 复权方式 |
提供不复权、前复权、后复权、等比前复权、等比后复权 5 种复权方式 |
| 快速计算 |
限制计算范围,默认为 0 时模型运行会从模型设置的默认品种(主图)的第一根 K 线开始计算,设置为 n 则从当前 K 线再往前 n 个 K 线开始计算 |
| 刷新间隔 |
用来设置策略运行的时间间隔。设置了刷新间隔,即每隔一段时间策略按照当前行情运行一次 |
| 加密公式 |
加密后的公式只有输入密码才可以查看源代码 |
| 凭密码导出公式 |
此项只有在开启 “加密公式” 后才能生效,生效后只能使用密码导出到本地 |
| 用法注释 |
简短的说明模型使用的一些注意项,可不填 |
回测参数详细说明

| 字段 |
描述 |
| 开始时间 |
|
| 结束时间 |
设置模型回测时间区间 |
| 基准 |
设置模型收益的参考基准 |
| 初始资金 |
设置模型回测的初始资金 |
| 保证金比例 |
设置期货的保证金比例 |
| 滑点 |
设置回测撮合时的滑点,模拟真实交易的冲击成本 |
| 手续费类型 |
支持按成交额比例或者固定值计算手续费 |
| 买入印花税 |
设置买入印花税比例 |
| 卖出印花税 |
设置卖出印花税比例 |
| 最低佣金 |
设置单笔交易的最低佣金数额 |
| 买入佣金 |
设置买入标的时的佣金比例 |
| 平昨佣金 |
设置股票、期货平昨佣金比例 |
| 平今佣金 |
设置期货平今佣金比例 |
| 最大成交比例 |
控制回测中最大成交量不超过同期成交量*最大成交比例。可以点击此参数旁边的'?'按钮了解详情 |
补充数据
正式新建模型前,务必先通过客户端“数据管理”模块,把策略要用到的市场、品种及对应周期的历史数据补齐并勾选。

策略运行
策略写完先点“编译”,仅作保存,不做语法及库引用校验;随后点“运行”即可查看实际表现,出错信息会在日志区自动弹出。

【投资有风险,入市需谨慎】
测试账号与量化资料找我免费领取哦!

|