跳到主要内容

第一期:动量轮动跑得赢 QQQ 吗?

本文仅用于教育与研究,不构成投资建议。文中收益、回撤、Sharpe 等数据均来自特定样本期回测,不代表未来可复现结果。


读前须知几个常用指标:

CAGR(年化复合收益率):假设每年以相同比例复利增长,折算到持有期末恰好得到相同总收益时的那个年增长率,方便不同时间长度的策略横向比较。与简单的算术平均年化不同,CAGR 会因为波动而低于算术均值——波动越大,两者差距越明显。Sharpe 比率:超出无风险利率的收益除以组合波动率,衡量每单位风险对应的超额收益,数值越高越好。本文回测里 QQQ 的 Sharpe 为 0.73,可作为这期实验的参考基线。最大回撤:历史上从账户最高点到最低点的最大跌幅,衡量的是策略最坏情况下你的账户会缩水多少。

这期实验用三个标签标注每条路线的结论:

  • 样本内达标:在 2018/01–2026/04 这个样本窗口内,CAGR、Sharpe、最大回撤三项指标同时优于 QQQ 基线,标签含义仅限于此,不代表策略已被验证为可采用方案
  • rejected:指标落后,或结构分析发现这条方向本身无效,不值得继续
  • inconclusive:部分指标有改善但未全部超越 QQQ,改善幅度不足以形成明确结论;或作为后续变体的对照基准版本,尚未形成独立的最终判断

下文的长窗口回看和收益归因,不是与这三项并列的主评判标准,而是对已得结论做进一步压力测试:先看样本内是否达标,再看它为什么赢、换个历史阶段后是否还站得住。


QQQ(纳斯达克100 ETF,持有以科技股为主的美国大型成长公司)年化 18%,Sharpe 0.73。这是美股里最不好对付的那种简单选项。这期实验从这里出发,用 9 条动量轮动变体来回答一个具体的问题:有没有一条路线真正值得比它更复杂?

动量轮动的核心逻辑是:在多个备选资产里,持续持有近期涨幅最强的那一个,每隔一段时间重新排名并切换。这期实验在这个基础逻辑上试验了不同的资产池、调仓频率和防御机制,覆盖两条研究路线。先看汇总结果,后文逐条拆开讲:

#策略样本窗口CAGRSharpe最大回撤结论
B1QQQ 持有基线2018/01–2026/0418.44%0.73−35.09%基线
B2QQQ 持有基线(长窗口)2010/01–2026/0418.18%0.90−35.12%基线
M1多资产动量·日频2018/01–2026/0416.17%0.85−28.45%inconclusive
M2多资产动量·月频2018/01–2026/0410.80%0.60−36.34%rejected
M3多资产动量·周频2018/01–2026/0412.15%0.60−37.25%inconclusive
M4多资产动量·周频+相对防御触发2018/01–2026/0412.15%0.60−37.25%rejected
M5多资产动量·周频+绝对防御触发2018/01–2026/0413.28%0.68−31.84%inconclusive
S1行业双动量·月频2018/01–2026/0416.28%0.75−30.08%inconclusive
S2行业双动量·周频2018/01–2026/0421.48%1.18−30.46%样本内达标
S3行业双动量·周频(无 XLK)2018/01–2026/0415.11%0.79−31.60%rejected
S4行业双动量·周频(长窗口)2010/01–2026/0412.31%0.70−30.46%rejected

M3 和 M4 的数字完全相同——这本身是这次实验的一个关键发现,下文会解释为什么加了一条规则却什么都没改变。

下图展示短窗口主要实验的 CAGR(不含基线、长窗口结果及与 M3 数字相同的 M4),蓝色虚线是 QQQ 基线。只有一条策略越过了这条线:

回测设定说明:价格数据使用复权价(含分红和拆股调整)。每笔交易按成交金额的 0.05% 计入佣金,滑点不建模。信号在调仓日收盘后计算,次一交易日开盘执行。周频策略在每周首个交易日(通常为周一)收盘后计算信号;月频策略在每月首个交易日收盘后计算信号。Sharpe 比率使用 backtrader 引擎默认计算,无风险利率取 1% 年化。252 日动量窗口在 2018–2026 这段数据上观察选定,未经独立的样本外优化。


先立基线:QQQ 不是对手,是裁判

