第二部 · 策略是如何诞生的 — 第11章

策略的"厨房"——回测是什么

新菜品要先在自家厨房试做几次——回测就是策略正式上桌前的"试吃"。但厨房里的试吃和餐厅里的评价,可能完全不同。

返回目录

试吃 vs 上桌

想象你是一个厨师。你研发了一道新菜——"秘制红酒炖牛肉"。在正式端给客人之前,你会怎么做?当然是在自家厨房试做几次。调整火候、增减调料、换不同的牛肉部位——直到你觉得"差不多可以了"。这个过程,在量化交易里就叫回测(Backtest)

回测的逻辑极其朴素:拿出历史数据(比如过去5年的A股日线数据),假设自己在那个5年里按照策略规则交易了,看看结果怎样——赚了还是亏了?最大回撤多少?夏普比率怎么样?如果这个策略在历史上都赚不了钱,那你凭什么相信它在未来能赚钱?

但这里有一个巨大的陷阱——也是本章的核心主题:回测表现好,不等于实盘一定赚钱。因为你的"自家厨房"和"真实餐厅"之间有三道鸿沟:样本内外的差异、过拟合的诱惑、以及各种你根本没意识到的偏差。这一章,我们就把这三道鸿沟一个个掰开来看。

回测的三大天敌

天敌英文名一句话解释严重性
过拟合Overfitting策略对历史数据"背得太熟",把噪声当规律★★★★★
幸存者偏差Survivorship Bias只用"活着的"股票回测,忽略了退市的★★★★
未来函数Look-ahead Bias无意中用了交易时还不知道的信息★★★★

天敌一:过拟合——"背答案,不是学规律"

过拟合就像一个学生,他不是理解数学公式,而是把习题集的答案背了下来。期末考试的时候,只要换一道新题,他就彻底不会了。策略过拟合就是一模一样的事:你把均线的参数从5调到6调到7调到8……调了100次,终于找到了一个让回测曲线完美到令人窒息的小参数组合。但这不是"发现了规律"——你只是"背诵了历史数据里的噪声"。

识别过拟合的两条铁律:① 策略参数超过3个,过拟合风险指数级上升;② 样本外数据(你从未碰过的数据)上的表现远远差于样本内数据——这就是过拟合的终极判决。

天敌二:幸存者偏差——"只看活下来的,死去的看不到"

假设你想研究"A股所有股票过去5年的平均涨幅"。如果你用"当前还在交易的股票"的数据,你会得到一个严重偏高的结果——因为那些跌到退市的股票已经不在你的数据里了。就像你去采访"创业成功的企业家",然后得出"创业成功率很高"的结论——你采访的是活下来的那一批。

在回测中,如果你只用"当前还在交易的股票"构建策略,你的策略会在潜意识里高估市场收益——因为它假设你永远不会买到退市股。解决办法:回测时必须使用"时间点数据"——每个时间点只包含当时还在交易的股票,而不是回头看。

天敌三:未来函数——"用未来的信息做过去的决策"

这个陷阱非常隐蔽。假设你想回测一个策略:"财报公布第二天买入业绩超预期的公司"。你的回测脚本在1月15日"看到"了1月20日才公布的财报数据——因为你的数据库里,这份财报的时间戳标错了。于是你的回测完美地买在了低点——但实盘里,1月15日的时候你根本不可能知道这份财报的内容。

未来函数是回测中最常见的自欺欺人。它不会报错,不会警告——它只是默默地让回测结果看起来好得不真实。识别未来函数的办法:如果回测收益率高到离谱(年化100%+),先怀疑是不是未来函数。

样本内 vs 样本外——回测的黄金法则

任何回测都必须把数据分成两部分:样本内(In-Sample)——用来开发和优化策略;样本外(Out-of-Sample)——用来做最终验证。样本外数据是"期末考试",你在整个开发过程中绝对不能碰它,直到你确定策略已经定型。如果样本外表现远远差于样本内——策略过拟合,扔掉重来。如果样本外表现和样本内差不多——恭喜,你可能真的发现了某些规律。

回测黄金法则

样本内数据:占总数据的60%~70%。用来开发策略、调整参数、改进信号。你可以在这部分数据上反复试验。

样本外数据:占总数据的30%~40%。只在最终验证时使用一次。如果结果不满意——不要回去改参数!直接放弃这个策略,从头设计新的。

为什么只能碰一次?因为"碰第二次"你就已经把样本外数据当成新的样本内数据了——你只是在变相地过拟合到更大的数据集上。这叫做数据窥探(Data Snooping)

回测陷阱互动小测验

场景一:小张的"完美曲线"

小张开发了一个策略,参数组合试了200多种,最终选了一组让历史5年回测年化收益达到65%、最大回撤仅3%的参数。这个策略大概率存在什么问题?

A. 数据来源有问题
B. 严重过拟合——参数优化次数太多
C. 幸存者偏差

场景二:小王的"神奇财报策略"

小王回测了一个策略——"在财报公布的前一天买入超预期的股票"。回测结果惊人地好。但实盘第一天就亏了。最可能的原因是什么?

A. 策略逻辑本身有问题
B. 未来函数——回测中误用了财报公布日之后才有的数据
C. 市场突然变了

场景三:小李的"超级选股模型"

小李用机器学习训练了一个选股模型,训练集上准确率92%。但换到测试集,准确率暴跌到51%(和抛硬币差不多)。这说明什么?

A. 机器学习不行,还是得靠人
B. 模型过拟合——在训练集上背了噪声
C. 测试集数据有错误

AI思考练习:用AI帮你审查回测

AI 思考练习

复制下面这段话发给 AI,让它帮你设计一份回测审查清单:

我正在学习量化交易的回测。请帮我生成一份"回测前必查清单":(1)我应该检查哪些常见的偏差(过拟合、幸存者偏差、未来函数、数据窥探等)?(2)每种偏差有什么简单的自查方法?(3)样本内/样本外数据划分有什么最佳实践建议?请用通俗易懂的语言回答,适合初学者。

本章小结

本章要点

  • 回测 = 策略的"试吃":在历史数据上模拟运行策略,验证策略是否曾经有效。回测赚钱只是"必要条件",不是"充分条件"。
  • 三大天敌:过拟合(背答案)、幸存者偏差(只看到活下来的)、未来函数(用未来信息做过去决策)。
  • 黄金法则:样本内(60~70%)开发优化,样本外(30~40%)只验证一次。样本外不行就放弃,不要回去改参数——那是数据窥探。
  • 警惕"太好的结果":年化60%+、最大回撤<5%的回测结果,99%的情况下是过拟合或未来函数——不是策略牛,是你出错了。
第一部 ● 你在第二部 第三部 第四部
上一章:策略的"食材"——数据从哪里来 第11章 下一章:策略的"米其林评分"
[ 第11章 · 完 ]