📊 研究报告 · 原创实证 · 第 7 篇

海龟突破:walk-forward 之后还剩多少

——一个"跑赢"的策略,被劈成两半之后

阅读时间:约 12 分钟 | 标签:#样本外验证 #过拟合 #参数稳定 #适用范围

类型:原创实证研究 | 数据区间:2014 年 4 月 – 2026 年 8 月 系列:私家智囊·研究 第 7 篇 | 成稿:2026 年 9 月


⚠️ 阅读须知(请先读完这一段)

  1. 本文不是投资建议,也不构成对任何证券或产品的评价。 本文讲的是一个策略检验过程,不涉及任何可照搬的操作规则。
  2. 本文所有数字都是历史回测结果,不是收益预测,也不表示未来会发生同样的结果。
  3. 本文的结论带有明确的适用边界:该策略只在特定一类宽基指数上做过验证,其他标的全部不适用。
  4. 本文对个股样本采用匿名化处理,不列出标的名称;指数与宽基工具按其指数名称表述。
  5. 本文的方法与数据来源见文末,欢迎复核。

引子:一份"成功"的报告

有一份回测报告的结论是这样写的:

该策略在目标标的上跑赢买入持有 +13.6 个百分点,年化收益更高、最大回撤不到基准的一半。 参数稳定性好,前四名由同一组参数包揽。

看起来是一份成功的报告。它也确实在内部通过了全部校验:归因恒等式 125/125 全部通过,成交价用次日开盘(无前视),成本模型完整。

然后我做了一件事:把它按时间劈成两半。

前一半(2014–2020)和后一半(2021–2026),分别重算。

结果,那份"成功"就不成立了。


一、先说结论

  1. "跑赢"这个词,不把时间切开看是没有意义的。 全样本跑赢 +13.6 个百分点,但劈开之后,全部优势集中在前七年。
  2. 样本外年化从 12.88% 降到 1.07%(历史回测口径,非收益预测)。 后六年几乎走平。优势不在策略里,在前那七年里。
  3. 参数稳定 ≠ 策略稳健。 同一组最优参数在两支同类指数上包揽前四名,却在另一类指数上 0/25 全败。
  4. 同一个过滤器,在两个标的上方向相反。 在这里"越严越差",在那里"越严越好"——过滤器的方向由标的决定,不是由它自己决定。
  5. 这套方法在个股上更糟,而且是可解释地糟。 一句话:越牛越惨。

二、先说清楚"劈成两半"是怎么回事

这个方法有一个正式名字:walk-forward 验证(滚动推进验证)。

做法很朴素:把数据按时间切成前后两段,前一段用来"找参数",后一段用来"考试"。 考试那一段,策略是没见过的。

它和普通回测的区别,用一句话说清:

普通回测问的是"这套规则在过去表现得怎么样"。 walk-forward 问的是"在一段它没见过的未来里,它还成不成立"。

这两件事的差别,比大多数人以为的大得多。因为在普通回测里,只要你愿意试足够多的参数组合,总能找到一组在过去很好看的东西——这不证明任何事。

本文这项研究里,一共试了 125 组有效参数组合。125 组里挑出最好的一组,然后拿它的全样本成绩当结论——这本身就是问题。

walk-forward 就是专门用来拆这个问题的。

(关于"为什么不能先看结果再定标准",本系列第 5 篇《先写死标准,再跑数据》有完整的规程。)


三、全样本看起来是成功的

先看它没被劈开时的样子:

指标 该策略 买入持有
年化收益 7.38% 6.87%
累计收益 +140.0% +126.4%
最大回撤 29.5% 约 63%
与基准之差 +13.6 个百分点 ✅ —

注意两个数字的对比:收益只多了一点点,但最大回撤从约 63% 压到 29.5%。

这个形状和本系列第 6 篇(铜策略)里看到的一模一样:这类工具真正改善的是"最坏情况",不是"平均水平"。

而且它的参数稳定性看起来很好——最优的四个组合全部来自同一组长周期参数,不是散乱的、互相矛盾的碎点。

到这里,一切都很像成功。


四、劈开之后:优势全部在前一半

现在把它按时间切开:

区间 年化收益 最大回撤 风险调整后性价比
前一段(2014–2020) 12.88% 29.5% 0.87
后一段(2021–2026) 1.07% 23.0% 0.15
全样本 7.38% 29.5% 0.59

后一段的年化是 1.07%。 这个数字意味着什么?