很多动量研究喜欢用 SPY(标普500 ETF,代表美股整体大盘)当对照,因为宽基更温和,更容易让复杂策略看起来"值"。这期实验选择用 QQQ 当基线,正是为了避免这个问题。

2018-012026-04QQQ 持有的结果是:

策略CAGRSharpe最大回撤波动率
QQQ 持有18.44%0.73−35.09%23.86%

把窗口拉长到 2010-01,数字基本稳住:CAGR 18.18%,Sharpe 0.90,最大回撤 −35.12%。

它不是懒惰的选择,它是一个足够强的真实机会成本。以后再看到任何一条复杂的美股成长策略,最先该问的不是"它聪不聪明",而是:它相对于 QQQ,到底多给了什么?


第一条路:跨资产分散

想法

只在股票里做轮动,和大盘的相关性还是太高。如果引入真正低相关的资产——黄金、商品、短债——能否在不明显牺牲收益的情况下,换来更稳定的持仓体验?

资产池:SPY(标普500 ETF)、QQQ(纳斯达克100 ETF)、GLD(黄金 ETF)、PDBC(多元商品 ETF)、BIL(短期国债 ETF,用作防御仓)。初版逻辑是把这五类资产全部放进同一个轮动池,用过去 126 个交易日(约半个交易年,为跨资产路线的初始设定;与行业路线的 252 日一样,未经独立样本外优化)的相对涨幅排名,每次持有排名最高的那一个。

日频版(M1):换手太高

日频版的结果是 CAGR 16.17%,Sharpe 0.85,最大回撤 −28.45%。Sharpe 和回撤优于 QQQ,但 CAGR 落后约 2.3 个百分点。持仓分布也不均衡:QQQ 持有了 757 天,GLD 持有了 690 天,BIL 只有 93 天。更大的问题是每年约 23 笔交易,换手偏高,不符合"低频易执行"的初衷。

月频版(M2):降低换手,代价过大

于是把调仓频率改为每月一次。交易次数从约 189 笔降到 58 笔,看起来更接近"低频"的初衷。但结果全面恶化:CAGR 跌到 10.80%,最大回撤反而扩大到 −36.34%。光凭指标来看,这条方向就已经没有继续的必要了——收益更低,风险还更大。更尴尬的是,做归因(也就是把总收益拆开,看主要是哪些资产、哪些持仓阶段贡献出来的)之后发现收益更集中了:黄金(GLD)一项贡献了绝大部分,策略变得像一个迟钝的黄金偏置版本,而不是真正的多资产分散。降低频率本身不是免费的,这条方向被否定(M2,rejected)。

发现了一个架构陷阱(M3/M4)

周频版在日频和月频之间取了折中,换手降了下来,收益质量有所恢复。随后在周频版上加了一条相对防御触发规则:只有当风险资产的动量高于 BIL 时才持仓,否则退到防御仓。听起来是合理改进——如果连短债都跑不赢,就别冒险。

结果:加了这条规则之前和之后,回测数字完全一样。CAGR、Sharpe、最大回撤、交易次数——一模一样。这就是为什么表格里 M3 和 M4 数字相同,但结论不同:M3 是尚未确认方向的中间态,M4 是"加了规则但什么都没变"这件事被确认后,这条防御逻辑本身被否定的版本。

这是一个架构问题。当 BIL 已经作为候选资产参与同一个轮动池的相对排名时,"必须跑赢 BIL 才能持仓"在逻辑上等价于相对排名本身。策略退到 BIL 是因为它暂时排名靠前,而不是因为"当前市场不适合持有风险资产"——这两件事看起来相似,但含义完全不同。只要防御资产和风险资产混在同一个排名池里,就无法清晰表达"主动规避风险"这件事。

把两层逻辑分开(M5)

改进方案是把策略拆成两个独立层:先在风险资产里选涨幅最强者,再用绝对动量(只看这个资产自己过去一段时间的涨幅是否为正,不与其他资产比较)决定是否值得持有——不满足时才退到 BIL。这种"绝对防御触发"和前面的"相对防御触发"结构上是两件不同的事。

这个改动带来了真实的改善,并且完全没有增加换手:

调整前(M3)调整后(M5)
CAGR12.15%13.28%
Sharpe0.600.68
最大回撤−37.25%−31.84%
交易次数不变不变

改善不是靠更高换手"撞"出来的,是靠结构更清晰。这是这条路线真正的研究价值。

