交易系统 · 第 8 节

回测的坑:幸存者偏差

把规则写死 · 第 8 页。

一句话速览 退市的公司会从数据里消失,于是回测的世界比真实世界友好得多。
这节课要你带走的 幸存者偏差在美股回测里的具体形态,以及一个自己就能做的检验。

回测的世界比真实世界友好, 因为失败的那些已经从数据里消失了。

它在美股的三种形态

一、退市公司从数据里消失

美股退市比多数市场常见(见 U1-15)。

如果你的数据源只包含现在还在交易的公司, 那么你回测的是一个「所有公司都活下来了」的世界。

二、指数成分是事后的

用当前的指数成分去回测过去, 等于假设你在几年前就知道哪些公司会被纳入指数。

而被纳入通常发生在公司已经成功之后。

三、策略本身的幸存

你看到的公开策略,是从大量被测试过的策略里挑出来的那些。

失败的策略不会被发表, 所以「这个策略回测很好」这句话的信息量比看起来小。

这个偏差有多大

它的方向永远是同一个:让回测结果好于真实。

而且它对高风险策略的影响更大因为那些策略在真实世界里更容易碰到退市和暴跌的公司。

一个自己就能做的检验

问一句:如果这段时间里有公司退市,我的回测会怎么处理

如果答案是「数据里没有退市的公司」, 那你的回测结果就有系统性偏差。

知道这一点之后,正确的做法不是修正数据 (个人很难做到),而是把回测结果往差里打折。

相关的一个偏差

选择偏差。 你在筛选标的时用的条件, 可能已经隐含了「这家公司后来表现不错」这个信息。

典型例子:用「过去五年营收持续增长」来筛选那五年的数据在当时是拿不到的。

正确的态度

不是不做回测,是知道回测能回答什么。

它能回答:这套规则在这段历史上的表现如何、 最大回撤有多大、连亏最长几笔。

它不能回答:这套规则未来能赚多少。

前者对定仓位有用 (见 U5-10), 这已经是回测最大的价值了。

今天就做这一件事

如果你做过任何回测,问一句:这段时间里退市的公司在不在数据里?

如果不在,把回测结果打个折再用。

带走这一条:幸存者偏差在美股的三种形态是退市公司从数据消失、指数成分是事后的、以及策略本身的幸存(失败的策略不会被发表)。它的方向永远是让回测好于真实,且对高风险策略影响更大。检验方法是问退市公司在不在数据里,知道之后正确做法是把结果往差里打折而不是试图修正数据。回测能回答规则在这段历史上的表现和最大回撤,不能回答未来能赚多少。