这是邢不行第 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”行情。
当时大家都在抱团买入大市值的蓝筹股,比如:可口可乐、迪士尼、麦当劳、运通等。这和2020年的A股很像,只不过美国人买的是可乐,我们换成了茅台。
2 | "漂亮50"惨案 |
“漂亮50”会一直独领风骚吗?世事无常,在1972年至1974年间,这些大型蓝筹股开始集体下跌。
“漂亮50”从高点下跌百分比
其中迪士尼跌幅高达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代码进行验证。
策略数据及代码
如果你需要的话,可以加我微信xbx297,都是可以直接免费发给你的。
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时,即认为市场处于熊市,第二日直接空仓不做交易,只持有现金。
我们在原代码上修改几行,即可验证优化后的策略效果。
如果你需要这个代码和数据的话,可以加我微信xbx297,都是可以免费发给你的。
3 | 回测结果 |
策略回测结果如图所示:
代表新策略的橙色曲线从1变为了12.69元,比原始策略(10.64元)赚的更多。
最大回撤更是由51.1%降为26.8%,这也让一个原先无法实盘的策略变得可行。
06
其他优化方向
1 | 换指数/指标 |
我们也可以尝试进一步优化。
比如前文我们各用三个指数代替大小盘股票,是否可以加入更多指数一起进行轮动?
又比如前文用过去20日的涨跌幅作为依据,是否可以把20日改成5/10/40日?
这些都是值得尝试的方向。
拿到我们的代码后,只需微调参数就能得到相应的结果,非常方便。
如果你也想要自己改进策略的话,可以加我微信xbx297,都是可以直接发给你的。
2 | 换标的/市场 |
我们也可以用基金代替指数,让策略在几个基金间进行轮动。
但基金换仓成本过高,这里不作推荐。
甚至投资某马赛克市场的同学,可以尝试在大饼和姨太间轮动,收益也会非常爆炸。
3 | 多空策略 |
再分享个更专业的玩法。
原策略我们买入的是现货,只能做多,如果交易股指期货,就能构建多空组合。
股指期货多空组合
关于什么是股指期货,大家可以看我之前的文章。
点击上图,查看视频
运用股指期货我们可以做多优势指数,做空劣势指数。
收益就会完全来自两个指数间的差异,整体资金曲线也会更平稳。策略较为复杂,本期篇幅有限就不展开了。
07
后记
文章的最后,和大家分享一点量化投资的心得。
经常有人问我小白如何入门量化投资,有什么资料分享。
我特意为大家准备了一个《量化投资新手学习大礼包》。
首先是我们自己总结的适合零基础新手的量化投资学习路径,可以让你知道自己每一步需要达到什么阶段。
接下来你可以通过我整理的量化文章合集,来更全面的了解量化投资到底是什么。
我还精选了适合各个学习阶段的策略研报合集,正如我一直所说,量化研报是很好的量化实践项目,深度研报可以显著提升你的量化水平。
这一份代码则适合喜欢研究技术指标的人,你可以跟着教程轻松计算出所有技术指标,并测试这个指标的有效性。
如果你有一定的基础,还可以尝试回测一些策略,我为你准备好了十几个不同类型的经典策略和它们的代码,相信总有一个适合你自己去魔改开发,运用到实盘。
最后也是最关键的,量化的基础就是准确的历史数据,我会送你一份股票历史日线数据和一份财务数据,你可以用它测试所有技术指标和财务指标,也可以用来回测大部分策略。
识货的你一定能够发现这个大礼包的价值吧。如果你需要的话,可以加我微信xbx783,都是可以直接免费发给你的。
联系作者
往期文章推荐
大A为何频繁跳水,Python量化1200W条交易数据给你答案!| 【邢不行】
A股贵如金?Python量化验证AH股溢价效应,跟着买15年18倍?| 附策略代码
跟着基金买,别墅靠大海?买基金重仓股票,会破产吗?| 附最新选股结果 |【邢不行】
抓了几千万条热门股数据,用Python量化验证后发现结果竟然...... | 【邢不行】
抓了几千万条热门股数据,用Python量化验证后发现结果竟然...... | 【邢不行】
当我们谈论量化时,我们在谈论什么?量化投资常见策略有哪些?| 融券T0和高频交易详解|【邢不行】
量化交易一定是机器人+自动化+高频交易吗?| 常见量化交易误区合集,新手脱坑入门指南 | 【邢不行】
投资不识筹码峰,炒遍A股也枉然?| 如何用python计算筹码分布数据 |【邢不行】