但放回机会成本视角,问题依然清晰:和 QQQ 相比,CAGR 差了 5 个百分点,最大回撤只改善了 3 个百分点。结构改善是真实的,但以这个代价换来的收益缺口,还没有小到可以忽略——这不足以形成"值得替代纳指长期持有"的投资结论。这条路线留下的是一个结构认知,而不是一个成品方案。


第二条路:行业轮动

换一个角度

与其引入黄金和商品来降低相关性,不如在美股内部做行业相对强弱切换。

资产池是标准的 S&P 500 行业 ETF:XLK(科技)、XLY(可选消费)、XLI(工业)、XLF(金融)、XLV(医疗健康)、XLP(必选消费)、XLU(公用事业)、XLE(能源)、XLB(原材料),加上防御仓 BIL。基本逻辑:用过去 252 个交易日(约 1 个交易年;也是本文在这段样本上观察后采用、未做独立样本外优化)的涨幅选最强行业(这是"相对动量",行业之间互相比较),但如果这个行业的绝对涨幅自己转负了,就退到 BIL(这是"绝对动量",只看自身涨跌)——两层逻辑叠在一起,所以叫"双动量"。先测月频,再测周频。

月频版结果:CAGR 16.28%,Sharpe 0.75,最大回撤 −30.08%。Sharpe 和回撤已经优于 QQQ,但 CAGR 还是落后。主要问题是重新入场的节奏太慢——20232025 的行情修复阶段,月频节奏跟不上行业切换速度,错过了不少涨幅。

于是只改一个变量:月频 → 周频。

周频版(S2):数据上第一次同时打赢了 QQQ

策略CAGRSharpe最大回撤波动率
QQQ 持有18.44%0.73−35.09%23.86%
行业双动量(月频,S1)16.28%0.75−30.08%23.32%
行业双动量(周频,S2)21.48%1.18−30.46%22.64%

CAGR、Sharpe、最大回撤三项指标全部优于 QQQ。在 2018–2026 这个样本窗口内,S2 是这次实验里唯一一条同时打赢三项的路线。

但拿到这个结果之后,没有停下来,而是问了一个更重要的问题。

它是靠什么赢的?

回测把每笔持仓的归因明细都保留了。结果是:

  • XLK(科技):持仓天数占 41%,持有期间累计涨幅 194%
  • XLE(能源):持仓天数占 25%,持有期间累计涨幅 123%
  • BIL(短债防御仓):实际只持有了 5 个交易日

这里的"持有期间累计涨幅"是把策略持有该资产的所有区间首尾拼接后计算的复合收益率,不是分段涨幅简单相加,也不是组合权重。194% 意味着在 2018–2026 年间,每次策略切换持有 XLK 的阶段加总起来,这些区间内 XLK 的复合涨幅接近翻两倍。

5 个交易日。在 8 年的回测里,这条"双动量防御策略"几乎从来没有真正用过防御仓。

这还引出了一个具体问题:2022 年加息急跌,科技板块当年跌幅超过 30%,策略那一年明显跑赢了 QQQ。但它不是靠躲进 BIL 规避的,而是从 XLK 切换到了 XLE(能源),2022 年能源板块逆势大涨。

这说明这条策略的真实风格是进攻型轮动,而不是防御型轮动。BIL 是紧急出口,不是策略核心。

如果去掉 XLK

一个自然的追问随之而来:这条策略赢的方式,是真正的广谱行业趋势轮动,还是本质上仍然在吃科技股的高弹性,只是多了一个"科技不行了就出去"的离场机制?

XLK 从资产池里去掉,保持其他所有设置不变,重新跑一遍:

