前言
我们的股票量化系统QTYX在实战中不断迭代升级!!!
ETF兼具股票和指数基金的特色,既能获得股票一样的超额收益,也具备指数稳定的特点。买ETF相当于购买了一篮子股票,能分散投资并降低投资风险。另外,ETF还能买到海外市场的指数,有些ETF还能够T+0交易,非常灵活!
于是,我们搭建了针对ETF的实盘交易框架,可以实时扫描ETF的买卖信号,当出现交易信号时,还可以通过QMT自动下单!
量化系统QTYX使用攻略|“自动交易”篇——ETF为例,搭建全自动交易系统框架(更新v2.8.7)
有了这个框架,我们在它的基础上持续迭代升级,QTYX-2.9.0版本上我们增加止盈止损实时监测功能!
2.9.1版本我们增加了可选策略池功能,在策略池中预置了现成策略-MACD金叉死叉、布林带突破、N日突破、ATR止盈止损!
我们开发的策略,在实盘前要经过回测,来评估策略的效果,于是2.9.1版本我们打通了实盘框架和回测框架,优化策略后直接回测看效果!
如何回测
接下来,分享下如何使用QTYX新增的功能吧!
我们点击“回测参数”标签页,填入ETF代码(注意格式xxxxxx.SH/SZ),选择策略,然后点击“开始回测”。
接下来填写回测参数,比如回测日期、数据周期、初始资金、滑点、手续费等等。
填写完成后,点击“确认”就会出现可视化回测结果。
点击“交易日志”可以查看具体的交易明细。
关于策略,我们在StrategyGath\SignalGath.py文件中预置了多个策略,大家可以在这个文件中使用Python语言添加和修改。后续我们也会不断往这个接口中添加和优化策略,比如指数通行红绿灯策略等等。
策略的关键参数,我们在ConfigFiles/trade_para.json文件中按格式填写,比如“MACD金叉死叉”的周期和“布林带突破”的上下轨倍数等。
这部分设计延续了书籍《Python股票量化交易从入门到实践》中介绍的内容,可以结合书本进行学习。
如何实盘
我们点击“策略导航—>实盘监测—>ETF池T+0”。
然后会出现一个操作对话框,如下所示:
接下来,我们介绍下界面上的功能。
开始日期&结束日期:根据时间范围返回对应的ETF分钟数据。实盘时忽略。
股票周期:支持1分钟、5分钟、15分钟、30分钟、60分钟级别扫描ETF择时信号
发送邮件使能:ETF出现买卖信号后邮件通知
止盈止损使能:ETF触发止盈止损条件时自动卖出
自动交易使能:ETF出现买卖信号后直接下单
“设置买入滑点”:在当前价格的基础上增加滑点,避免市场波动而出现买不进的情况。设置为0时,现价直接买入。
“设置买入股数”:实盘时买入该股的股数。
“设置卖出滑点”:在当前价格的基础上增加滑点,避免市场波动而出现卖不出的情况。设置为0时,现价直接卖出。
“设置卖出股数”:实盘时卖出该股的股数。
择时策略(新增):选择当前运行的策略,目前预置了“MACD金叉死叉”、“布林带突破”等4个策略
关于QMT自动下单相关的配置,主要是客户端安装路径和账号。打开configfiles/trade_para.json文件手动更改。配置完成后,可以在“交易”界面上测试下单接口是否配置成功。
关于ETF池,我们在ConfigFiles/stock_self_pool.json文件中按格式填写,此处我们填写的是支持T+0的ETF品种。
关于ETF止盈止损参数,我们在ConfigFiles/trade_para.json文件中按格式填写,此处我们填写止盈是4%,止损是3%,大家可以根据自己的风险偏好填写。
点击“开始扫描”后,程序就开始监测ETF池中是否有出现交易信号了。结束时需要先点击“停止扫描”,然后再退出。
可以从对话框中看到,159509、513300监测到卖出信号,但是在账户中未持有,未触发自动卖出。
当触发止损信号时,如果159509、513300这些ETF在账户中持有,QTYX自动卖出。
当出现止盈止损交易信号时,系统会链接上QMT客户端(提前登录QMT客户端,并且在configfiles/trade_para.json文件中填写下单参数),自动卖出ETF。建议提前在QTYX“交易”界面中测试下QMT下单是否成功!
一顿卖出后,QTYX监测到账户中已经清仓了这些ETF!159509、513300这些ETF未在账户中持有,不会监测止盈止损信号。
接下来,请把厉害的策略代码往里面加!!!
QMT接口
QMT(Quantitative Market Trading)是迅投公司开发的量化交易软件,专供券商采购,现在个人投资者也可申请使用。
MiniQMT 是 QMT 的简化版,执行完安装过程这两个就都有了。
MiniQMT的好处是我们可以用自己的量化系统框架,直接向券商发送下单信息。
MiniQMT 提供了一个 XtQuant 的 Python 库,可以 import 它并调用它的方法下单。
XtQuant 目前不能通过 pip 安装,可以下载后放在Python第三方库目录下。
MiniQMT 的下单信息流向如下。
在 Python 实盘代码中 import xtquant,通过 xtquant 库提供的方法下单
MiniQMT 的桌面应用接收到 xtquant 库发出的下单请求
MiniQMT 将下单信息发送给券商的交易服务器
如何获取安装包和开户可以看这篇介绍:量化交易自动下单方案—对接QMT已出炉
说明
完整的源码上传到知识星球《玩转股票量化交易》中,想要加入知识星球《玩转股票量化交易》的小伙伴记得先微信call我获取福利!
知识星球介绍点击:知识星球《玩转股票量化交易》精华内容概览