前言
一个完整的量化交易系统离不开人机交互功能的应用,特别是在回测阶段,我们需要不断更改参数因子、更换交易策略以应对当前的市场。因此创建完整的、功能键全的GUI用户界面至关重要。
市面上也出现了很多相关的平台,比如米筐Ricequant,聚宽Joinquant,掘金Myquant,优矿Uqer,镭矿Raquant,果仁网,Factors, 宽帮Bigquant, 国泰安,同花顺量化,WIND量化,天软等等。
不过这些通用的回测平台并不能满足个性化的风格需求。于是我们亲自动手搭建了一个本地的量化回测平台。
往期重点回顾:搭建系统|本地量化工具集成开源量化框架backtrader操作指南!
多股轮动策略
往期的策略都是针对单只股票的,如果是多只股票组合操作该怎么实现呢?本期就来介绍下如何在本地平台上实现“多股轮动策略”。
首先使用“选股工具”初步筛选出符合条件的“一类股票池”。
设定的条件为:
剔除ST个股
流通股本小于100亿,大于50
市盈率小于80
每股净资产大于3
最终初步选出了34只股票作为我们的“一类股票池”。分别是600705.SH、600578.SH、000425.SZ、002493.SZ、600208.SH、601333.SH、601872.SH、600887.SH、600339.SH、601992.SH、600297.SH、002415.SZ、600027.SH、000959.SZ、600886.SH、000898.SZ、000825.SZ、000157.SZ、601633.SH、600031.SH、601111.SH、002736.SZ、600690.SH、601898.SH、600958.SH、601939.SH、001979.SZ、002024.S、601009.SH、600999.SH、601211.SH、601688.SH、000333.SZ、002142.SZ
这个选股工具还有一个功能就是双击股票代码后可以直接链接到同花顺的F10页面,查看该股的基本面信息。这一步也非常重要,它是用来避免“踩雷”的,当然懂基本的财务知识是很必要的。
有了这34只容量的“一类股票池”之后,我们就开始制定策略了。
策略分为以下几步:
每隔30日计算34只股票过去30日的收益率
对收益率进行降序排列,选择前2只股票加入“二类股票池”。(传统的量化是购买一揽子的股票组合,作为散户股票数量不能太多,一般5只股票以内足矣)
对“二类股票池”的个股逐日计算20均线
买入条件是当个股股价位于20均线以上且没有持仓时买入,买入仓位为1/2
卖出条件是个股已持仓但不在“二类股票池”中则卖出;当股价位于20均线以下则卖出。
接下来切换到回测页面上。使用回测工具之前要只需做这几件事:
更新“一类股票池”至“股票列表清单”中
编写回测策略
设置回测参数,如初始资金、手续费等
如下所示:
点击回测后开始执行。执行结果如下所示:
分析下其中回测的部分日志信息:
2019-10-21更新二类股票池,更新为sh.601872;sz.002142
2019-10-25执行买入:股票名称:sh.601872;当前价格:5.65
2019-10-28买入订单完成!价格:5.52;成本:3864.00;手续费:7.73
2019-11-15执行卖出:股票名称:sh.601872;当前价格:5.90
2019-11-18卖出订单完成!价格:5.86成本:3864.00手续费8.20
需要说明的是,由于当天可能买入多个股票、卖出多个股票、买入的同时又卖出股票,可视化部分的买卖点是当天综合后的收盘价(这部分的计算方法还需要再优化一下)。
另外,2020-09-01(今天)执行卖出:股票名称:sh.601633;当前价格:15.35,但订单需要在第二天成交(明天),因此最终资金此时表示的是现金+市值。
最后
本次代码的更改是在往期代码的基础上迭代而成(已上传知识星球)。大家可以留意版本号,利用Pycharm的代码比较功能查看更改的地方(知识星球3-6 如何用Pycharm对文件内容比较)。
加入知识星球获取完整代码
点击【阅读原文】查看目录
更多量化交易内容扫码加入星球!—————————————————元宵大师的量化交易书籍开售!!京东、当当、天猫有售!!加我微信了解详情
微信关注:‘元宵大师带你用Python量化交易’