策略CAGRSharpe最大回撤交易次数
行业双动量(周频,含 XLK21.48%1.18−30.46%97
行业双动量(周频,不含 XLK15.11%0.79−31.60%121

CAGR 从 21.48% 跌回 15.11%,交易次数从 97 上升到 121——没了科技板块,策略在剩余行业之间更频繁地切换,换来了更差的复利。

结论很清晰:这条策略的超额收益高度依赖科技板块参与。它不是一条均匀分散的行业趋势策略,更准确的描述是:允许科技板块以最强行业的身份主导持仓,并在科技失势时切换出去。这个机制是真实有效的,但它的超额回报来源更接近"带战术离场机制的纳指暴露",而不是一个与科技板块涨跌无关的独立超额来源。


长窗口:近年的赢家在 2010-2018 跑不过 QQQ

到这里,还有关键的一步没有做:把时间拉长,看这条逻辑是否稳健。

需要说明的是,252 日这个动量窗口参数是在 2018–2026 的数据上观察选定的。把同一套参数延伸到 2010–2026 是一个合理的健壮性检验,但这段更长的历史并不是完全独立的样本外测试,结果需要带着这个前提来读。

不改任何参数,只把回测起点从 2018-01 改到 2010-01

策略样本窗口CAGRSharpe最大回撤
QQQ 持有2010/01–2026/0418.18%0.90−35.12%
行业双动量(周频)2010/01–2026/0412.31%0.70−30.46%

短窗口里三项全赢,长窗口里 CAGR 差了将近 6 个百分点,Sharpe 也输了,只剩下轻微的回撤优势。

为什么?20102018 年,美股行业格局和之后有明显差异。能源和金融板块在前期占据了相当长时间的相对强势位置,科技板块直到 2016-2017 年前后才开始系统性领跑。在那段时间里,用 252 日动量做行业轮动,很可能在持有能源或金融的过程中,错过了科技真正起飞的早期阶段,积累了复利损耗。

这说明这条策略有一个适用边界:在"某个行业长期保持相对强势"的市场结构里更有效;在行业分化更碎片化的历史阶段,表现会明显下降。


这期实验真正留下来的

这期研究共跑了 9 条实验路线(另外 2 条是 QQQ 基线),最后在研究记录里留下了三类结论:

样本内达标(1 条):S2,行业双动量周频版,在 2018/01–2026/04 样本窗口里同时打赢了 QQQ 的 CAGR、Sharpe、最大回撤三项指标。这个"样本内达标"标签的含义只是"在此窗口三项全部满足条件",不等于"这条策略已被证明可以采用"——它有明确前提:主要依赖科技板块在这个窗口内的主导地位,且在更长窗口(2010/01–2026/04)里优势消失。它是一条在特定市场结构下有效的路线,而不是一条跨市场环境普遍成立的策略。

rejected(4 条):M2(月频多资产,降低换手的代价是 CAGR 大幅退化、归因更集中)、M4(周频+相对防御触发,与 M3 结果完全相同,证明这种防御逻辑在结构上是多余的)、S3(去掉科技板块后超额收益消失)、S4(长窗口验证失效)。

inconclusive(4 条):M1(日频多资产,Sharpe 和回撤有改善,但 CAGR 落后且换手偏高)、M3(周频多资产,行为折中,但防御角色仍不清晰)、M5(周频+绝对防御触发,结构方向成立,但 CAGR 仍落后于 QQQ)、S1(行业月频,Sharpe 和回撤优于 QQQ,但 CAGR 落后)。

rejected 的案例告诉我们哪些方向不值得继续投入。inconclusive 的案例说明结构改进是真实的,但边界在哪里。样本内达标的案例也附带了必须说清楚的局限——它的超额回报来源比标题看起来更集中。这三类结果同样重要。

一句话总结这期实验的答案:在 2018/01–2026/04 这个窗口,行业双动量周频版(S2)能够同时跑赢 QQQ 的收益、Sharpe 和回撤——但它依赖科技板块主导,换一个市场结构就不成立了。


这期之后,下一步该问什么

这期实验的结论指向了一个有点让人不舒服的地方:用主动动量轮动打赢 QQQ,比想象中难得多——唯一达标的路线还有明显的结构性依赖。

这会引出一个自然的追问:既然 QQQ 这么难对付,直接定投 QQQ 岂不就是答案了?

这个想法听起来合理,但值得认真检验一遍。定投(DCA,Dollar-Cost Averaging)的核心逻辑是用时间摊平成本、消除择时风险——在教科书里几乎是散户投资的标准答案。但有几个问题这份教科书没有认真回答:不同入场时机对最终结果的影响到底有多大?连续大幅回撤期间的行为成本是否被算进去了?定投 QQQ 和定投更分散的宽基指数,长期实际差距是多少?

下一期想从数据出发,认真核查这些问题,而不是把定投当成理所当然的最优答案。


如果您想继续围观后续实验:


重要提醒:本文所有内容仅为学习研究用途,不构成投资建议。用户应独立做出投资决策并承担相应风险。