基金轮动效果如何

小散的逆袭123 2021-04-05 20:01

我目前的持仓中,60%左右的仓位是比较稳定的。这部分属于龟兔赛跑组合和小乌龟。剩下的资金属于小兔子组合和一些杂项基金。其中小兔子组合是我这几年一直反复琢磨,还没彻底定性的投资组合。

龟兔赛跑是中场,小乌龟是后场。小兔子组合显然定位是前锋。这个组合到底该用一种什么策略来交易,始终让我很难决定。趋势和轮动,成为了自己始终心心念念的一个梗。为此,做了大量测试工作。

最近一段时间,在聚宽中用python写了一个基金轮动的测试代码。这个其实也是一个量化策略,这个策略是建立一个固定的待选基金池,然后在固定间隔日期M,对基金池中的基金进行前W日动量排序,然后按照动量高低,取排名前N的基金等权市值持有。

以上就是这个基金轮动的基本策略。大家注意,这个策略没有趋势部分,也就是说,这是一个永远满仓的组合。只是定期会对持仓的基金按照动量高低,进行更换。

策略本身不复杂,也很好理解,在excel中可不可以进行测试呢?可以。但是工作量非常大。所以纯手工进行回测基本无法进行,只能进行编程回测。我没有用聚宽的测试框架,而是只用了聚宽的调取基金历史数据的函数,然后用python中的dataframe完全模拟在excel中进行测试的样子。这样做的好处是,不用学聚宽的回测框架,细节自己完全掌控,便于了解具体数据。当然不足之处就是编程比较繁琐,容易出错。我在python中写了200行的代码,总算是弄好一个比较简便的基础测试代码。

下面,我来弄一个基金组合,咱们一起看看,按照这个策略,效果会如何。这次的基金池我使用的是场内指数基金,分别是50ETF300ETF500ETF创业板ETF、中小板ETF、证券ETF医药ETF信息技术ETF、消费ETF。这9只指数基金基本上涵盖了市场上最主流的宽基指数基金和主要行业指数基金。我相信很多朋友自己弄的基金组合,肯定也会有这些基金。

基金池有了,下面就是对策略中的三个参数进行量化。

调仓日期M:30自然日;W日动量:180自然日;持仓基金个数N:6

测试时间段:2017年1月至2021年4月

肯定有人问为啥这三个参数这样设定。好吧,这其实是我个人主观的选择。量化策略回测,其实就是对参数进行测试,看看不同参数情况下,策略的运行效果到底好不好。咱们先按照这个组合进行测试。

上述参数确定后,策略翻译一下就是:每月的月末那天,对这9只基金过去180天的涨跌幅进行排序,然后按照涨幅从最高到最低,取前6只基金持有,而且这6只基金要等权分配资金。

我们先来看看这9只基金在测试时间段的收益率曲线。

Image

消费真是一骑绝尘呀,其他8只基金感觉差距不是那么大。表现最差的是证券ETF和500ETF。有多差呢,这哥俩过去4年的收益率刚过0%。你们想想我之前说的,指数基金长期持有,坑也不小,尤其是行业类指数基金。

好,下面运行代码,按照上面确定的参数进行测试,看看这个策略在测试时间段的收益率曲线如何。

Image

这张图来之不易呀,这是付出了大量精力写代码后才能轻松得出的图。单独看这个曲线似乎缺点什么。是呀,缺少比较嘛。那么和谁比呢?我这里是按照2个基准进行比较的,一个是沪深300指数,一个是这9只基金等权一直持有的组合。那我们把这两个比较基准的收益率曲线也加上去看看。

Image

这张图就看的明白了。9只基金等权持有的全部组合表现最差,沪深300属于中等,轮动策略最好。但是这是从最终结果来看的,从过程看,单独持有沪深300指数似乎是更好的选择。因为我什么策略也不用,就持有沪深300,收益率也不差嘛。全部等权持有组合最差,这个还是挺意外的。毕竟其中有那么牛的消费ETF呀,但是,整体看,始终跑不赢沪深300。我知道很多朋友也在买基金组合,什么基金都买,医药也买,科技也买,消费也买。你以为你在选基金,其实最后买了个寂寞,还不如只买沪深300。这个测试结果告诉你:什么都买一点儿,最后的结果基本和只买沪深300差不多,而且熊市回撤还更大。

上一篇 & 下一篇