过拟合(又称过度拟合、曲线拟合)是指交易策略的规则被调整得与历史价格过于吻合,以致描述的是那段历史中的随机噪声,而非可重复出现的市场规律。过拟合的策略在建模所用的数据上表现出色,在未曾见过的数据上却令人失望,因此仅凭一份漂亮的回测结果,几乎无法证明任何事情。
形成原因
价格历史既包含可重复的规律(例如持续数月的趋势),也包含噪声:偶发消息、时间上的巧合、随机出现的连续盈亏。条件很少的规则只能捕捉大致规律;每增加一个条件、过滤器或经过调校的参数,规则便多一分迁就个别历史交易的自由,而在回测中,对噪声的拟合与真实利润看起来毫无二致。
这种自由增长得极快。一条规则含 5 个参数、每个参数尝试 6 个取值,即有 7,776 种组合,其中总有一种在几乎任何数据上都显得出色。在同一段历史上尝试和比较的版本越多,胜出者的结果中运气成分就越大,这正是过拟合在量化中的主要危害:让人误把运气当成优势,并据此投入真实资金。
典型迹象
- 结果过于平滑:胜率极高、回撤极小,或盈利因子远高于同类规则的常见水平。
- 参数异常精确:例如 37 日均线、6.4% 止损,除「检验结果最好」外别无理由。
- 参数呈孤峰:选定的取值有效,相邻取值却表现很差。
- 交易笔数过少:三十笔交易分摊到多个条件上,每个条件仅有寥寥数例支撑。
- 事后添加规则:为剔除去年亏损交易而设的过滤条件,必然会改善去年的结果。
样本内与样本外检验
样本内是指用于设计和调校规则的数据;样本外是指事先搁置、在规则定稿前不予查看的数据。只有样本外结果能说明规则在未经拟合的行情中表现如何。最简单的做法是两期检验:在某个固定日期将历史一分为二,用前一段(规则期)建立规则,规则定稿后在后一段(检验期)上只运行一次。若根据检验期结果回头修改规则,这段数据即变为样本内数据,保护作用随之消失。学院课程过度拟合与检验期对此有详细讲解。
滚动前推分析
滚动前推分析(walk-forward analysis)是将这种两期检验重复多次:先在样本内窗口中调校规则,再在紧随其后的时段检验,然后将两个窗口同时向后移动并重复。例如,数据覆盖 2010 至 2024 年,样本内窗口 5 年、检验窗口 1 年:在 2010–2014 年调校、2015 年检验,再在 2011–2015 年调校、2016 年检验,依此类推,共得到 2015 至 2024 年的 10 个一年期检验。将这些检验年份连接起来,即构成一段样本外记录。它检验的是包括参数选择方式在内的整套流程,而非某一个固定参数。
平台与孤峰
真实的规律很少只依赖一个精确数值。若 50 日突破之所以有效是因为趋势具有持续性,那么 40 日和 60 日也应大致有效,结果呈现为平台。运气则只落在某一个取值上,相邻取值并不受益,形成孤峰。因此,参数扫描应看整体形状,而非只看最优的一格,具体方法参见课程参数扫描:平台与孤峰。
多重检验与数据窥探
每个回测结果都是优势与运气的混合。只做一次检验,运气带来的影响有正有负;做五十次再挑最好的一次,胜出者恰恰是运气帮助最大的那一个。举例而言,20 条毫无优势、彼此无关的规则,若各自按 5% 的显著性水平判断,至少有一条仅凭运气通过的概率约为 64%。数据窥探是同一效应在时间上的延续:在同一份数据上反复尝试新想法,直到某个想法「奏效」。
示例(示例数字,仅作说明)
| 虚构的规则版本 | 参数个数 | 样本内:笔数与期望值 | 样本外:笔数与期望值 |
|---|---|---|---|
| 简单版:突破、止损、离场 | 3 | 150 笔,+0.15R | 140 笔,+0.10R |
| 调校版:研究亏损交易后再加 4 个过滤条件 | 7 | 40 笔,+0.50R | 35 笔,−0.05R |
以上数字均为虚构,仅用于说明规律。过滤条件使样本内期望值提高到原来的三倍以上,同时大幅减少了交易笔数;只运行一次的样本外检验则表明,这部分提升来自对过去的拟合。简单版在样本外有所减弱,这是多数规则的常态,但整体特征得以保持。
如何防范过拟合
- 先写下规则及其逻辑依据,再进行检验,并将其纳入交易系统。
- 参数宜少,取值宜取整,优先选择在一段参数区间内均有效的规则。
- 交易笔数要充足:覆盖不同市况的数百笔交易,远比几十笔更有说服力。
- 计入真实成本:微弱的优势在扣除佣金与滑点后往往不复存在。
- 样本外数据保持未经触碰,且只使用一次;记录尝试过的全部版本,包括已放弃的版本。
- 检查数据本身是否存在幸存者偏差与前视偏差,参见课程数据陷阱。
局限与常见误区
- 通过样本外检验并不等于得到证明:它降低了纯属拟合的可能,但市场会变化,实盘结果通常弱于检验结果,参见从回测到实盘。
- 反复查看检验期再修改规则,会在不知不觉中把它变成样本内数据。
- 只看单一指标:以盈利因子或胜率最高为目标极易导致曲线拟合,应将期望值、交易笔数与回撤结合判断。
Clear Tape 中的呈现
在交易系统 › 回测中,两期检验先以规则期(2000–2014 年)评估系统,再将其原样运行于检验期(2015 年至今),并与买入持有同一批股票进行比较,最终给出四种结论之一:两期均跑赢、部分跑赢、未跑赢持有或数据不足。参数扫描最多支持两个参数,且仅在规则期内运行,检验期因此始终保持未见;每项结果均披露交易成本与幸存者偏差。规则可从系统库起步,库中每条公开规则均注明出处。免费会员每天可回测一条系统库规则;Tools 会员每天可运行 20 次回测与 3 次参数扫描,Pro 会员为 50 次与 10 次(会员方案)。
检验只覆盖写下来的规则。系统投入实盘后,免费的交易日志会将每笔交易归入所属系统,按系统或交易形态分别统计;AI 交易评分则逐笔检查交易是否遵守了该系统的规则。这样,实盘结果对照的是经过检验的规则,而非执行过程中临时改动的版本。
仅供学习与参考,不构成投资建议。