意味着跑了六年的策略,累计收益几乎和"什么都不做、只是把钱放在那里"接近——而它还要承担交易成本、承担踏空风险、承担每天盯信号的精力。而同期后一段的最大回撤仍然有 23%。

衰减幅度:11.81 个百分点。

这句话要说三遍

优势不在策略里,在前那七年里。

前七年是趋势清晰、波段分明的市况——趋势跟踪类方法在这种环境里天然占优。后六年转入震荡走弱,同一条规则就开始原地磨损。

这不是"策略变差了",而是"那段时间结束了"。 而一份只报全样本数字的报告,会把这两件事混成一件。


五、参数稳定 ≠ 策略稳健

接下来这一步,是最能说明问题的一步。

我把同一套方法、同一套参数网格,搬到另一类宽基指数上重跑。

标的类别 最优参数是否落在同一族 结果
第一类宽基指数 ✅ 前四名全部由同一组长周期参数包揽 跑赢基准
第二类宽基指数 ❌ 0/25 全败 跑输基准

同一组参数,在一个市场里包揽前四名,在另一个市场里 25 次尝试全部失败。

参数稳定,只说明"在这段数据里它不自相矛盾";它不说明"换个地方还成立"。

为什么会这样?因为两类指数的波动特征不一样: - 一类振幅大、趋势波段分明 → 长周期通道能吃到完整波段; - 另一类趋势更平缓、回调更深 → 长周期通道反复被假回调洗出。

参数的有效性,是被标的的性格决定的,不是被参数自己决定的。


六、同一个过滤器,在两个标的上方向相反

研究中还测了一个"辅助过滤器"(用来判断行情是否有明确方向),结果更有意思:

标的类别 关掉过滤器 打开严格过滤器 方向
第一类宽基指数 6.14% 5.68% 越严越差
第二类宽基指数 3.62% 4.73% 越严越好

同一个过滤器,方向完全相反。

原因还是那个:第一类需要容忍震荡(过滤掉就等于切掉了它的机会),第二类需要过滤震荡(过滤掉就是它的价值所在)。

一个指标的"好"或"坏",不是它的固有属性——它是"指标 × 标的"的组合属性。

所以报告里最终把它设为默认关闭,并注明"在该类标的上净效果为负"。


七、在个股上:越牛越惨

同一套方法也在一组个股样本上跑过。这一部分本文只做降权处理,因为它的数据条件本身是降级的(详见边界清单)。

核心结果:

结果 比例 特征
跑赢基准 2 / 16 两只都是"空仓躲跌"型——躲过了一段下跌
跑输基准 14 / 16 越牛越惨

"越牛越惨"这四个字需要解释一下,因为它反直觉:

越是长期上涨的标的,这套方法跑输得越多。

原因在于它的工作机制:它靠"突破新高"进场、靠"跌破近期低点"离场。 在一只持续上涨的标的上,价格的每一次正常回调都会触发它的离场条件——它被反复"洗"出去,然后再追回来。 上涨越持续,被洗的次数越多,累计损耗越大。

而在横盘或下跌的标的上,它反而能靠"空仓"躲掉一段——这正是那两只跑赢者的共同特征。

所以它在个股上不是"收益工具",也不是"风控工具",更像一个"下跌躲避器"。 这和同类方法在另一项研究里的结论方向一致。

结论:个股不启用。


八、这条研究最后怎么给自己定界

它没有宣布成功,也没有宣布失败,而是把适用范围收得很窄:

项 结论
适用标的 仅一类宽基指数,其他指数、其他宽基工具不启用
适用角色 不独立使用,只作为已有体系的一个"第二意见"确认环节
个股 不启用(2/16 跑赢,且是躲避器而非收益工具)
参数 冻结,不再调
下一步 进入模拟盘跟踪,用真实跟踪结果决定是否小仓位实盘、继续跟踪、或停止

注意最后一行:它没有直接进入实盘,而是先进"观察期"。 观察期有明确的判定条件(要不要扩展、要不要停),以及明确的终止日期。

这是我认为这份研究最值得学的地方——它在结论里写清了"什么情况下我会承认它不行"。而不是留一句"效果良好,建议关注"。


