有一种交易系统,在复盘软件里光彩夺目。它的净值曲线平滑上扬,最大回撤被控制在一个让人安心的窄幅区间内,月度胜率稳定在较高水平,夏普比率足以让任何理性的资金管理者多看两眼。但它一旦被投入实盘,就迅速衰败,仿佛离了那一段历史行情就无法呼吸。这个现象有一个人人皆知的名字——过度拟合。可知道名字代表不了什么。真正需要理解的是过度拟合是如何在无意识中发生的,为什么它的形成过程让人几乎无法察觉,以及更关键的一点:那些最终注定失效的系统,在构建者的主观感受里,和那些真正稳健的系统到底有什么不同。01那个“走固定路线的孩子”要理解过度拟合,也许可以用一个脱离金融市场的例子来入手。设想有人要教一个孩子辨认什么是可以吃的蘑菇。方法是在一片特定的森林里,每天带着孩子走固定的路,每次沿路指着同一批蘑菇,反复告诉他“这些可以吃、那些不行”。孩子很快就会记住答案,走那段路时几乎不会出错。你测试他,他每次都做出了正确的判断。但问题在另一个层面:孩子到底学会了辨认蘑菇,还是只学会了在这条路上认出哪些蘑菇(之前被指过的)?一旦换一片森林,光照角度不同,土壤湿度不同,蘑菇的颜色和形态发生了细腻变化,他之前积累的全部成功经验,就可能集体失灵。过度拟合的交易系统,本质上就是这个走固定路线的孩子。他在历史数据里表现得极其出色,不是因为他提炼出了稳定的市场规律,而是因为他捕捉到了那段数据中特有的噪音模式、特定时间区间的偶然特征,以及只属于那一段样本的、不会在未来重复的特殊结构。02数据太顺手,微调太诱人过度拟合往往不是因为构建者不懂理论,而是因为数据太顺手。当你反复调整同一套数据上的参数配置,系统每次都能多多少少有一点提高:回撤再降一点点,胜率再提一点点,曲线再平滑一点点。这些微小进步的积累会让你产生强烈的错觉——系统还在变好。但每一次微调,都在增加系统对这段特定数据的依附。也就是说,它在变得更好,同时也在变得更脆弱。这两个方向并行发生,后者被埋在持续改善的表面证据之下,难以被直接观测。更隐蔽的是,许多调整是在无意中完成的。一位投资者用历史数据测试策略,发现某个时间框架下表现不佳,于是换了一个参数;发现某个品种表现不好,于是剔除了那个品种。每一次调整都有合理解释,但累积下来的系统,已经不是在某一普遍性逻辑上运行,而是在经历一次后台式的排除法,把不好看的点都修掉了。03如何察觉过度拟合?那么在实践中怎么察觉过度拟合?一个被反复提及的方法是样本外检验。将历史数据分成两段,只用前一段做规则开发和参数选择,另一段完全不参与构建过程,只用来做最终验证。这套方法在理论上很清晰,但在实际中会遇到阻力。个人投资者可用的历史数据本来就不多,很难真正做到完全不偷看。许多样本外检验最后变成了滚动式样本内:看一眼样本外表现,回来再微调再测再看,直到样本外的曲线也变得平滑。实质上仍然是拟合,不过换了个马甲。更有鉴别力的方法,不是依赖某一种检验技术,而是去审视策略逻辑本身的“可迁移性”。一个简单有效的检查,是问自己:这个策略试图捕捉的市场现象,是否可能在不同时代、不同市场结构中依旧存在?它是依赖某个具体的价格阈值,在历史数据中反复触发并盈利;还是依赖一种更底层的行为倾向,比如恐惧的传染、拥挤的逆转、流动性的季节性收缩?这些倾向虽然也在变化,但变化的根源更接近人性或制度结构。逻辑上,越靠近底层行为倾向的策略,对特定历史噪音的依赖通常越小。相反,如果一个策略的盈利几乎全部依赖几个特定的参数组合,那么它较高的回测业绩往往应当被更谨慎地看待。04最大的伤害:确定感的崩解过度拟合所带来的最大伤害,也许并不在于亏掉多少钱,而在于它导致投资者对策略的回归信心偏离了合理水平。回测中过于优美的曲线会制造一种确定感,而在真实市场里,这种确定感会在一波未经回测见过的行情中突然崩解。崩解时刻,真正损害的不只是账户,还有投资者继续坚持系统化道路的信念。有人因此完全放弃规则,转向另一个极端——只凭感觉交易。而这个转折,比过度拟合本身更难以修复。05如何划定优化的边界避免过度拟合不意味着放弃优化系统。优化系统当然需要优化,但优化的边界需要被清醒地划定。一种惯是:规则变动必须对应明确的逻辑解释,而不是单纯为了改善回测曲线。另一种惯是:对每一个被加入的过滤条件或筛选规则,都要求它在多段不重叠的数据区间上分别展示出超额收益贡献,而不是只在全样本上看起来有利。也有长期实践者建议:每隔一段时间主动抽查系统在原始未修改状态下的模拟表现,用来检验这些年来的层层修改是否真的在增强系统,还是只是在延长拟合的链条。这些做法无法根除过度拟合的倾向,因为这个倾向本身就和人类寻找模式的本能捆绑在一起,但它们可以把它限制在一个不至毁灭的范围里,让进化不至于偷偷滑向退化的方向。06结语如果说过度拟合是系统在逻辑层面的脆弱性,那么另一种致命的脆弱发生在更缓慢、更不易察觉的过程中:系统不是在一夜之间崩溃的,而是在长期运转中一点一点被看不见的变化蛀空。下期预告:构建可进化的交易系统(十一):系统不是在瞬间崩溃的,而是在不知不觉中腐烂