前言
我们的股票量化系统QTYX在实战中不断迭代升级!!!
QTYX中包含了基于ETF的全自动量化交易框架。这套框架包含如下模块:
实时扫描ETF分钟数据
根据择时策略产生交易信号
根据止盈止损值产生交易信号
通过仓位管理配置分配下单数量
连接QMT接口自动下单
打通回测框架,实盘前可以回测择时策略,评估策略的效果
本次QTYX升级到2.9.5,基于ETF量化框架扩展为股票量化框架,这样一来,股票和ETF都可以在框架中使用!
如何使用
接下来,分享下如何使用QTYX新增的功能吧!
我们点击“策略导航—>实盘监测—>股票池监控”。如果选择“ETF池T+0”就是启用ETF框架。
然后会出现一个操作对话框,如下所示:
接下来,我们介绍下界面上的功能。这里的功能同时适用于ETF和股票框架。
开始日期&结束日期:根据时间范围返回对应的ETF/股票分钟数据。实盘时结束时间保持最新日期。
股票周期:支持1分钟、5分钟、15分钟、30分钟、60分钟级别扫描ETF/股票择时信号
发送邮件使能:ETF/股票出现买卖信号后邮件通知,记得json文件填写邮箱信息
止盈止损使能:ETF/股票触发止盈止损条件时自动卖出,记得json文件填写参数
自动交易使能:ETF/股票出现买卖信号后直接下单,记得json文件填写参数
“设置买入滑点”:在当前价格的基础上增加滑点,避免市场波动而出现买不进的情况。设置为0时,现价直接买入。
“设置买入股数”:可以选择按总资金比例分配买入和按股数买入,记得json文件填写参数
“设置卖出滑点”:在当前价格的基础上增加滑点,避免市场波动而出现卖不出的情况。设置为0时,现价直接卖出。
“设置卖出股数”:实盘时卖出该股的股数,目前出现信号全部卖出。
“择时策略”:选择当前运行的策略,目前预置了“MACD金叉死叉”、“布林带突破”等4个策略
点击“开始扫描”后,程序就开始监测ETF/股票池中是否有出现交易信号了。结束时需要先点击“停止扫描”,然后再退出。
可以从对话框中看到,159509、513300监测到卖出信号,但是在账户中未持有,未触发自动卖出。
当触发止损信号时,如果159509、513300这些ETF在账户中持有,QTYX自动卖出。
当出现止盈止损交易信号时,系统会链接上QMT客户端(提前登录QMT客户端,并且在configfiles/trade_para.json文件中填写下单参数),自动卖出ETF。
建议提前在QTYX“交易”界面中测试下QMT下单是否成功!
一顿卖出后,QTYX监测到账户中已经清仓了这些ETF!159509、513300这些ETF未在账户中持有,不会监测止盈止损信号。
参数配置
关于QMT自动下单相关的配置,主要是客户端安装路径和账号。打开configfiles/trade_para.json文件手动更改。配置完成后,可以在“交易”界面上测试下单接口是否配置成功。
我们把miniQMT的驱动移植到了QTYX/TradeDrv目录下,这样就可以和QMT客户端进行互动。整体的实现原理在miniqmt_if.py文件中,大家可以参看一下。
ETF/股票池,已经搬运至ConfigFiles/trade_para.json文件中,请按格式填写,“percent”的值表示买入资金占总资金的比例,“amount”的值表示买入的股数。
关于ETF/股票止盈止损参数,我们在ConfigFiles/trade_para.json文件中按格式填写,此处我们填写止盈是4%,止损是3%,大家可以根据自己的风险偏好填写。
关于策略,我们在StrategyGath\SignalGath.py文件中预置了多个策略,大家可以在这个文件中使用Python语言添加和修改。后续我们也会不断往这个接口中添加和优化策略,比如指数通行红绿灯策略等等。
策略的关键参数,我们在ConfigFiles/trade_para.json文件中按格式填写,比如“MACD金叉死叉”的周期和“布林带突破”的上下轨倍数等。
如何回测
我们点击“回测参数”标签页,填入ETF/股票代码(注意格式xxxxxx.SH/SZ),选择策略,然后点击“开始回测”。
接下来填写回测参数,比如回测日期、数据周期、初始资金、滑点、手续费等等。
填写完成后,点击“确认”就会出现可视化回测结果。
点击“交易日志”可以查看具体的交易明细。
回测的策略与实盘框架同源,是在StrategyGath\SignalGath.py文件中预置的策略。
标记策略信号
在“量化”主页面中,我们看到左边有“策略导航”树形列表,“衍生指标”中列出了目前添加的择时策略。
衍生指标可以把择时策略的交易信号在K线图上标注出来,这样一来,同一个策略可以分别在实盘交易框架、回测评估框架、信号图形化框架中使用!
比如点击“布林带突破”策略作为演示,然后会跳出对话框,选择股票数据的参数,比如起始日期、周期、复权选项等等。
点击确认后,会出现图形化界面,界面上会标注出股票数据中全部的买卖信号,比如突破上轨/跌破下轨,出现的日期等,效果图如下所示,
可以清楚看到,每当股价跌破下轨时分仓买入,突破上轨时分仓卖出,这个套利思路非常稳!
比如点击“均线交叉”策略作为演示,如下所示:
关于策略,我们在StrategyGath\SignalGath.py文件中预置了多个策略,大家可以在这个文件中使用Python语言添加和修改。后续我们也会不断往这个接口中添加和优化策略,比如指数通行红绿灯策略等等。
策略的关键参数,我们在ConfigFiles/trade_para.json文件中按格式填写,比如“MACD金叉死叉”的周期和“布林带突破”的上下轨倍数等。
刚才提到同一个策略是可以分别用在实盘交易框架、回测评估框架、信号图形化框架中使用!
比如回测的效果图:
比如实盘交易的效果图:
本套量化框架中涉及的自动交易接口是QMT。关于如何使用QMT,可以查看以下这篇使用攻略!
如何QMT开户可以看这篇介绍:量化交易自动下单方案—对接QMT已出炉
说明
完整的源码上传到知识星球《玩转股票量化交易》中,想要加入知识星球《玩转股票量化交易》的小伙伴记得先微信call我获取福利!
知识星球介绍点击:知识星球《玩转股票量化交易》精华内容概览