数据有无存活偏差?
我们在第2章中已经讨论过这个问题。不幸的是,对于一个起步者来说,无存活偏差的数据库价格过于昂贵,很难负担得起。能够克服这个困难的一种方法是,自己去收集将来可用于做回测的带时刻标签的数据。如果每天都保存了所有关注的股票的价格,就有了可供将来使用的带时刻标签或无存活偏差的数据库。另一种可以降低存活偏差影响的方法是,只用近期数据对策略进行回测,这样便不会因为有太多消失的股票而影响结果。
存活偏差人为拾高回测业绩的例子:
这是一个“买进低价股票”的玩具策略。(警告:这个玩具策略有很大的金融风险!)假设在年初从1 000只市值最大的股票中,等值买进价格最低的10只股票并持有一年。
如果数据库无存活偏差,所得结果如下:
除MDM外,其他所有股票在这一年间都退市了(毕竟互联网泡沫还是很严重的),故2002年1月2日没有收盘价。最后价格是2002年1月2日或退市前最后成交的价格。这一投资组合的年收益率是一42%。
如果数据库有存活偏差,这个组合就会筛掉这一年间所有退市的股票,进而选中以下股票:
注意:由于被选中的均是“存活”下来的股票,因此2002年1月2日全都有收盘价。这个投资组合的年收益率是388%!
此例中,策略的实际收益率是-42%,但由于存活偏差的存在,收益率被虚估为388%。