用指数战胜指数,ETF二八轮动对冲模型
最近在忙着做视频,总算是有时间来研究研究策略了。
二八轮动,早已不是新鲜的策略了。聚宽有关于二八轮动的帖子,很经典,附上链接:斗牛蛋卷二八轮动原版策略实现。
“二八轮动”就是根据A股市场中大盘股和小盘股走势不同作为信号判断的。(所谓二,就是指数量占20%的大盘股、权重股;所谓的八,就是数量占80%左右的中小盘股,非权重股;其轮动就是指在两者之间不断切换,轮流持有。)
大盘股和小盘股的区分就是根据公司的流通股本的多少,大盘股通常指流通股本大于1亿的上市公司股票,而小盘股则与大盘股相对,通常指流通股本不足3000万的股票。沪深300通常可以近似表示大盘股的整体走势,中证500指数近似表示小盘股的整体走势。
好了,其它的不多说了,二八轮动有不明白的,直接访问上面的链接,也可以克隆教程里的策略代码。接下来,我想说一下我对于二八轮动的想法。
先来看看二八轮动原代码的一段回测结果:
可以看出,二八轮动赚的是牛市的钱。在18年的时候,处于一种失控的状态。
这里我提出两个问题:
- 如何避免类似于18年的失控下滑?
- 如何让二八获得风险更低、收益更高的结果?
在解决这两个问题之前,先来说一下如何对二八策略进行代码分析。
一、计算指数动量
如上图,首先要做的是计算沪深300与上证500的市值与市盈率,还可以将其可视化后进行直观观察。
大小盘的轮动意义在于,它们的动量大小是不一样的,如下图,市值更小的上证500在牛市的时候上涨空间更大,但在熊市的时候下跌也更狠。
二、计算大小盘指数的动量
如何计算动量,我这里就不啰嗦了,不懂的看聚宽教程去。
代码如下:
结果可视化如下:
如果想跟踪指数做交易,一般会交易对应的ETF,下面是沪深300与上证500对就的ETF趋势。
三、验证ETF与指数的跟踪误差值
如果交易的ETF品种无法很好的跟踪对应指数,我相信,亏损是必然结果!因此我们有必要验证ETF与对应指数间的相关程度。
计算两个数据之间的相关度,可使用corrcoef函数,如下:
以沪深300指数为例,我们从聚宽ETF数据集里,找到与其最相关的一个ETF出来,如下:
通过上图可以看出,结果正好是510300,即300ETF。
对比一下趋势看看:
它们的相关度很高。不过,有趣的是,上证500与之相关程序最高的并不是500ETF:
以上的计算,可以辅助我们解决上面提出的两个问题。
四、加入国债指数
针对于第一个问题,我的第一个想法就是,在市场下行的时候,买入国债避险,一来减少亏损,二来减少闲置资金。
由于聚宽无法交易国债,这里选择了511010-国债ETF。
从上图来看,国债指数是一个很好的避险品种。
加入国债指数后,在大小盘指数都出现负动量的时候,买入国债指数。完成策略,回测后的结果如下:
结果显示,整体收益有所提升,但18年的情况更加不妙了。于是我想,应该可以增加动量值,减少频繁交易。接下来便将动量值由0增加到5%,回测结果如下:
回撤值有所减小,但牺牲的是绝对收益率。
五、使用负相关标的做“对冲”
如果想提高收益,我的想法是在市场上行的时候做多,在下行的时候做空。可惜A股不支持做空。那是否存在这样一个标的,与大盘趋势相反,这样即可完成当大盘下跌时,买入该标的,迎来一定的上涨空间?
仍旧从聚宽的ETF集里去寻找:
通过计算,发现标的150051与大盘存在高达百分之80%的负相关程度。于是,把国债指数替换成该标的,即在大小盘指数都出现负动量时,全部资金买入该标的。
回测结果如下:
从上图看出,整体的年化收益达到28.18%,在18年的时候,由于对冲交易,几乎平稳流过。
历史总归是历史,未来大盘如何走,负相关品种是否有效,这都不好说,只有提升自己的能力,才是真格。
注:本研究如果对您有用,希望点个赞或转发一下,都是对大树的鼓励。研究中有任何问题,欢迎各位前来讨论。