分享

三标的ETF轮动策略代码分享 节前给大家分享了《宽基ETF轮动策略量化代码实现》(大家可以从聚宽平台直接克隆这个策略进行回测和研究,聚宽链接→点击这里...

 片儿川之歌 2022-10-28 发布于浙江

节前给大家分享了宽基ETF轮动策略量化代码实现大家可以从聚宽平台直接克隆这个策略进行回测和研究聚宽链接→点击这里然后@蚂蚁菜园 提出是不是可以做一个同时持有三个基金或者股票的策略我想了一下这也算是原版轮动策略的一个进化版本可以验证一下分散持仓的情况下会是什么结果所以就写了一个版本这里给大家初步汇报一下

策略思想
针对多只指数基金以等权重方式持有符合买入条件的基金最高同时持有3只基金没有基金符合要求时空仓

策略理论依据
轮动策略的理论基础是动量效应也就是处于上涨状态的基金会在一定时间内保持上涨趋势

基金组合
创业板沪深300中证500红利ETF深红利上证180和上证50使用指数或者基金价格计算交易信号买卖指数跟踪的ETF也可以调整为直接以基金价格计算交易信号

买入条件两个条件全部满足才买入
1近13个交易日涨幅排名前三设置涨幅阈值为0.1%选择最强势的基金
2当前价大于13日均线主要用于过滤假突破信号

卖出条件三个条件满足一个就卖出
1近13个交易日涨幅排名未入前三先剔除不符合买入条件的基金再排序
2近13个交易日涨幅不足0.1%
3当前价小于近13个交易日均线

回测结果

回测时间2014.1.1~2019.9.6
针对基金组合为创业板沪深300中证500红利ETF深红利上证180和上证50原版轮动策略的回测结果如下

下图是同时持有多只基金的回测结果

我们能够看到的最明显变化就是最大回撤有了明显的降低阿尔法和夏普比率都有明显提升现在我们把两个策略的收益曲线放在一起对比一下会更直观其实主要的区别就体现在灰色区域因为改进后的轮动策略收益回撤幅度更小每一小格对应20%的收益点差所以总体收益的差距也基本与之相符

这个现象说明了一个问题就是因为持仓更加分散趋势跟踪失灵导致的收益回撤风险也因此分散假设满仓持有单只基金造成了30个百分点的回撤那么在持有三只基金的情况下如果另外两只基金没有出现跟踪失灵那么这只基金导致的实际回撤就只有10个百分点当然凡事皆有两面性也有可能某一天持有单只基金没有发生回撤同时持有三只基金发生回撤的情况大家回头可以克隆我的代码自行验证

回测时间2016.3.4~2019.1.4

这是趋势跟踪最困难的一段行情震荡行情让趋势跟踪策略频繁失灵长期落后沪深300指数的基准收益而且有很长的时间处于负收益状态这对人性是极大的考验很容易导致策略执行半途而废

虽然从收益看三标的轮动策略也没有高多少但是心理舒适度高了不少虽然也是长期跑输指数基准收益但是负收益的幅度和持续时间都明显减少

关于策略的一些说明

1因为这个代码是在基础版本的轮动策略上演变而来所以关于代码的一些基本情况我不再进行解释如果对基本使用方法及套路不明白请参阅之前的文章
分享两个简单的基金定投策略代码
宽基ETF轮动策略量化代码实现

2因为最高可同时持有3只基金那么我们的基金池就必须进行扩容扩容的思路对策略的效果影响也是非常大的大家可以根据自己的投资风格灵活选择并通过回测进行验证这里有一点需要说明因为我们同时持仓的基金最大为3只策略逻辑发生了很大的变化各个基金之间的低相关性要求就可以放宽例如基金池中同时有创业板和创业板50两只基金这也是没有问题的这种操作可以理解为刻意让创业板相关指数具有更高的权重

3交易信号的计算依据原版策略是以基金跟踪的指数行情作为依据这个可以灵活调整为直接以基金价格作为计算依据后面这种处理方式会带来一个非常便捷的好处就是可以不用考虑基金的成立时间假设我们回测的时间是2014.1.1到2019.9.6但是我们的基金池中有一只2017年才成立的基金回测过程中无法取得基金价格那么程序会把这只基金的涨幅和均线偏差都设置为-100也就是不会执行买入操作但是回测到基金成立之后的时间就可以正常计算交易信号了
代码的第117行
security = row[1] # row[0]以指数计算交易信号row[1]以基金计算交易信号

3同时持有标的变多了那么调仓的逻辑也变得非常复杂例如之前持仓的基金是1或者2只现在要变成2只或者3只那么就需要卖出一定份额然后买入新增加的基金如果之前持仓的基金是2只或者3只现在交易信号要求我们只保留一只那么卖掉两只基金收回的资金是不是要全部分配给当前持有的基金呢这是一个值得考虑的问题经过初步测试之后我决定采用只减仓不增仓的处理方式因为回测结果表明这样更加有利我猜测这种情况下仅剩的持仓基金有很大概率处于趋势末端从1/3加到全仓风险大于收益

4这个策略能否用于股票理论上没有问题参考第3条说明场内ETF基金和股票都可以通过代码来进行计算和交易所以策略可以通用

5这个策略目前不包含任何硬止损措施大家可以自行添加

6具体的源代码大家可以通过左侧链接直达→聚宽代码分享链接登录聚宽账号之后可以直接克隆使用非常方便

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多