防御资产动量:一份只在崩盘年兑现的保险
它们承诺「股票的收益、债券的回撤」,论文里的净值曲线也确实漂亮得不像话。 我把这套体系的四代产品全搬到 2010–2026 含息重跑了一遍——结论有点扫兴,但 2022 那一年留了个尾巴。
先把话说在前面:这篇不是给「动量轮动」唱赞歌的。它是一次祛魅。
做大类资产配置的人,迟早会撞见 Wouter Keller 这个名字。从 2016 年到 2022 年,他和合作者连发四篇 SSRN, 搭出一整套「防御优先」的动量框架:PAA → VAA → DAA → BAA。卖点高度统一——用极少的几个「探针」资产 实时探测市场体温,平时满仓吃股票上行,一旦探针转冷,整个组合迅速缩进债券和现金。回测区间拉到上世纪七十年代, 年化十几个点、最大回撤却只有个位数。任何见过 2008 年自己账户的人,看到这种曲线都会心动。
心动之后,我习惯做一件事:把它搬到我自己能拿到的、它没被用来调参的样本里,按真实成本再跑一遍,看还剩多少。
一个想法,被打了四次补丁
这四代产品其实是同一个想法的反复迭代,而每一次迭代,都是上一代在实盘里露怯之后打的补丁。理解这条线, 比记住任何一组参数都重要。
PAA(2016,Protective) 是原点。它的洞见是用「广度」当刹车:在一篮子风险资产里数有多少个站上了 12 个月均线,站上的越少,就把越多的钱挪进债券。防御是「连续」的——不是开关,是旋钮。
VAA(2017,Vigilant) 把旋钮换成了急刹车。它用一个加权动量分(近 1 月权重 12、3 月权重 4、6 月权重 2、 12 月权重 1,所谓 13612W),只要进攻池里任何一个资产的动量转负,立刻 100% 跳进当时最强的防御资产。 灵敏,但也因此爱抽搐。
DAA(2018,Defensive) 是对 VAA 过度灵敏的回应。它把「探针」和「持仓」分开:专门设一个 canary(金丝雀) 小池子——通常是新兴市场股和综合债——只用它俩来决定防御力度,真正的持仓则在一个更大的进攻池里挑最强的几个。 金丝雀全绿就满仓,死一只缩一半,全死了才彻底躲进债券。名字里就写着「Defensive Asset Allocation」,是这条线最名正言顺的一篇。
BAA(2022,Bold) 是看过 2010 年代成绩单之后的痛定思痛。它把动量定义换成「现价相对过去 13 个月均价」 的 SMA 口径(更稳、更少假信号),进攻端更激进,而防御端——这是关键——加进了商品和通胀挂钩债。 这个看似不起眼的改动,后面会成为整篇文章里唯一的亮点。
搬到 2010–2026,按真钱跑
我用美股 ETF 复刻了 VAA-G4、DAA-G12、BAA-G12 三代代表作,对照两个最朴素的基准:满仓 SPY,以及一个 月度再平衡的 60/40(SPY/AGG)。所有口径都按这个站子一贯的规矩来,不给策略放水:
最大的局限我先自己说:样本不含 2008。这恰恰是全文的题眼。
| 策略 | 年化 | 波动 | 夏普 | 最大回撤 | 2020 | 2022 |
|---|---|---|---|---|---|---|
| SPY | 13.0% | 14.2% | 1.00 | -23.9% | +18.3% | -18.2% |
| 60/40 | 8.8% | 9.2% | 1.03 | -20.0% | +14.7% | -15.8% |
| BAA-G12 | 7.9% | 11.2% | 0.79 | -23.2% | +10.2% | +12.9% |
| DAA-G12 | 4.7% | 7.1% | 0.72 | -21.4% | +17.9% | -13.2% |
| VAA-G4 | 3.3% | 8.6% | 0.45 | -26.3% | +12.4% | -13.9% |
红涨绿跌。2010-01 至 2026-06,含息总收益,已扣换手成本。
扫兴的部分
看夏普——这是它们自我标榜的战场。三代防御动量,没有一个打得过那条月度再平衡的 60/40 直线。60/40 的夏普 1.03,而 BAA 0.79、DAA 0.72、VAA 0.45。满仓 SPY 的夏普也有 1.00。换句话说, 过去十六年,你为「择时」付出的所有心思、换手和踏空,买回来的是一个比「买了就不管」更差的风险调整收益。
更难堪的是回撤。这套体系的核心承诺是「把回撤压下去」,可 VAA-G4 的最大回撤 −26.3%,比满仓 SPY 的 −23.9% 还深; BAA −23.2% 跟 SPY 打平。只有 DAA(−21.4%)和 60/40(−20.0%)算勉强兑现了「更稳」,而它俩省下的那两三个点回撤, 是用腰斩的收益换来的。它们不是把崩盘的坑填平了,而是自己在平地上反复抽搐,挖出了一堆新的小坑。
2022:唯一一次,保险真的赔付了
如果故事到这里就结束,那它只是又一个「择时不如躺平」的老生常谈。但 2022 那一栏值得盯着看一会儿。
2022 是近十几年唯一一次股债同杀:SPY −18.2%,连号称避风港的 60/40 也跌了 −15.8%,因为它 40% 的债券和股票一起垮了。 VAA、DAA 确实躲进了债券,可债券本身就是那年的震中,它们只把损失缓冲到 −13% 上下,聊胜于无。
真正躲过去的,是 BAA:+12.9%。在所有人流血的一年里,它逆势涨了两位数。原因恰恰是 2022 年那个不起眼的补丁—— BAA 的防御池里有商品。当探针报警、它缩进防御端时,挑中的是那年唯一在涨的东西(能源/商品),而不是正在崩的债券。 VAA 和 DAA 死在「防御资产 = 债券」这个 2008 年留下的肌肉记忆里,BAA 因为多带了一手商品,活了下来。
这就是为什么我说理解「迭代」比记住「参数」重要:每一代的救命稻草,都是上一代尸检报告里写下的那一条。
那论文里的漂亮曲线是哪来的?
不是造假,是样本。Keller 的回测往前拉到 1970 年代,横跨石油危机、滞胀、2000、2008。 防御动量的全部超额,几乎都集中产生在这几次又深又慢的崩盘里——深到躲一次顶你白干十年, 慢到月频信号来得及反应。把这些灾难年抽掉,剩下的就是我这张表:一段没有大崩盘的长牛里,保险费天天在交,赔付却迟迟不来。
而且它要的灾难还很挑剔:得是「股票慢慢跌、债券同时涨」的那种经典衰退。2020 年的崩盘太快, 月频信号还没动手已经 V 型反弹(那年它们反而靠反弹后追回来一点);2022 年的崩盘债券不配合, 只有自带商品对冲的 BAA 接得住。过去十六年,没出现过一次「标准款」的崩盘——而这套体系恰好只对标准款有效。
留出期:把最近两年单拎出来
按这个站子的规矩,我把 2024 年起的最近两年当留出期单独算,看结论稳不稳。这两年是个小牛市,所以不意外: 防御体系继续跑输 SPY(年化 20.8%)。但有意思的是 DAA(10.6%、夏普 1.32)和 BAA(14.1%、夏普 1.42) 在留出期反而比它们的长期均值体面——说明这套东西没坏,只是它的主场(大崩盘)恰好这十几年没开过。它不是失效的策略,是错配的策略:你买了一份地震险,然后住进了一个十六年没地震的城市。
所以,该不该用
我的结论分三层:
其一,别为论文里的夏普买单。那个数字是「样本里恰好有几次完美崩盘」的产物,它不承诺未来。 真要用,你押的不是历史曲线,而是一个判断:你的持有期里会不会发生一次又深又慢的衰退式崩盘。这是宏观赌注,不是统计套利。
其二,如果非要做防御动量,选 BAA 这一脉,而且盯紧防御池里有没有非债券的对冲(商品、通胀挂钩、现金)。 2022 已经证明,「逃进债券」在某些崩盘里就是从一个火坑跳进另一个。DAA 那种纯债券防御,是上一场战争的打法。
其三,对 A 股投资者,这套美股结论不能直接搬。但那个底层洞见是通用的,也是我在这个平台上反复验证的:广度/拥挤度本身就是一种择时信号。 真正稀缺的从来不是「轮动」的花样,而是「什么时候该把仓位收回来」的纪律——以及你收回来之后躲进去的那个地方,在下一次崩盘里到底扛不扛得住。
脚本
scripts/defensive_momentum_article.py, 数据为 Yahoo 后复权总收益(my-app/public/data/momentum_tr/)。 VAA-G4 / DAA-G12 / BAA-G12 按原论文参数实现(13612W 或 SMA 动量、canary 探针、Top-N 等权)。 月度净值,故月内回撤被略微低估;rf=0;换手成本 0.2%/单位。 样本不含 2008,这是结论的边界——它解释了为什么这里的数字远不如原论文好看。 数据截至 2026-06-30。