写于 2026-11-08
前段时间我对美股的动量策略做了一些研究,做了个简单的动量策略,现在持续跟踪中。这篇文章算是一个阶段性句号,把这阵子折腾的过程和一些想法记录下来,想到哪里就写到哪里。
为什么会对动量策略感兴趣?主要是两个原因:
一方面是我自己在做主观多头策略的时候,比较看重安全边际,天然偏向于价值因子和反转因子,而且个人能看懂的公司和行业有限,容易形成偏误,所以我深感需要开发一个简单的量化策略来辅助我投资,不求超额多少,只需要跟我自己的主观偏好形成一定的平衡,同时把仓位分散出去就足够了。
另一方面,动量因子本身是长期有效的(在下面会讲为什么),也比较适合我,正好跟我互补了。市面上现成的动量 ETF有很多,是一个很好的切入口(比如下文提到的 SPMO),这些策略在过去几年的表现都很好,但我们做投资肯定不能直接按照以前的业绩线性外推,还得去研究一下它的机制,再加上我也不太想让别人帮我管理,所以还是想自己复刻一套,于是顺理成章地进行了一些研究。
话不多说,接下来是正文部分:
一、动量的底层机制
在做具体的量化回测之前,我想先说一下自己对量化策略的偏好:我个人比较偏好可解释的量化策略。因为很多时候大家以为自己在做量化研究,但其实只是在对着历史数据做参数寻优,如果一个策略没有清晰的底层机制解释,回测曲线画得再漂亮也没什么意义,因为我们不知道它为什么有效。也是因为这个原因,在这轮研究里我没有选择对参数进行大规模的调整——一方面是怕陷入过拟合,另一方面也是个人精力有限,不想把时间花在无休止的调参上。
那么,动量因子为什么会长期有效?
为什么我们平时做价值投资往往抓不到动量?因为做主观多头的时候,我们总是希望把基本面研究清楚、等确定性高了再下手,但很多股票往往是在大家还看不清楚的时候就已经涨上去了,随着基本面不断验证,股价不断反应预期变化,涨涨跌跌。等真正看清楚、觉得生意稳定的时候,其实已经没有什么超额收益了。实际上想要捕获动量收益,本身就需要有信仰和勇气,或者干脆交给一套机械的规则。
但这不代表动量是无效的,事实上,动量的超额可以用市场的一些底层特征来解释,它是某些更底层的机制在价格上的表征。我自己总结了三点:
首先是人类总是愿意为美好的未来付费,这是很多股票能在短时间内出现巨大涨幅的核心原因;其次是新兴产业的确会有超额收益,因为它在不断渗透老产业,抢老产业的份额;最后是动量具有连续性——为什么涨了还会继续涨?我觉得可能是因为人们只能根据现在的信息去推断一部分未来,没法一眼看到终局,所以好公司的业绩往往是缓慢上修的。
而且动量似乎天然带来更大的波动率,因为大家都看不清楚,只能线性外推——好的业绩带来更好的预期,更好的预期又推高股价,一步步走成戴维斯双击,反之亦然。
在学术文献里,动量因子的有效性通常被拆解为几个相互印证的机制假说:
- 一是信息的渐进扩散与早期反应不足(Gradual Information Diffusion)。比如 Hong & Stein (1999) 的经典模型指出,真实的产业变化(订单、技术突破、竞争格局改善)和投资者的普遍认知之间存在时间差。如果每条新信息都在瞬间被所有人充分计价,基本面改善本身并不会产生可交易的动量;正是因为信息在市场里是逐步扩散的,早期股价往往反应不足(Under-reaction),随着基本面一个个季度兑现、趋势资金陆续跟进,才推升出持续的动量,并在后期演变为过度反应(Over-reaction)。
- 二是有限注意力下的“温水煮青蛙”效应(Frog-in-the-Pan Hypothesis)。Da, Gurun & Warachka (2014) 的研究发现,由于投资者的注意力有限,市场对连续、渐进释放的微小好消息往往容易习以为常、反应迟钝,没法一次性计入价格;反而是这种持续温和积累的价格路径,对应着最强的后续动量。
- 三是现金流预期修正与折现率重估的共振。就像 Vuolteenaho (2002) 把个股收益分解为现金流预期变化(Cash-Flow News)和折现率变化(Discount-Rate News)一样,新兴产业抢夺份额带来持续的盈利预期上修,而赚钱效应带来的风险偏好上升又压低了投资者要求的折现率,两者叠加就形成了长周期的价格趋势。
有意思的是,就算大家都知道动量因子有效,但市场也没有完全抹平动量的超额。也许市场的激励机制(比如共同基金和机构投资者的相对基准排名考核),以及人性里追涨杀跌、厌恶落后的特性是没办法克服的——逆势做空正在主升浪里的拥挤龙头,往往还没等到均值回归就已经先触发风控清盘或基金赎回了(也就是所谓的套利限制 Limits to Arbitrage)。所以动量长期还是会有 alpha,只不过这个“长期”有可能会特别长,动辄以 5-10 年为周期。
为了验证动量因子是不是跨市场也能生效,我把最简单的低频纯多头规则(半年度 3/9 月调仓、按过去 12 个月跳过最近 1 个月的涨幅排序、固定选前 10 只)直接搬到 A 股(历史沪深 300 当期成分股,计入停牌、涨跌停延期成交和历次印花税变更)测了一下:
图:历史沪深 300 成分股 10 只动量组合与沪深 300 全收益指数对比(2015–2026)
回测看下来,动量在各个时期、各个市场都有效。这里回测的纯多头动量策略本质上是某种“指数增强策略”——从指数股票池里面按照动量因子选取了一组多头股票(这里没做空头组),然后去捕获相对指数的超额。比如在沪深 300 里从 2015 年 3 月底跑下来十一年,动量组合累计收益约 61.7%(期末净值 1.62;若从 2015 年 10 月美股共同起点算起,年化是 8.36% 对 5.33%),最终还是跑赢了沪深 300 全收益指数(累计约 51.7%,期末净值 1.52)。但 A 股的问题是,指数本身的收益就不高,而且波动实在是太大了,所以基于这个指数做增强没什么意义。以我做的这个简单回测为例,从 2015 年跑下来,中间最大回撤超过了 70%,一直到 2024 年底其实都还跑输指数,直到最近一两年抓住了半导体和光模块才把超额拉回来,而美股测下来效果就好很多,我觉得也许跟美股的业绩会逐渐上修、而且大家不会一开始就直接把预期打满有关系?
至于为什么我也不是完全确定,但体感上确实差别很大。
二、拆解 SPMO
基于以上的认识——既认可动量因子的底层机制和跨市场有效性,又看到美股指数本身更适合做长周期的动量增强,同时还不想自己凭空捏造一套复杂黑盒——我很自然地开始拆解美股现成的经典动量策略,以 SPMO(跟踪 S&P 500 Momentum Index)为样本来做对照。
SPMO 的核心做法是在标普 500 里面,按过去 12 个月(跳过最近 1 个月)的价格涨幅除以同期日收益标准差来打分,选前 100 只,按流通市值乘以动量得分加权,每年 3 月和 9 月调仓。我照着这个框架,把里面的关键假设一个个拆开验证了一下。
波动率与超额收益
SPMO 把累计涨幅 除以了日收益标准差 ,表面上看是想选出“涨得更稳”的股票。我一开始也重点琢磨过这个机制:直观上大家很容易觉得,高波动率是不是代表市场交易分歧大、纯属资金炒作?如果除以波动率,是不是就能筛出预期修正更扎实、产业趋势更可靠的股票?
但仔细推敲就会发现这里面有一个概念错位:分歧是同一时点横向的(不同投资者的看法相差多远),而历史波动率是跨时间的(同一只股票在一段时间内日收益的起伏)。假设一家公司迎来真正的产业突破、一份财报释放了极其强劲的订单信号,全市场投资者一致上调盈利预期,股价迅速跳涨——这时候大家的看法其实是变得更一致了,但算出来的历史波动率 却大幅飙升了。单凭历史波动率,根本无法区分一只股票是在经历多空反复拉扯的炒作,还是在经历真实的剧烈价值重估;把全部波动率一刀切放进分母,就会把有价值的重大新信息也当成噪音一起惩罚掉。甚至在数学上还有一个边界问题:当股票涨幅 为负数时,波动率 越大, 反而越接近零、排名反而更高。
当我控制其他条件完全不变,只对比半年度 10 只纯动量(按 排序)和波动率调整动量(按 排序)时,跑下来的数据直接印证了这个担忧——加上波动率调整之后,年化收益反而从 23.76% 大幅掉到了 16.36%,夏普比率从 0.78 降到 0.62,最大回撤也并没有改善(36.15% vs 34.71%):
图:半年度 10 只纯动量与波动率调整动量对照(2015–2026)
翻看具体的选股账本就能看到,在 2025 年 3 月调仓时,当时处于主升浪的电力龙头 GEV 和 VST 在纯动量里排第 3 和第 6,但除以波动率之后直接掉到了第 18 和第 96 名被踢出了组合。
跑出这个结果后我更确信,波动率是我们必须要承担的风险,因为它是动量因子超额收益的主要来源。一个简单的低频策略本来就没有什么凭空多出来的 alpha,最终只能靠承受更高的波动率(也就是市场说的风险),才能获得更高的回报。机构用波动率去调整配方(是的,搓策略就跟做饭没什么区别)、再配上市值加权和 100 只分散持仓,或许能获得更好看的夏普比率,本质上这是在权衡波动率和超额收益;但我觉得对我来说这些不太重要,因为我需要的是超额收益,需要控制的只有最大回撤和修复最长时长(回到最高点所需的时间),期间的日常波动不重要。
调仓频率与日历效应
第二个是调仓节奏:为什么是一年调两次,而且偏偏选在 3 月和 9 月?
我先在相同数据下对比了半年调仓和季度调仓,发现半年调仓不仅换手和交易摩擦更低,长期收益也优于季度调仓;而且在两次半年检查之间,给旧仓留一个排名缓冲带(比如新进前 10 买入、旧仓还在前 20 就继续保留),并且让留存赢家的份额随价格自然漂移(而不是每半年强行削平回等权——实证显示强行恢复等权会让各股票池年化下降 1.4 到 2.3 个百分点),更能让已经形成的趋势充分跑完。
至于为什么偏偏选在 3 月末和 9 月末,为了检验这到底是动量因子的普适性质还是“3/9 月的日历运气”,我把半年调仓的锚点平移到全年的 6 个月份组合(1/7、2/8、3/9、4/10、5/11、6/12),并且按照 Jegadeesh & Titman (1993) 的经典重叠组合(Overlapping Portfolios)方法把 6 个相位等权合成,完整跑了一遍对照:
图:半年调仓平移至 6 个不同日历相位的净值、回撤与重叠合成组合对比
跑完看下来有两个发现:一是全部 6 个日历相位的年化收益(在 26.8% 到 31.0% 之间)和重叠合成组合(年化约 28.5%)全都显著跑赢了标普 500(15.1%)和 SPMO(19.3%),说明半年度动量的超额收益是全天候存在的,并不是靠押中 3/9 月才凑出来的巧合;二是 3/9 月调仓虽然年化处在六个相位的中位数附近(29.4%),它的最大回撤(-33.75%)却恰好是六个相位里最浅的(其余五个相位回撤在 -36% 到 -44% 之间)。
我觉得这种日历效应背后肯定有一些比较底层的原因,跟美股的制度和日历机制有关系,大概有三个比较合理的解释:
- 财报与全年指引(Guidance)的信息消化周期:美股绝大部分自然年(12 月财政年度末)公司在 1 月下旬至 2 月底密集披露 10-K 年报并给出最关键的新财年全年业绩指引,而在 7 月下旬至 8 月底密集披露 Q2 中报并修正下半年指引。因此,3 月末与 9 月末恰好处于全市场最重要的两轮基本面重定价刚刚完成、财报跳空与分析师预期修正充分沉淀之后的截面;相比之下,1/7 月或 4/10 月正好卡在财报季启动前夕或披露中途,选股信号容易混入未决的财报赌博噪音。
- 避开年末税务亏损收割(Tax-Loss Harvesting)与一月反转效应(January Effect):美股共同基金(通常以 10 月 31 日为税务年度截止日)与个人投资者(12 月 31 日截止)在 11–12 月会出于资本利得税抵扣目的,集中抛售当年亏损股、锁盈部分强势股,并在次年 1 月资金回流时引发前期弱势股的剧烈反弹。
12/6或1/7相位恰好在年末流动性扭曲和一月反转噪音的峰值附近换仓,而3/9相位且跳过最近一个月(即 3 月底用前一年 3 月底至当年 2 月底收益,9 月底用前一年 9 月底至当年 8 月底收益),天然在换仓时点与信号窗口两端避开了跨年噪音。 - 季末机构橱窗粉饰(Window Dressing)与指数再平衡的流动性共振:3 月末(Q1 末)与 9 月末(Q3 末)是机构投资者半年度/季度持仓披露与标普、罗素等指数定期审核再平衡的重要节点,以 SPMO 为代表的百亿美元级动量 ETF 也固定在 3/9 月调仓,共同强化了这两个截面的趋势延续性。
股票池与集中度
第三个问题是股票池与持仓数量:为什么要把股票池扩充到标普与纳指的并集,又为什么把 SPMO 的 100 只砍成 10 只?
股票池方面,单用标普 500 有时候会漏掉还没满足标普纳入条件、但已经进入主升浪的大型成长股(比如 2020 年底之前的特斯拉),而单用纳斯达克 100 又缺乏金融和传统周期行业,在 2022 年那种科技股熊市里缺乏轮换保护(2022 年标普动量靠轮换到能源股全年只跌了 1.3%,而纳指动量跌了 37.7%)。所以取标普 500 和纳指 100 的历史当期成分并集,是一个既能捕捉科技成长爆发、又保留跨行业轮换空间的自然选择。
至于持仓数量,这其实是基本的量化策略验证机制:如果动量因子真的成立,那么横截面上的集中度越高,收益就应该越强,这样才能证明因子符合统计学上的单调性原理。我在标普、纳指和并集三个池子里,一路把持仓数量从 20 只砍到 10 只、5 只、甚至 3 只去测:
图:不同股票池下 10 只与 5 只持仓的收益与风险对比
数据上确实越集中收益越猛:并集 10 只年化接近 30%,并集 5 只到 32%~35%,纳指 3 只甚至能到 43%~45% 以上。但为什么最后我只选了 10 只,而没有去选账面收益高得多的 5 只或 3 只?
因为如果把数量收得太少,个股的偶然性就会被极度放大。这里补充两项压力测试:
第一项是极端大牛股剔除实验(Leave-One-Out / Leave--Out)。我把 11 年里对组合对数收益贡献最大的前几只超级大牛股(如英伟达 NVDA、特斯拉 TSLA、MRNA、博通 AVGO、AMD)从历史股票池里永久抹掉,看剩下的替补股票能吸收多少损失:
图:单股剔除(LOO)与累计剔除(LKO)超级大牛股后的净值路径对比
测下来看得很清楚:在并集 5 只和纳指 3 只组合里,光 NVDA 和 TSLA 两只股票就贡献了约 57% 和 64% 的对数收益;一旦把这两只去掉,并集 5 只的年化直接从 31.9% 摔到 18.3%,连 SPMO(19.3%)都跑不赢了。而在并集 10 只组合里,前两大牛股的占比只有 39%,哪怕同时永久剔除 NVDA 和 TSLA,靠着池子里顺延替补上来的其他强势股,年化依然能保持在 21.9%,剔除前五大牛股后也还能跑赢标普 500。
第二项是退市缺口与暴雷归零压力测试(Delisting & Wipeout Stress Test)。在查历史数据的时候我发现,历史成分并集共有 827 个证券代码,其中有 187 个早期代码因为并购私有化、重组或退市缺少完整价格(平均每期缺失率约 12%)。虽然在跑出的基准账本里,所有实际入选持仓的股票在持有期内价格覆盖率都是 100%,但我还是得考虑一个最严苛的“幸存者偏差”问题:万一那些缺价的股票在当年恰好动量极高、被选进了组合,随后发生财务造假或破产清算、本金彻底归零(-100%)怎么办?
图:历史成分缺价率演变、每年 1 只持仓暴雷底线、蒙特卡洛注入分布与盈亏平衡归零次数测算
我直接往真实账本里注入了确定性的逆向暴雷冲击和 500 条蒙特卡洛随机暴雷路径:哪怕假设每年都固定踩中 1 只彻底破产归零(-100%)的股票(11 年累计 12 次单股清零),并集 10 只的年化收益依然能维持在 19.2%,照样跑赢标普 500;而并集 5 只因为单股权重高达 20% 以上,遭遇同样的冲击后年化直接坍塌到了 4.95%。如果算“盈亏平衡暴雷点(Break-Even Wipeout Count)”,并集 10 只在 11 年(230 个持仓人次)里需要累计遭遇 10 到 12 次单股彻底归零——这相当于大盘股真实历史破产率(每年约 0.15%)的 58 到 116 倍——它的超额收益才会被抹平到标普 500 的水平。
所以在集中度带来的高收益和个股黑天鹅的偶然性之间,10 只大概是一个既有统计弹性、我自己心理上也能接受的平衡点。
不同市场环境下的表现
定下并集 10 只(以及作为对照的并集 5 只、纳指 3 只)之后,我又做了一项宏观适应性检验:很多人直觉上会怀疑,美股过去十来年的动量超额,是不是纯粹靠“零利率大放水”或者“少数科技巨头抱团”撑起来的?如果以后遇到加息周期或者宽基普涨,这套策略会不会就失效了?
为了弄清楚这一点,我把 2015 年底到 2026 年这 2,728 个交易日,分了四个不同的宏观与市场环境维度切开来看:牛熊趋势(标普 500 在 200 日均线上方 vs 下方)、利率与货币周期(零利率 QE vs 2022 年后的激进加息与高息平台期)、实现波动率分位(低波、中波、高波)、以及市场宽度(市值加权跑赢等权的“窄基巨头抱团” vs 等权跑赢市值加权的“宽基普涨”):
图:牛熊趋势、利率周期、实现波动率与市场宽度四个维度下的策略表现切分(2015–2026)
数据拆开看下来还是挺让人放心的:
- 在利率维度上,即便在无风险利率高于 1%(覆盖 2018–2019 加息期以及 2022–2026 年的激进加息与 5% 高利率平台,共 1,581 个交易日)的环境下,并集 10 只动量的年化依然有 26.2%、夏普 0.90(同期标普 500 年化 14.9%),跟零利率时期的表现高度一致。因为动量策略并不是死拿某一种风格(比如无盈利的高估值 SaaS),它的横截面选股机制会自动跟着全市场盈利和资本开支的方向做迁移——比如 2022 年自动切向能源与防守股,2023 年后又切向 AI 与算力基础设施龙头。
- 在市场宽度与牛熊维度上,哪怕在标普等权跑赢市值加权的“宽基普涨”阶段(占约 37% 的交易日),并集 10 只的年化也达到 27.6%(跑赢标普 11 个百分点以上);甚至在标普位于 200 日均线下方的熊市交易日里,它的年化跌幅(-21.8% 到 -23.7%)也依然比标普 500(-30.1%)更抗跌。唯一真正让动量受挤压的,是实现波动率处于最高三分位的恐慌急跌与风格剧烈反转期。
三、不做过拟合的雕花
拆解完 SPMO、定下“并集 10 只、半年纯动量”的基准之后,我自然也尝试了一些改造方法——主要是想看看能不能把三十多个点的最大回撤给压下来,或者把策略的夏普比率做得更好看一些。
我先后试了好几种在直觉或文献上看起来很合理的改造思路:
第一种是加近半年跌幅门槛过滤,试图去掉走弱的股票,比如要求近 6 个月跌幅不能超过 10%(也对比了 0%、20%、30% 四档门槛),想着在选股和留存时先排除近期明显走弱的票。表面上看全期年化确实提高了 0.7 到 3.3 个百分点,但当我把每个调仓日的过滤开关逐个关掉做归因时,发现三条路线几乎全部的正向收益增量都集中在 2015-09-30 那一次调仓(当时恰好排除了长期排名第一但近半年暴跌 15.5% 的 BMRN)——只要把那一天的过滤关掉,全期优势就基本消失了。而且半年端点收益对“前四个月暴涨翻倍、后两个月腰斩”的路径完全是盲区(算下来半年涨幅还是正的,根本触发不了过滤)。
第二种是提高检查频率、识别见顶形态或叠加短期动量。直觉上半年才看一次好像太慢了,如果参考学术文献里的趋势转折与技术形态方法——比如照着 Goulding, Harvey & Mazzoleni (2023, JFE, "Momentum turning points") 用 12 个月慢信号与 1 个月快信号切分“上涨、回调、下跌、反弹”四状态,或者参考 Lo, Mamaysky & Wang (2000, JF, "Foundations of Technical Analysis") 用局部波峰波谷定义“阶段高点 回落至 、反弹高点 后跌破颈线 ”的见顶形态,并且把检查频率从半年提高到每个月——能不能及时逃顶、躲过大跌?
这里面有两个在工程和实证上非常关键的约束:
- 一是极值发生日与极值确认日的严格区分。就像 Lo et al. (2000) 和纽约联储 Osler (1998) 对美股头肩顶形态的实证指出的那样,任何算法识别波峰波谷,都必须等右侧走完 个交易日(比如前后各 5 日)才能确认极值成立,绝不能在整段历史上找完最高点后把交易放回最高点当天(那是典型的未来函数)。一旦严格按确认日之后的下一个交易日收盘执行,形态信号的滞后性就会暴露出来。
- 二是止损卖掉只是决策的一半,更关键的是腾出来的钱买了什么。Kaminski & Lo (2014, "When do stop-loss rules stop losses?") 证明过,退出规则的净价值不仅取决于原持仓卖掉后跌没跌,更取决于补位资产的后续表现与再入场代价。
在完全不挑选参数的前提下,我把均线规则、见顶形态规则在“半年检查”和“月度检查”两种频率下跑了完整的 15 组对照,并做了逐次换股诊断(replacement_diagnostics):
图:并集 10 只在无过滤基线与均线、见顶形态规则(半年实线 vs 月度虚线)下的表现对比
看下来发现,折腾高频止损想去“逃顶”,往往适得其反:
- 一旦把检查频率从半年改成每个月(图中虚线),无论是 10 只、5 只还是 3 只,年化收益全部显著下降,最大回撤和最长未创新高等待期反而全面恶化(比如并集 10 只按月均线退出,年化从 29.4% 掉到 24.6%,最大回撤反而从 -34.7% 扩大到 -43.4%,最长修复等待期从 628 天拉长到 795 天)。
- 逐次换股诊断揭示了原因:在月度形态触发的 57 次换股事件里,换进去的替补股票在随后半年的表现只有 42% 的概率优于被卖掉的原持仓,平均反而跑输。因为在强趋势股的正常震荡洗盘里,高频形态止损很容易在回调底部把原本还能继续创新高的牛股洗出去,而满仓补位换进去的次优股往往在随后的市场回调里跌得更惨。
- 至于叠加 1 个月或 3 到 6 个月短期动量能不能提供额外信息,我也做了横截面分层和多重检验校正,6 项主检验无一达到 5% 的显著性门槛。
甚至为了彻底摸清自己在同一段 11 年历史数据上反复做实验到底积累了多少“过拟合水分”,在研究收尾阶段我还专门用 Bailey & López de Prado (2014) 的多重检验折价夏普比率(Deflated Sharpe Ratio, DSR)以及 White's Reality Check / Hansen's SPA 平稳块自助法(Block Bootstrap)对全库跑过的几百条净值曲线算了一笔总账:
图:考虑收益率非正态偏度峰度与多次试验择优偏误后的折价夏普比率(DSR)分析
这笔统计总账算下来很实在:在定型前跑过的 140 条唯一策略曲线(以及全库扩展后的 457 条曲线)里,虽然候选策略相对标普 500 和 SPMO 的年化超额收益在联合块自助法检验下高度显著(White RC 与 Hansen SPA 的 ),证明动量选股的收益增厚是真实存在的;但一旦看夏普比率,并集 10 只原本约 0.90 的样本夏普在扣除多重试验的选择偏误折价(约 0.24~0.28)后只剩 0.62~0.66,而且它与标普 500(0.75)及 SPMO(0.86)的夏普差值 95% 置信区间完全跨过了 0(单侧 )。
折腾完这一整圈改造和统计审计之后,我彻底放弃了雕花:
第一,想躲过下跌,本质上是想躲过踩踏,而踩踏源于拥挤;但动量策略的超额收益本身也来自拥挤。 既然超额收益和踩踏来自同一个根源,那回测里去折腾各种止损和逃顶其实意义不大。去精挑细选一个特别好的形态或参数,本质上就是对着同一段历史路径做过拟合的“雕花”,扣除多重检验折价之后全是统计噪音,没啥用。
第二,低频策略本身就比较难做出高夏普,尤其是在我还没有做多空对冲掉大盘 Beta 的情况下。 一个纯多头、半年才调一次仓的集中组合,天然要完整暴露在美股大盘的系统性波动之下,全期夏普比率在 0.8 到 0.9 左右可能已经达到了某种边界。
四、全文总结和一些题外话
最后定下来的方案非常简单:在标普 500 和纳指 100 的并集里,每年 3 月底和 9 月底调两次仓,每次选动量最强、且没跌破半年趋势的 10 只股票(旧仓还在前 20 名就继续留着),买完就放着不管。我写了个脚本每天自动拉取最新行情算净值,顺手搭了个看板:
图:策略净值跟踪与今年 9 月底选出的 10 只持仓
我们看这个策略今年 9 月底选出来的这 10 只股票:闪迪(SNDK)、美光(MU)、LITE、西部数据(WDC)、希捷(STX)、COHR、MRNA、戴尔(DELL)、AMD、英特尔(INTC)。
按照我平时做主观多头的审美(就像之前在《什么样的生意可以被 DCF》里写的),这里面一大半都是存储、光模块、硬件这种强周期股,是我主观上绝对不喜欢、也不会去长期持有的生意。但看到动量选出这么一篮子票,我反而觉得挺好——这说明这个策略正好跟我互补了。尽管我主观上不喜欢,但如果是靠量化策略选出来的,那就可以不 care,主观上不管它就好了。
另外一个很意外的点是,在定下这个策略后不久,样本外就迎头撞上了接近 50% 的最大回撤。过去十一年回测里的最大回撤也就 33.8%,结果从今年 6 月的高点算下来到 11 月初,账面最大回撤直接干到了 49.3%(10 月初本轮调仓之后这一个多月也跌了 35.8%),现在美股的波动越来越夸张了。
回答一个灵魂拷问:万一策略真跑起来遇到连续两三年跑输、或者回撤 50% 的时候怎么办?
诚实地说,我也不知道有什么特别好的技术办法可以在低频策略寻找到高夏普的圣杯。不过我觉得动量机制应该不会失效,毕竟人性如此,真到了回撤的时候,凭信仰是撑不住的,也许一个不错的办法是只用一些自己完全能够承受的钱去跑,从根源上解决心态问题。归根到底,赚钱没有捷径,只能从资金和仓位上尽可能避免出现这种心理问题,避免去考验自己的信仰。
不知不觉写到这里,总结一下全文吧:
整套探索的脉络其实很简单。起因是我自己在做主观多头时天然偏向价值因子和安全边际,赚不到动量的钱,所以想找一个底层机制讲得通、长期有效的低频量化策略来跟主观偏好做个互补。顺着动量因子的底层机制(人类愿意为未来付费、新兴产业渗透、信息渐进扩散下的业绩缓慢上修与反身性)看下来,纯多头动量本质上是一种“指数增强”,放在美股土壤里比波动巨大的 A 股顺畅得多;接着以 SPMO 为切入口拆解,我去掉了会误杀主升浪龙头的波动率调整,保留了 3/9 月半年调仓与份额漂移,并在标普与纳指的并集里把持仓定在了兼顾超额与抗暴雷弹性的 10 只;最后在试了一圈止损和见顶形态改造之后,意识到动量的超额和踩踏同源于拥挤,低频纯多头在不对冲大盘 Beta 的前提下本就很难做出高夏普,与其对着历史数据做过拟合的雕花,不如停留在最简单的规则上,靠控制仓位去避免考验人性。
大概就是这些吧。