一、过拟合的本质:到底什么是过拟合?

说实话,我入行做量化那会儿,对过拟合的理解特别肤浅。

就觉得——模型在历史数据上表现好,不就是好策略吗?

后来被市场狠狠教育了几次,才明白:过拟合,就是你让模型记住了历史,却没学会规律。

用大白话说:

  • 你让模型背下了过去10年的考题答案
  • 但考试题目稍微变一变,它就懵了
  • 因为它根本没理解解题思路,只记住了答案本身

在量化策略里,过拟合就是:策略在回测时跑得漂亮,一到实盘就拉胯。

核心定义:过拟合是指模型在训练数据(历史行情)上过度优化,学到了噪声而非信号,导致在未知数据(未来行情)上泛化能力急剧下降。

1.1 量化策略中的过拟合长什么样?

我举个例子,你感受一下。

假设你开发了一个均线策略:

  • 回测5年,年化收益35%,最大回撤8%
  • 夏普比率2.8,胜率62%
  • 资金曲线几乎45度向上

是不是看着特别诱人?

我当时看到这种回测结果,第一反应就是——发财了!

结果实盘跑了3个月,亏了15%。

为什么会这样?

因为回测里的完美曲线,很可能是你反复调参数调出来的。你想想看:

  • 把均线周期从20改成21,收益变高了,就保留21
  • 把止损从5%改成4.5%,回撤变小了,就保留4.5%
  • 把持仓周期从3天改成4天,胜率提高了,就保留4天

你每调一次参数,其实都在让模型更「记住」那段历史数据。调得越多,过拟合越严重。

⚠️ 警惕信号:如果你的策略参数组合恰好完美避开了所有大跌,或者在某些极端行情下收益异常高——这往往是过拟合的典型特征。

1.2 过拟合的数学本质

从数学角度看,过拟合就是模型复杂度超过了数据的信息量。

我习惯用一个公式来理解:

模型误差 = 偏差² + 方差 + 噪声
  • 偏差:模型对真实规律的拟合程度。偏差高说明欠拟合,没学到东西
  • 方差:模型对数据波动的敏感程度。方差高说明过拟合,学得太细
  • 噪声:数据本身不可预测的部分

过拟合就是:方差过大,模型把噪声当成了信号。

举个例子:

  • 你用线性回归拟合股价趋势,这是低方差、高偏差——可能欠拟合
  • 你用10次多项式去拟合同样的数据,这是高方差、低偏差——大概率过拟合

量化策略里,参数越多、规则越复杂,方差就越大,过拟合风险就越高。

1.3 过拟合的常见表现

我在项目中遇到过不少过拟合的策略,总结下来有这几个特征:

表现 具体现象 我的判断方法
回测完美,实盘崩盘 回测夏普3.0+,实盘夏普0.5以下 看样本外表现是否断崖式下跌
参数敏感度极高 参数微调1%,收益波动超过20% 做参数敏感性分析,看是否平滑
策略复杂度异常 用了20个以上条件过滤,规则嵌套多层 检查策略逻辑是否可解释
样本内vs样本外差距大 样本内收益30%,样本外收益5% 严格区分训练集和测试集
策略在特定行情下表现异常 只在2015年牛市有效,其他年份都亏 分时段回测,看稳定性

💡 我的经验:判断一个策略是否过拟合,最简单的办法就是——把回测周期分成两半,前半段训练,后半段验证。如果后半段收益明显低于前半段,那基本可以断定过拟合了。

1.4 过拟合的根源

为什么会过拟合?说白了就三个原因:

  1. 数据太少,参数太多
    • 比如你只有3年数据,却用了50个参数
    • 每个参数都能在历史数据上找到「最佳值」
    • 但这些最佳值只是巧合,不是规律
  2. 反复优化,过度挖掘
    • 回测不好就调参数,调完再回测
    • 循环几十次,总能找到一组「完美参数」
    • 但这组参数只对历史数据有效
  3. 忽略了交易成本
    • 高频策略如果忽略滑点和手续费
    • 回测收益会被严重高估
    • 实盘时这些成本会吃掉所有利润

我曾经犯过一个典型的错误:开发了一个日内动量策略,回测年化50%。我兴奋得不行,结果实盘跑了两个月,收益只有回测的十分之一。后来一查,原来是回测时没算滑点,而我的策略每天交易十几次,滑点直接把收益吃光了。

嗯,从那以后,我每次回测都会把交易成本算得特别保守。

1.5 过拟合与欠拟合的对比

为了让你更清楚,我画了个对比表:

维度 过拟合 欠拟合 理想状态
训练集表现 极好
测试集表现
模型复杂度 过高 过低 适中
参数数量 合理
泛化能力
实盘表现 大概率亏损 平庸 稳定盈利

你想想看,过拟合和欠拟合其实都不好。但说实话,在量化领域,过拟合比欠拟合更可怕。因为欠拟合至少你知道自己没做好,不会贸然实盘。而过拟合会让你产生虚假的信心,真金白银往里砸,结果亏得底朝天。

1.6 本章知识体系

下面这张图,是我梳理的过拟合知识框架,你可以对照着理解:

过拟合知识体系 过拟合的本质 定义:学到噪声而非信号 数学本质:偏差-方差权衡 表现:回测好实盘差 历史数据拟合过度 泛化能力差 方差大,偏差小 模型复杂度高 参数敏感度高 样本内外差距大 过拟合的三大根源 数据少,参数多 反复优化,过度挖掘 忽略交易成本

💡 一句话总结:过拟合就是模型记住了历史的「噪音」,却错过了真正的「旋律」。做量化策略,宁可策略平庸一点,也别让它「太聪明」——因为市场最擅长的,就是惩罚那些自以为聪明的策略。

专注资料整理