每位潜在的系统交易者必须决定使用哪款软件。考虑到可供出售或订阅的有上千种系统,不可能每个人都知道哪种会提供一个好的风险收益比。人类是被资源束缚的代理人,也就是说:人们能力有限,数据不完全、心智的掌握不足、处理数据困难,加上决策本身的多变量复杂性,做出选择的时间有限,人们很难自己来做出合乎逻辑的、理性的决定。为了克服先天不足,人们使用偏见过滤器来简化和加速决策过程。
量化交易,如何防止策略研究中的过度拟合
交易员在浏览海量的业绩报告、股票曲线、学术论文、开专业研讨会以及遇到千载难逢的机会时,必需客观的意识到偏见的存在。这篇文章的主题是伴随着系统的开发中出现的固有的偏见,以及它最臭名昭著的结果:过度拟合。
曲线拟合是数学中的一个概念。例如,给定坐标对(0,1)和(5,4),求出他们的直线方程。依据线性方程“上升运行”的定义用代数方法求解,最终以:y=mx+b的形式给出答案
在二维中更复杂的线需要更复杂的技术。将一些在同一条直线附近分布的点拟合成一条直线的过程称为曲线拟合(图2)。他涉及到使用一种算法生成一个多项式(或函数)产生一条相交于图上所有点的直线。许多不同的多项式方程可以满足对图中所有点相交的基本要求。算法在端点之间找到一个等式,这个等式可以囊括中间的点。你可以插值来得到在你原始点之间的线上的新点的答案,只要你保持在端点之间就行。这就是本质上曲线拟合的全部内容。
复杂的线需要更复杂的技术
现在,当你尝试着使用这个多项方程式得到在原始边界之外的一个点上时,你开始做所谓的外推。当你外推出用于生成多项式的边界时,你会得到预测错误。越界越远,错误越严重。
交易系统的不同之处在于:交易系统并不把所有的数据点放在一张图表上。我们可以认为金融市场的数据充斥着带有噪声的信号。基于一些有效的前提,函数和规则用于开发一个系统,用这个系统来描述某种类型的市场价格行为或者是趋势。这意味着我们是曲线拟合,尽管是松散的,我们想要一个宽松的交易系统,而不是严格的匹配。我们捕捉到信号的一些可获利的特性,同时拒绝大部分的噪音,由此产生的系统应该在外推效果上做得好,也就是说:运行时达到预期设计的目标,脱胎于开发时涉及的数据。
回测过度拟合是一种的错误的拟合,它对于交易系统与历史数据的联系过于紧密,以求获利最高,损失最低。其实,从开发交易系统的开始,开发者就是默认交易系统具有盈利可能的,且其偏好将一直影响开发过程。开发者越是根据历史数据引入增利减损的新算法,其初始偏好便体现得越强。如果此过程重复次数过多,且利用了大多数或全部历史数据,即会导致所谓的回测过度拟合。开发者甚至可能不曾意识到在如此的开发过程中,系统受其偏好的影响已经越来越大,而只会认为自己是在最大化地增利减损。
回测过度拟合是一种的错误的拟合
如果系统的逻辑引入过多的限制、过滤条件和规则,可以让它的回测看起来不错,但对未来未知数据的处理也就随之变差了。由于过度拟合系统对市场的信号和噪声的处理是同步进行的,当系统恰好匹配于噪声时,就反而会对交易者寻求的真正有意义的信号置之不理。在交易中,这就是一例无可救赎的曲线拟合之罪。你以为终于找到了交易圣经,但它会让你一路跌到地狱里去。
只有对独立的第三方绩效检验才能暴露开发者的固有偏好,不管它是有意还是无意发生的。第三方检验是一种实时跟踪过程,它可以判断交易系统对未知数据是否能处理得当,因此该过程很有必要。而且,它必须在全部交易规则、参数变更结束之后才能进行。由独立的第三方来运行交易系统,并实时进行仿真的虚拟交易。这种在系统中进行的虚拟交易可以最为真实地模拟实盘交易,又无需承担风险。然后我们就可以根据这些第三方的实时检验结果来判断,系统开发过程中是否已通过适当的测试和验证技术将引入的开发者偏好最小化。一套合理的交易系统应该能够对未知数据反应得当,否则该系统有回测过度拟合之嫌。第三方的绩效检验能够降低开发者偏好,通过该过程才能判断该交易系统是否可用。
我们的决策都会受自己的偏好影响,交易系统的开发过程也必然受开发者偏好的影响。在交易之前,我们需要意识到这种偏好的存在及其实际与潜在的影响。交易系统绩效的第三方实时检验,是成功的系统交易决策过程必不可少的步骤。