第21章 交易系统测试

    试数字就像人——如果深入研究它们,其可告诉你任何事情。

    ——引述于约翰·埃勒斯的Rocket Science for Traders

    交易系统的测试过程反映了计算机能力和常识之间的纠结情境。1980年以前,相对于交易系统的测试而言,其只是一个简单的概念——细致而认真的交易者和分析师于初始时刻均将其想法应用于图表之上,同时手动标记买卖信号并且保留手写的交易记录。前述这个过程要花费很长时间,因此,相关人士都很谨慎,除非他们能确信这个方法有很好的成功概率,否则他们不会进行此类工作。其实,灵感来自对基本原理的理解或者对市场模式的认识程度,同时还要加上宝贵的经验。另外,应对盈利结果而确定的制表模式也证实了相关的理念是正确的。

    到了20世纪90年代初,如果你拥有每天都可以通过计算机读取数据的相应程序(比如TradeStation或MetaStock交易平台,它们能够向你提供图表和指标且组合成一个交易系统),那么你就可处于相应技术的高端领域。这里最重要的是:前述这些程序显示了交易策略的历史性的盈利能力,而其中特别强调最好的交易策略。移动平均线和RSI指标仍然是复杂的分析工具,但是,测试的最佳计算周期和组合指标的应用能力已经开启了重要的一步,而现在,它们已经变得非常复杂,同时我们也要据此进一步采取简单的方案来解决行业的问题。

    在上述这个模式继续推进的过程当中,效果并不总是好的,那些在自动化系统中非常勤奋的、具有选择性和常识的人可能比以往任何时候都会得到更好的结果、获取更快的反应情境,同时,他们也可以得到更多有用的信息;那些不太认真应对计算机这个新生事物的人或者那些便利型交易策略软件的开发商则不太可能成功——更大和更快捷的计算机和高科技软件并不意味着你的交易可以取得更好的效果。

    单独的分析工具不能确保一个有收益的交易程序,它需要在思维过程、创造力和相关知识等方面进行竞争。计算机使我们能够解决以前从来没有考虑过的规模性和复杂性的问题,它们以一种易于理解的方式来解决。我们不仅可以操纵大量的数据来验证我们的想法是否健全,还能发现与各种事件所相关的风险。即使你将此类技术称为“人工智能”,但是,计算机仍然只是一种非常复杂的计算器,给它一个易记的名称并不能使某些幻想成真。实际上,计算机不会思考,它们只能计算。

    最优化模式是被最广泛滥用的计算机技术之一,它是从电脑化发展而来的,然而,此种模式不是在图表中于连续的曲线之上求取局部最大值的数学过程;相反,它是在反复试验数据的迭代过程中找到某种最好的移动平均速度、点数图的框格规模以及相关止损点,或者,其需要结合多个数值而生成最高的交易利润且保证风险最低或者实现其他目标所相关的结果。我们这里并不是说最优化模式无效,而是交易者似乎有一种不可抗拒的冲动,他们想要知道系统参数值(内幕消息)且认为如此会产生最高的利润。但是,经验表明:最好的测试结果永远达不到交易者的期望,其往往会在金融交易的过程中造成悲剧性的结果,因为它们是通过微调或过度拟合的方式所生成的,而在某些时候,每个使用计算机来进行测试的人都会面临过度拟合的问题。

    计算机将分析师带入了进退两难的境地:如果你的目标是应用顺势交易策略之中的均线、指数平滑线、线性回归斜率,那么,你要如何决定正确的计算时间呢?20多年前,5日、10日和20日均线最受欢迎,因为它们代表了1周、2周以及1个月的时间间隔;另外,它们也很容易计算。事实上,10日均线是最常见的,因为相关的约数没有必要到达所谓的均值点位,你只需移动小数点即可。不幸的是,随着竞争的加剧,市场行情变得更加复杂,前述这种简单的方法则不再可行。

    我们现在考虑构建一种交易策略,即创设一个顺势交易系统,而如果计算周期已经被选择(例如10天),同时交易规则业已被确定(买单和卖单依据趋势的变化方向,同时应用3%的止损机制),那么你会想知道:这样的选择方式相对于期货市场或以往股票数据而言的表现情境究竟如何——如果测试成功,你将使用该方法进行交易;但是,如果它的测试数据不符合预期的情境,那你要怎么办呢?如果应用计算机的话,那答案很简单:使用另一种趋势速率以及不同的止损方式,从而观察相应的测试结果是否会更好。前述过程是非常自然的,毕竟,谁会使用一个在过去都未能奏效的系统呢?

    最终,我们决定测试所有的计算周期和交易规则的组合情境,从而能够更好地了解成功的交易系统的运行过程。那么,为什么你可以使用专门的软件来预期每个参数呢?我们现在应该知道上述的方法会失败,但并不是每个人都知道正确的方法。下面的各节将探讨测试和优化的各个方面内容;同时,我们要掌握如何利用以及如何控制,而在本章的结尾,则会有一个全面性的总结。