这是邢不行第 111 期量化小讲堂的分享
作者 | 邢不行、密斯锌硒
前言:
巴蛇吞象,扬州跨鹤。人性之贪婪,逝者如此,来者亦然。
王朝兴衰,人生起落。周期之更替,顺之则昌,逆之则亡。
金融市场变化万千,唯独人性与周期,始终如一。
智者善以不变应万变,量化策略亦如此。从不变的人性和周期入手构建策略,就能经得起市场考验。
本文就从周期角度介绍一个简单有效、拓展性强的量化策略。
01
A股周期
1、小市值兴衰
2021到2023年,是小市值股票最风光无限的几年。
小市值策略净值不断创新高,而代表大盘的上证50指数则连跌三年。
但好景不长,2024年春节前Wind微盘股指数从1月初的29.2W急跌至15.6W,一个月内回撤高达46%。
反观同期上证50指数表现优异,不仅没跌还上涨了2.21%,帮持有人规避了大量风险。
2、大市值周期
但其实早在2017年和2020年,就出现过类似大市值股票涨,小市值股票跌的情况。
比如2020年被基金抱团的大盘股猛涨,同期小盘股却跌跌不休。
2021年又两级反转,抱团股集体下跌,长期萎靡的小市值股票反而表现突出。
其实这也说明了市场没有永远的优和差,有的只是不断的周期往复,看看几百年历史的美股市场就知道了。
02
漂亮50惨案
1、“漂亮50行情”
从美股百年的历史来看,小市值股票一直是涨得更多的,在学术界也有理论解释。
但市场风格总会轮动。在1960年末到1970年初的十年间,整个美国股市只有市值最大的50只股票在上涨,历史上称为“漂亮50”行情。
当时大家都在抱团买入大市值的蓝筹股,比如:可口可乐、迪士尼、麦当劳、运通等。这和A股当前的状况很像,只不过美国人买的是可乐,我们换成了茅台。
2、“漂亮50”惨案
“漂亮50”会一直独领风骚吗?世事无常,在1972年至1974年间,这些大型蓝筹股开始集体下跌。
其中迪士尼跌幅高达80%,跌幅最小的麦当劳也有67%。而同期标普500只跌了37%。
像不像你当年买的某安集团?
3、股票周期
所以大家千万不要觉得,现在表现好的股票和策略未来只涨不跌。
像小市值策略虽然过去十多年不断上涨,但也会回调,且一但回调就异常猛烈。
这一切其实都是周期的不断重复,涨久必跌,跌久必涨。
作为投资者,我们不能一根筋只买大市值或小市值,更好的方法是学会如何在它们之间轮动。
不论周期如何波动,只要我们一直在风口潮头就行。
本文我们就尝试来构建一个在大小盘之间轮动的量化策略。
03
大小盘轮动
为了方便理解,我们用沪深300指数来代替大市值股票,创业板指数来代替小市值股票。
1、市场规律
当你不断在股市中交易,其实会自觉或不自觉总结出一些炒股规律。
比如我自己就注意到,市场走势存在延续性。
比如在2010年9月28日,沪深300指数前一个月的涨幅高于创业板指数,次日表现依旧更优。
再看2010年11月17/18/19日,创业板指数前一个月表现都要由于沪深300指数。
往后一天创业板指数的涨幅同样也高于沪深300指数。
2、规律-策略
通过上述案例我们发现,过去一段时间表现好的指数在之后大概率会持续向好。
当然这只是我们观察到的现象,不一定普适。但不妨碍我们尝试基于此构建一个量化策略。
其实很多量化策略就来自这些实盘经验。把这些经验数量化、规则化形成一套严谨的买卖逻辑,就能构建一个完整的量化策略。
04
大小盘轮动策略
1、策略构建
我们默认使用大盘指数来代表大市值股票,小盘指数代表小市值股票。
每天收盘后计算出所有指数前20日涨跌幅。
选取涨幅最大的指数,在接下来的一天持有它,如此循环往复。
2、举例说明
比如2010年9月15日收盘后,我们统计了所有指数前20日的涨跌幅如图所示:
比较得知上证小盘指数上涨最多,就在次日开盘买入上证小盘指数ETF。
如果未来几日上证小盘指数过去20日涨跌幅都是最大的,那这几天就会持续持有。
所以虽然这个策略日频发出信号,但换仓并不频繁。
策略原理也很简单,便于实操,甚至可以手工交易。
3、数据&代码
那这个策略能赚钱吗?
我们需要借助全部指数历史数据并编写相应的Python代码进行验证。
如果你需要的话,可以在评论区留言,都是可以分享给你的。
4、策略结果
代码运行结果如图所示:
代表策略的橙色曲线从初始的1元涨到了10.64元,年化收益19.02%,远远跑赢了所有指数。
但凡大A有指数长这样,大家也真的会“相信国运,定投大A”了。
作为实际交易的策略,它的最大回撤高达51%,这虽然是由策略永远满仓持有导致的,但也意味着我们需要尝试优化它。
下文我们就来讲解策略优化的思路及最终结果。
05
轮动策略优化
上述策略的问题在于50%的最大回撤会影响实盘的顺利执行。
如果策略在第一年就回撤50%,按22%的年化收益也得在4年后回本。
1、降低回撤
我们自然想去降低回撤。先观察原策略最大回撤的开始/结束时间:2015年6月 - 2016年6月。
此时正值2015年股灾,市场整体处于极端熊市。
比如2015年6月25日,大盘指数和小盘指数前20日涨跌幅均为负,后续几日表现同样不佳。
照原始策略去实盘,之后5天会亏损12.7%。
不难发现,市场整体下跌时,策略仍在大小盘间选择跌幅小的买入。
也就是即使身处熊市,我们依旧在不断买入。
正确的做法应该是在大盘和小盘指数都下跌时就停止交易。
2、策略优化
据此,我们尝试对策略做优化。
当指数过去20日涨跌幅都小于0时,即认为市场处于熊市,第二日直接空仓不做交易,只持有现金。
我们在原代码上修改几行,即可验证优化后的策略效果。
如果你需要这个代码和数据的话,可以在评论区留言,都是可以分享给你的。
3、回测结果
策略回测结果如图所示:
代表新策略的橙色曲线从1变为了12.69元,比原始策略(10.64元)赚的更多。
最大回撤更是由51.1%降为26.8%,这也让一个原先无法实盘的策略变得可行。
06
其他优化方向
1、换指数/指标
我们也可以尝试进一步优化。
比如前文我们各用三个指数代替大小盘股票,是否可以加入更多指数一起进行轮动?
又比如前文用过去20日的涨跌幅作为依据,是否可以把20日改成5/10/40日?
这些都是值得尝试的方向。
拿到我们的代码后,只需微调参数就能得到相应 的结果,非常方便。
如果你需要的话,可以在评论区留言,都是可以分享给你的。
2、换标的/市场
也可以将指数换为基金,让策略在几个基金间进行轮动。
但基金换仓成本过高,这里不作推荐。
甚至投资某马赛克市场的同学,可以尝试在大饼和姨太间轮动,收益也会非常爆炸。
3、多空策略
再分享个更专业的玩法。
原策略我们买入的是现货,只能做多,如果交易股指期货,就能构建多空组合。
股指期货多空组合
关于什么是股指期货,大家可以看我之前的文章。
点击上图,查看视频
运用股指期货我们可以做多优势指数,做空劣势指数。
收益就会完全来自两个指数间的差异,整体资金曲线也会更平稳。策略较为复杂,本期篇幅有限就不展开了。