1. 过拟合的本质:回测与实盘的鸿沟
做量化交易这些年,我见过太多人栽在同一个坑里——回测曲线漂亮得像艺术品,一上实盘就崩得亲妈都不认识。说白了,这就是过拟合在作祟。
你想想看,回测和实盘之间到底差了什么?不是数据量,不是计算速度,而是那个看不见摸不着的「未来信息」。回测时我们站在上帝视角,知道哪些参数在历史上表现好;实盘时我们只能摸着石头过河。这个鸿沟,就是过拟合的温床。
1.1 过拟合的数学本质
从数学角度看,过拟合就是模型把噪声当成了信号。我习惯用一个公式来理解:
回测收益 = 真实策略收益 + 噪声拟合收益 - 运气成分
当你的策略参数太多、优化次数太多,模型就会开始「记住」历史数据中的随机波动。这些波动在回测中看起来是规律,实盘里就是纯粹的噪音。
核心观点:过拟合的本质,是模型复杂度超过了数据的信息量。你用的参数越多,回测时间越短,过拟合的风险就越大。
1.2 我在项目中遇到的典型过拟合案例
记得有一次,我帮一个团队优化他们的高频策略。回测结果简直完美——年化收益80%,夏普比率3.5,最大回撤不到5%。团队负责人兴奋得不行,准备直接上实盘。
我多问了一句:「你们优化了多少次参数?」
他回答:「大概5000次吧,我们用遗传算法自动搜索的。」
我当时就倒吸一口凉气。5000次优化,意味着有极大的概率找到一组恰好适合历史数据的参数组合。果不其然,实盘第一周就亏了15%。
这个案例让我深刻意识到:回测表现越好,越要警惕过拟合。尤其是那些「完美」的回测曲线,十有八九是过度优化的产物。
1.3 过拟合的常见表现形式
根据我的经验,过拟合通常有这几种「面相」:
- 参数敏感度过高:参数稍微变动0.01,收益就从正变负
- 样本外表现断崖式下跌:回测期表现优异,但一换到其他时间段就崩
- 策略逻辑复杂到难以解释:用了十几个条件组合,连你自己都说不清为什么赚钱
- 交易频率异常高:为了拟合历史数据中的微小波动,策略频繁开平仓
避坑指南:我曾经见过一个策略,在回测中每年交易2000次,每次盈利0.1%。看起来稳定,但实盘时交易成本一算进去,直接变成亏损。这就是典型的「噪声拟合」——策略在捕捉随机波动,而不是真正的市场规律。
1.4 回测与实盘的鸿沟到底有多大?
我用一个表格来展示这个鸿沟的具体表现:
| 维度 | 回测环境 | 实盘环境 |
|---|---|---|
| 交易成本 | 固定值,通常偏低 | 滑点、手续费、冲击成本动态变化 |
| 流动性 | 假设无限 | 深度有限,大单会推高价格 |
| 数据质量 | 干净、无延迟 | 有噪声、有延迟、有缺失 |
| 执行速度 | 瞬间完成 | 网络延迟、排队等待 |
| 市场状态 | 固定历史区间 | 不断变化,可能出现从未见过的情况 |
你看,回测和实盘根本就是两个世界。回测是理想化的实验室,实盘是残酷的战场。过拟合就是你在实验室里造了一辆只能在特定路况下跑的赛车,一上真实公路就翻车。
1.5 如何从根源上理解过拟合?
我个人习惯用「自由度」这个概念来思考。每个参数、每个条件、每个规则,都在增加策略的自由度。自由度越高,模型越容易「记住」历史数据。
举个例子:
# 简单策略:只有2个参数
def simple_strategy(data, threshold=0.02, stop_loss=0.01):
if data.return > threshold:
return 'buy'
elif data.drawdown > stop_loss:
return 'sell'
return 'hold'
# 复杂策略:10个参数
def complex_strategy(data, t1, t2, t3, t4, t5, w1, w2, w3, w4):
score = w1 * data.feature1 + w2 * data.feature2 + ...
if score > t1 and data.volume > t2:
...
# 一堆条件判断
简单策略只有2个自由度,复杂策略有10个。自由度越高,过拟合的风险就越大。这是数学上的必然,不是靠「优化」能解决的。
我的建议:控制策略的自由度。一个经验法则是——每增加一个参数,至少需要多一倍的历史数据来验证。如果你只有3年的数据,就别用超过5个参数。
1.6 过拟合的根源:我们都在寻找「规律」
人类天生喜欢找规律。看到连续三次上涨,就觉得「趋势来了」。看到某个指标在历史上有效,就觉得「这是圣杯」。这种心理倾向,在量化交易中被放大了无数倍。
你想想看,回测系统给了我们无限次试错的机会。今天试这个参数组合,明天试那个条件设置。总有一组参数能在历史上表现优异——这不是策略厉害,是概率在起作用。
我把它叫做「数据挖掘偏差」:当你用同一组数据反复测试不同的假设时,最终找到的「有效」结果,很可能只是统计上的偶然。
1.7 本章核心框架
下面这张图展示了过拟合的本质和应对思路:
这张图清晰地展示了问题的核心:回测环境给了我们太多「便利」,这些便利恰恰是过拟合的温床。实盘环境才是真正的考场,它不会给你任何优待。
1.8 小结
过拟合不是技术问题,是认知问题。它源于我们对「完美回测曲线」的执念,源于我们低估了市场的不确定性。
记住三点:
- 回测表现越好,越要怀疑
- 参数越多,风险越大
- 历史不会简单重复,但人性会
嗯,这一章就到这里。过拟合的本质你理解了,后面我们才能谈怎么防。下一章我会聊聊「数据划分的艺术」——这是防过拟合的第一道防线。