作 者:老余捞鱼
原创不易,转载请标明出处及原作者。

文中示例仅用于技术讨论,不构成任何操作建议。
量化策略开发应以学习和技术交流为目的。
本号不荐股、不卖课、不承诺收益。
市场有风险,请合法合规投资。
本文约 3200 字 | 阅读预计需 8 分钟,后附完整源代码下载,建议先收藏
· · ·
每个做量化的人,都看过那种”均值回归 vs 趋势跟踪”的策略说法。核心论点来来回回就那几个:均值回归赢多输少,但偶尔挨一刀狠的;趋势跟踪天天输小钱,抓到趋势就一把回本。两条截然不同的盈亏分布,理论期望值却差不多,选哪个全看性格。
说法听起来很顺。但仔细想想,这玩意基本没经过严格验证,图是随手画的,备注里写着”比例失真、暂无数据”。所以我真的去跑了一遍:RSI(2) 均值回归,对阵 50/200 均线交叉的趋势跟踪,都是纯做多,都在 SPY 上,时间跨度 2000 年 1 月到 2026 年 7 月。哪些说法扛住了数据,哪些破了,下面一条条说。
回测设计:两个策略怎么比
先看参数,这组对比能做到”苹果对苹果”。
均值回归:RSI(2) 超卖超买(Connors 风格)。RSI 窗口 2,超卖线 10,超买线 70。入场条件是 RSI(2) < 10,出场条件是 RSI(2) > 70 或者价格收复 5 日均线。短线反弹逻辑,典型的高胜率打法。
趋势跟踪:50/200 均线交叉。快线上穿慢线做多,快线下穿慢线离场。教科书级的趋势跟踪,没有额外过滤。
两个策略都只用多头方向,回测工具是 vectorbt,初始资金 10 万美元,手续费 0.01%,滑点 0.02%。成本假设完全一致,谁也别占便宜。
代码逻辑不复杂,核心就是这个循环:下载 SPY 日线,算指标,生成信号,跑组合,输出统计。真正有意思的是跑出来的数字。
分布形态:说法的那部分是对的
先看交易级别的盈亏分布。这是整个策略逻辑里最常被拿来画图的地方。
均值回归 26 年里一共交易了 691 笔,趋势跟踪只有 27 笔。数量级差这么多,后面很多结论都要打折看。
跑出来的偏度和峰度:
- 均值回归:偏度 -2.553,峰度 27.051
- 趋势跟踪:偏度 0.973,峰度 1.081
偏度为负,说明左边尾巴特别肥,均值回归经常小赚,但偶尔挨一刀狠的,能把好几笔利润一起吃掉。峰度 27 是个什么概念?正态分布峰度是 3,27 意味着极端值密集到离谱。策略里说的”被打脸”,这里被量化成了具体的分布形状。
趋势跟踪正好反过来:偏度为正,右边尾巴肥,峰度 1.08 接近正态。它亏的次数多还是少后面再辩,但”偶尔大赚”这个特征,数据里确实有。
所以策略里画的形状是对的。这是少数几个说法能完全经得起数据检验的结论。

均值回归(左)与趋势跟踪(右)的净值、回撤和逐笔盈亏对比。
绩效数据:赢率、赔率、暴露度
看具体指标之前,先明确一个背景:2000 到 2026 年的 SPY,整体是震荡向上的牛市,中间插了 2008、2020 和 2022 三次明显回撤。长期多头资产上跑纯做多策略,先天占优。
| 指标 | 均值回归 (RSI-2) | 趋势跟踪 (SMA 50/200) | 买并持有 |
|---|---|---|---|
| 年化收益 | 5.69% | 6.21% | 8.27% |
| Sharpe Ratio | 0.572 | 0.674 | 0.613 |
| Sortino Ratio | 0.855 | 0.916 | 0.868 |
| 最大回撤 | 33.25% | 34.26% | 55.19% |
| 胜率 | 70.33% | 61.54% | – |
| 平均盈利 | 1.08% | 15.23% | – |
| 平均亏损 | -1.77% | -5.68% | – |
| Profit Factor | 1.49 | 3.95 | – |
| 总交易数 | 691 | 27 | – |
| 市场暴露 | 30.4% | 67.8% | 100% |
几个数字值得单独拎出来说。
第一,趋势跟踪的平均盈利 15.23%,是均值回归 1.08% 的 14 倍。单笔交易的”赔率”差距巨大。但它的胜率只有 61.5%,不是策略里说的”多数交易亏钱”。
第二,均值回归的平均亏损 -1.77% 比平均盈利 1.08% 还大。它之所以赚钱,纯粹是因为 70% 的胜率在扛。结构上很脆弱:如果市场制度变了,胜率从 70% 掉到 55%,这个策略就会亏钱。因为单笔赔率本来就是负的。
第三,两个策略的 Sharpe 和 Sortino 都比不上买并持有。买并持有的最大回撤最难接受(55%),但收益也最高。两个主动策略用更小的回撤,换来了更低的绝对收益。