九、这条研究的边界(诚实清单)

  1. 后一段样本几乎走平——历史回测中,后六年的年化只有 1.07%(非收益预测)。这是本研究的核心风险,必须标在结论最前面。
  2. 该方法有明确的市场环境依赖——在趋势清晰的环境里占优,在震荡环境里磨损。
  3. 参数与标的强相关,不能跨标的套用;已被两类指数的对照结果直接证明。
  4. 个股部分使用的是降级数据(缺少日内高低价),完整数据下的结论可能微调——但方向大概率不变,因为"越牛越惨"的机制来自规则本身,不来自数据缺失。
  5. 另有若干未被覆盖的因素:对照标的的复权口径与主标的构造方式不同(其绝对收益数字不具备直接可比性);融资成本、红利税、跟踪误差对实盘的影响未测试;全部结论基于 12 年样本,统计功效有限——这不是"验证通过",是"在限定条件下未被证伪"。

金句墙

优势不在策略里,在前那七年里。

"跑赢"这个词,不把时间切开看,是没有意义的。

参数稳定只说明"在这段数据里它不自相矛盾",不说明"换个地方还成立"。

一个指标的好或坏,不是它的固有属性——它是"指标 × 标的"的组合属性。

越牛越惨:它靠突破进场、靠回落离场,于是被持续上涨反复洗出去。

walk-forward 不是加分项,它是专门用来砍掉你成果的那一刀。

一份研究应该写清"什么情况下我会承认它不行"。


行动清单:检验任何"跑赢"结论的 5 个动作

  1. 按时间劈开。 前一半找参数、后一半考试;只看后一半的成绩,别只看总成绩。
  2. 数一数试了多少组合。 试了 125 组再挑最好的,和只试 1 组,结论的可信度完全不同。
  3. 换个标的重跑。 参数在同一类标的里稳不稳不重要,重要的是换一类还成不成立。
  4. 看它靠什么赚。 分清"改善了最坏情况"和"提高了平均水平"——这两件事经常被混为一谈。
  5. 要求写清终止条件。 一份没有"什么情况下算失败"的研究,等于没有边界。

本文不提供任何投资行动建议。以上清单用于读者检验本文与其他研究报告的结论。


数据来源与样本说明

★ 本文所有案例与测算均为作者基于公开数据的独立整理(原创),非引用第三方研究成果。

项目 说明
数据来源 公开行情数据(通过公开数据接口获取);宽基指数采用其跟踪指数的日线数据
数据区间 2014 年 4 月 – 2026 年 8 月(约 12 年)
拆分方式 前段用于参数选择,后段用于样本外检验
参数网格 突破周期 7 档 × 离场周期 5 档 × 止损倍数 5 档,有效组合 125 组(含周期大小约束)
样本构成 两类宽基指数(互为对照) + 一组个股样本(16 只,数据条件降级,仅作方向性参考)
成交与成本 信号日收盘确认 → 次日开盘成交;佣金双边 + 卖出税费 + 每边滑点
归因校验 期末净值 ≡ 已实现盈亏 + 浮盈 − 总成本,残差在容差内;125/125 全部通过
已知局限 样本外走平;参数与标的强相关;个股部分为降级数据;未计融资成本与跟踪误差

关于可复核性:本文不列出个股样本名称(理由见开头「阅读须知」)。但上面已给出样本类别、指数类型、参数网格、数据区间与口径处理方式——读者可据此自行构造同类样本,用同样的口径复跑。能复核的是方法与过程,不是几个名字。

本文研究对象为策略检验方法,不对任何证券或产品作出评价、推荐或投资建议。


免责声明

本文为原创研究分享,所载内容与数据均来自公开渠道,仅供学习与方法探讨之用。

本文不构成任何投资建议、要约或承诺,不指向任何具体投资标的。本文对个股样本采用匿名化处理,不列出标的名称,亦不构成个股诊断或评价。

本文所列百分比与统计量均为特定样本与特定区间内的历史回测结果,其中样本外区间的表现已接近走平,不代表未来收益,也不构成任何形式的收益预测或承诺。

投资有风险,决策需谨慎。请根据自身实际情况独立判断,并自行承担相应后果。


本文属「私家智囊·研究」系列。同系列已发布:开栏篇《从企业价值到资本配置》,第 2 篇《"跌了这么多,总该抄底了吧"》,第 3 篇《"涨得多的,以后还会涨"》,第 4 篇《怎么杀死一个看起来很赚的策略》,第 5 篇《先写死标准,再跑数据》,第 6 篇《我把自己的铜策略定级为 C 级,然后停止优化》。

← 返回研究栏目