回测的坑:幸存者偏差在这里更严重
一句话速览
已经归零和下架的币种不会出现在你的数据里,而它们曾经占了很大比例。
这节课要你带走的
幸存者偏差在这个市场的回测里为什么格外严重、它会让结果偏离多少,以及三种缓解办法。
这个市场的回测有一个传统市场没那么严重的问题: 你手上的历史数据,只包含活到今天的那些币。
消失的那些去哪了
三种消失方式:
一是归零。价格跌到接近零, 纯投机标的这一类历史上大量如此。
二是下架。成交量长期不足,平台移除交易对 (见 C3-11)。
三是项目停止运作。团队解散、合约不再维护。
三种情况下,那个币的历史数据通常也从主流数据源里消失了。 于是你回测时看到的样本,是一个被筛选过的样本。
这会让结果偏多少
没有一个通用的数字,但可以估个方向:
如果你的策略是「在小市值币上找机会」, 那么偏差会非常大,因为消失率最高的正是这一类。
你的回测在说「这个策略在这些币上有效」, 而它没告诉你的是:还有一批币,同样的策略会让你归零, 只是它们已经不在数据里了。
如果策略只做少数几个主流币,偏差会小得多, 因为那几个的存活率高。
三种缓解办法
一
只在存活率高的品种上回测
把范围限制在少数几个长期存在的主流币。
这是最简单也最有效的一条。 代价是策略的适用范围变窄, 但那个「变窄」本来就是真实的约束, 只是之前被幸存者偏差掩盖了。二
手工补上已知的失败案例
找几个已经归零或下架的币,把它们的数据加进回测。
数据可能不完整,但哪怕只加几个, 也能看出策略在这类情况下的表现。 通常结果会难看很多。一个相关的陷阱
用「当前的币种列表」去回测过去。
比如取今天市值前二十的币,回测过去三年。 问题在于三年前的前二十跟今天不是同一批, 而你选中的这批是「三年后还在前二十」的那些。
这个偏差可能非常大, 因为它等于用了未来信息。
回测的样本必须是「当时能选到的」,不是「现在看起来该选的」。
做
今天就做这一件事
如果你做过回测,检查一件事:你的币种列表是怎么来的?
如果是「现在市值排名前多少」,那么这个回测用了未来信息,结果会明显偏乐观。
带走这一条:归零、下架、停止运作的币会从数据源里消失,所以回测样本是被筛选过的,而这个偏差在小市值币上最大。更隐蔽的陷阱是用当前的币种列表去回测过去,那等于用了未来信息。