策略在模拟时的结果,总会比真实交易时会更好一些。这些交易规则、参数值、模拟期、起始日和头寸数量等,都可能会不自觉的针对某个特定市场情况或某个特定金融工具组合而优化。如果回测在1999年至2011年4月间持有所有贵金属,会得到一个非常好的结果。当然,真实情况下的错误会更难发现。
避免过度拟合的最初和最有效的手段,是常识。
一个合理的模拟过程应该是:
有足够多的决策点(比如100个或者更多)
在广泛持有各种头寸(比如,4至15种头寸)的情况下,能获得显著好的业绩表现
在不同起始日下(对于月频和季频调仓的策略而言更是如此)均能获得稳定的结果。
判断过度拟合的一个更正式的方法,是去检查非连续性。假设你是在用带有多个变量的数学函数做模拟,每个因素都有可能会影响收益:不仅仅是你交易规则中的变量,还包括所选择的股票/ETF的数量,再平衡周期、头寸规模、起始日和滑价等。
将这些变量一一进行变化,看看它们对收益、回撤和其他可能的指标(例如索提诺比率、凯利准则和回撤期等)的影响。
如果这些指标有大幅变化,那就需要小心了:与变量有关的非连续性,是一个体现策略非稳定性的特征。相对于某个仅在变量的很小变化范围内,或在那些不确定的变量(例如小盘股的滑价)上能获得非常好结果的策略,稳健的交易者更愿意选择那些比较平均和稳定的策略。
关于过度拟合的最后一点是,如果模拟结果显示,某个策略当前正处于其历史最长回撤期中,建议你不要选择该策略。