因迁就历史数据的噪声而过度优化模型参数,造成策略的回测业绩高于未来业绩,即为数据迁就偏差。在基于历史数据的统计预测模型中,数据迁就偏差非常普遍,而在金融中,因为独立数据的量非常有限,所以这个问题就更加严重。高频数据倒是非常多,但只对高频模型有用。尽管股票市场数据可以追溯到20世纪初,但只有最近十年的数据才适用于构建预测模型。此外,如果发生了第2章讨论过的状态转换,最近几年的旧数据可能也没法用。独立数据的量越少,交易模型中用到的可调整参数就应该越少。
根据经验,我在计算移动平均值时不会超过5个参数,包括如建仓清仓阀值、持有期限、回溯期限等定量指标。此外,并非所有的数据迁就偏差都是由参数优化造成的。用相同数据集重复做回测时,还会影响模型的定性决策选择,如在开盘还是收盘时建仓、是否隔夜持仓、交易大盘股还是中盘股等。通常,这些可以优化回测业绩的定性选择,对未来未必是最优的。构建数据驱动模型时,几乎不可能完全消除数据迁就偏差,但有几种方法可以降低这种偏差。
样本含量
降低数据迁就偏差的最基本方法是,按照要优化的自由参数个数,使用足够多的回测数据。根据经验规则,通常假定优化参数所需的数据点个数,是模型中自由参数个数的252倍(一年交易天数为152天。这个假定未基于任何统计调查结果,完全是由经验所得)。例如,回测三参数的当日交易模型,至少要用三年的日价格数据。如果是分钟交易模型,则至少需要7个月(252/390年)的分钟数据(每天交易分钟数6.5×60=390)。注意,如果是一个日交易模型并且有了7个月的分钟数据点,实际上也只有7×21=147个有效数据(每月交易天数21),要回测三参数模型是不够的。