一个年化收益30%的指数
https://mp.weixin.qq.com/s/KT4ifrWrMngF0SEZsBZdFA
从2005年底到今天共13年半,这只指数年化收益30%。如果当时投入1万块钱,现在已经变成了34万。
它就是中证主要消费红利指数,由中证指数公司编制,代码H30094。
主要消费红利指数
下图是中证指数官网上的介绍文档。数据的起始日是2005年12月30日,基值是1000点,截止这周四是27878点。
年化收益在27.9%,算上每年2%的现金分红,大概30%。最近5年的年化收益是24.9%。
编制方案
对于A股必须消费行业的所有股票,计算其过去两年的平均税后现金股息率,并由高到低排序,取前30。
当然,有一些硬性条件:
-
过去两年连续现金分红且每年的税后现金股息率均大于 0;
-
过去一年内日均总市值排名在全部 A 股的前 90%;
-
过去一年内日均成交金额排名在全部 A 股的前 90%。
这30只股票不是等权重,权重因子=股息率 / (股价×总股本×自由流通靠档比例)。
可靠性
因为中证指数公司只公布最新的持仓,所以我们无法求得任意时间段的收益率。
目前可计算的时间段有两个,一个是从编制基日(2005年12月31日)开始计算,一个是从5年前(2014年6月6日)开始计算,就是前面列出的27.9%和24.9%。
虽然这两个收益率都非常漂亮,但是仍然有瑕疵,因为这两个起始日之后,紧接着就是一波大牛市。
而我们显然无法做到在建仓后第二年就迎来牛市,所以我们需要进一步的验证。
进一步验证
进一步验证的方法就是计算从2010年1月到2018年12月的收益率。
因为2010年开始A股进入了4年的熊市,而2018年底是一个相对公认的低点。
如果这期间的收益率仍然不错的话,那我就认为这个策略的收益率是有保证的。
我们无法根据中证指数公司公布的数据计算出这段时间的收益率。但,这难不倒一只热爱投资的码农。
回测
中证指数公司公布了指数的编制方案,我们可以据此写代码复制这个指数,回测过去的收益。
其实,代码不难,难的是A股所有股票的历史数据,包括成交价、现金分红等。
好在现在有很多现成的量化平台提供这些数据,我常用的有RiceQuant和WindQuant。现在用WindQuant多一点,因为是Wind旗下的,数据比较全,质量也有保证。
写代码之前,我稍微调整了指数的编制规则,主要是下面两个地方:
1、股票数量由30只改为10只
因为如果购买30只股票,所需的资金会多很多。比如30只股票里有茅台,茅台一手大概要9万块。
2、使用等权重
原来编制指数时,每只股票的权重是不同的,比如最新的持仓中新希望占11.02%,而伊利股份占3.66%。
我们将其调整为等权重。
因为原来有30只股票,第1名和第30名差距比较大,所以等权重不公平。而现在只有10只股票,第1名和第10名的差距就小多了,可以接受等权重。
这里也有对所需资金的考虑,假如茅台的权重是2%,按照9万一手,那所需资金最少是 9万 / 2% = 450万。
而如果是等权重,每只股票占10%,那只要9万 / 10% = 90万。
因为我们调整了编制方案,所以需要先验证下与原方案收益率的偏差。
1、2005年12月开始至今
2、从2014年6月至今
因为策略是每年只在12月份交易一次,所以为了回测从2014年6月至2019年6月的收益,我选择的开始日期是2013年12月1日,年化收益率如上图是20.91%。
为了方便对比,我们根据回测净值曲线手动计算从2014年6月开始的收益。2014年6月6日的净值是0.9195,2019年6月6日的净值是2.7768,所以实际年化收益率是(2.7768 / 0.9195) ^ (1 / 5) - 1= 0.246,即24.6%
因为每年还有大概2%的现金分红,所以在指数年化收益的基础上加2%得到全收益(分红的现金再投入)。而我的策略不用加,我在代码中已经处理过了,汇总入下
从表格中可发现,虽然两种方案有差别,但是属于同一个量级,偏差在可接受范围内。
所以,我们的交易策略可以较好的跟踪原指数。
最后就是计算我们想要的从2010年1月到2018年12月的收益率。这个简单,修改下日期重新跑下代码即可。
年化收益率是12.17%,完美。
我们几乎选择了最差的买入点和最差的卖出点,仍然有12.17%的年化收益率。而同期沪深300指数的收益是负的,相当于我们每年跑赢市场13.12%(即上图中的Alpha)。
风险
收益说完了,说说风险。
首先是波动大,两次大的净值回撤为-55%和-38%,分别发生在2008年和2015年,两次大牛市之后的大跌。
因为永远是满仓,所以这种回撤无法避免,这可能也解释了为什么市场上没有基金跟踪这个指数。一只都没有,否则我也不用自己构建投资组合了。
对于基金来说,当净值大幅回撤时,客户会赎回,使得基金经理不得不在低位卖出股票。
但对于散户来说,就没这问题,你跌好了,我删掉交易软件躺倒装死。或者你越跌,我每个月发工资买的越多。本来10块钱一股,现在降到5块钱了,同样的资金可以买更多的股票。
所以我一直觉得,散户炒股比基金经理容易多了。对于我来说,波动不是风险,波动是机会。
其次是时间偏短。虽然从2005年12月起经历两轮牛熊,已经比较有说服力了,但是相比于一个人的投资生涯,13年的时间肯定不能算长。
当然,我也不想再验证个20年然后再投。所以我选了个折中方案,只投入20%的资金在这个策略上。
总结
好的坏的上面写代码摆数字都讲了,最后从生活常识上来看,这个策略到底凭啥能长期跑赢沪深300,平均每年高10个百分点。
这个步骤一定得有,做量化分析的人经常会陷入数字陷阱,从一堆本没有什么规律的数字中挖掘出一个"规律"。
这个"规律"要么是错误的,要么是只在某一特定时期内有效。从专业上来说这叫数据挖掘偏差,或者过拟合。这两个名词我主要是用来装逼的,没听过也没关系。
这个指数的持仓股都是必须消费行业的,这种行业不受经济周期的影响,也不受毛衣战的影响。
不管经济好坏,老百姓都得吃饭,大部分人的餐桌上都得有肉,每天都得喝牛奶,逢年过节亲戚朋友聚会都得有酒,不管是白酒还是啤酒。
所以,对于投资者来说,这个行业天生就是好行业,天生比其他行业容易赚钱。
当然,另外也有几个行业不错,比如医药、科技。我应该可以将这个策略简单的复制到这两个行业,回头测试下。