趋势跟踪策略绩效统计:27 笔交易,1 笔仍在持仓中。
哪里开始变得有趣:赔率的骗局
趋势跟踪的 profit factor 是 3.95,均值回归只有 1.49。这意味着趋势跟踪赚的每一分钱,对应亏损只有 0.25 分;均值回归则是 1 分盈利对应 0.67 分亏损。从风控效率看,趋势跟踪完胜。
但均值回归的问题不在于亏大钱,而在于它赚钱的逻辑太单一。70% 胜率听起来很美,可单笔期望值是 0.7 × 1.08% + 0.3 × (-1.77%) = 0.756% – 0.531% = 0.225%。每笔交易只赚 0.225%。为了覆盖手续费和滑点,它必须交易得非常频繁。691 笔交易,平均 2.4 个交易日一笔,手续费累计接近 2.8 万美元。
趋势跟踪 27 笔交易,手续费只要 1 千多美元。同样是 10 万本金,交易成本的差距近 30 倍。
这就是高胜率策略的隐藏代价:胜率是表象,交易频率和成本结构才是里子。

均值回归策略绩效统计:691 笔交易,全部已平仓。
最常见的说法哪里站不住脚
策略里最常见的论点是:”趋势跟踪多数交易是亏的,但趋势会给我们带来可观的回报。”
数据:61.54% 的胜率,多数交易是赢的。
这不是个小偏差,论点根基被数据直接推翻。说这个话的人可能把”趋势跟踪”泛化到了所有市场、所有周期,而我的回测只是 SPY 这一个资产、这一个 26 年窗口。制度偏差在这里很明显:2000-2026 年 SPY 整体向上,纯做多的趋势跟踪天然更容易抓到真趋势,假突破相对少。
另一个问题是样本量。27 笔交易,去掉还在持仓的 1 笔,有效样本 26 笔。其中任何一笔异常值,都能把胜率上下拖动好几个百分点。相比之下,均值回归 691 笔,统计显著性高得多。
把趋势跟踪的结论看成”真理”,还早得很。它需要跨资产、跨周期、跨制度的进一步验证。

交易级别盈亏分布的偏度与峰度量化结果。
买并持有:最被忽视的对手
一个让很多策略开发者不舒服的事实:在 2000-2026 年这个窗口里,买并持有 SPY 的年化收益 8.27%,两个主动策略都没跑赢。
均值回归 5.69%,趋势跟踪 6.21%。差距不大,但确实是差距。
原因很直接:两个策略都有一段时间空仓。均值回归 69.6% 的时间持币,趋势跟踪 32.2%。每次空仓,都是在错过一段上涨。长期牛市里,”在场”本身就是最强的策略。
但买并持有的最大回撤 55.19%,不是每个人都能扛过去的。2008 年从高点跌 55%,你要么在底部割肉,要么全程硬抗。行为金融学告诉我们,大多数人扛不住。两个主动策略用 33%-34% 的回撤,换来了更平滑的净值曲线。值不值,取决于你的风险偏好,以及你能不能在 55% 回撤时依然持仓不动。
最终结论
先给结论,再说理由。
第一,分布形态的经典描述基本成立。均值回归就是”很多小赢+偶尔大亏”,趋势跟踪就是”很多小亏+偶尔大赢”。这是数据里最稳的结论。
第二,趋势跟踪”多数交易亏钱”这个说法,在本组数据里不成立。它的胜率是 61.5%,多数交易其实是赢的。这个说法被夸大了。
第三,均值回归是”胜率驱动”策略,单笔期望值为正的前提是胜率维持在高位。一旦胜率下滑,它会迅速变成亏损策略。趋势跟踪是”赔率驱动”策略,虽然样本小,但风控效率更高。
第四,两个策略都没有跑赢买并持有。在长期向上的资产上,减少”在场时间”的代价是机会成本。主动策略的正当性,只能用”更小回撤”和”更好睡眠”来辩护,不能用”更高收益”。
第五,样本量太小说不了太多话。在把任何策略结论推广到其他资产、其他周期之前,先问自己:样本够不够大?制度偏差有没有排除?
本文不在于告诉你哪个策略更好,而在于提醒你:很多流传很广的说法,其实只是没有数据支撑的想当然。跑一遍数据,答案可能和你想的不一样。
完整回测代码(Python)
以下是本次回测的完整代码下载地址,基于 vectorbt 框架,需要 pip install vectorbt yfinance。核心思路:同一标的、同一时间段、相同成本假设,对比 RSI(2) 均值回归策略与 50/200 均线交叉趋势跟踪策略的绩效差异。
https://www.laoyulaoyu.com/code/20260802da4e.zip运行前请确保安装依赖:pip install vectorbt yfinance pandas numpy plotly。回测结果会输出绩效统计、偏度峰度数据,以及三联可视化图表。如需调整策略参数(RSI 窗口、均线周期、手续费滑点),直接改掉顶部的常量定义即可。
回测工具:vectorbt,标的 SPY,2000-01 至 2026-07,纯做多,手续费 0.01%,滑点 0.02%
#量化策略 #均值回归 #趋势跟踪 #SPY #策略回测 #RSI #均线交叉 #绩效归因 #交易系统 #胜率陷阱
Be First to Comment