诚信为本
量力而为
当前位置:峰汇在线 外汇知识 外汇理论书籍 正文

第四篇 第13章 系统测试概论

系统测试概论

当你编好一套自以为适用的系统后,不要以为这样就可以等着发财了。实际可没那么简单。除非你“深知”这套系统应该有用,不然则毫无意义。可以利用多种方法,来进行测试你所准备采用的交易策略是否有用。你可以直接应用到市场上实战来进行测试;可是,万一测试失败,结果恐怕会很受伤。你也可以先进行纸上模拟测试。最有效的方法,就是利用历史资料进行测试。换句话说,就是针对你准备进行交易的市场,采用某段时间的价格资料,测试交易系统的操作绩效。几年前,这类测试的程序非常烦琐,因为所有的工作都必须依赖人工。现在的情况则不同,我们拥有高速的电脑,某些软件也具备历史测试功能。

为何要进行历史测试?

利用过去的资料进行测试,可以让使用者了解,交易系统在实际运用中可能遇到的状况以及大体的绩效。不要相信某套系统的性能绝对没问题,完全不需要测试。一套系统如果不适用于过去的市场状况,就没有理由相信它能够适用于未来。也就是说,在你拿自己的资金冒险之前,多少应该了解交易系统的各种可能的表现。测试过程中,如果发现系统只能勉强持平,甚至是亏损,应立刻放弃,以避免除了浪费时间外,又造成其他的损失。值得注意的是,历史测试是不能告诉你系统的未来绩效。一套系统在测试过程中,即使表现很完美,也不能保证在实际运用中不会发生严重亏损。
但只要经过适当的测试,你就可以了解,系统可能发生的最大连续亏损的程度。也许连续两个月发生10笔亏损交易,最大损失超过1 万美元。如果过去发生此种情况,就没有理由相信将来不会重演。了解一些系统的最糟的情况,可避免实际运用时才发现,自己的资本无法承受或交易风格不愿意承受这类损失,而导致被迫中途放弃一套原本可以成功的系统。交易系统确实可能发生连续损失,这属于正常现象。因此,一定要了解连续亏损的严重程度。

历史测试经常发生的错误

在进一步讨论历史测试方法前,我想先花点时间来说明在测试过程应避免的一些常见错误。有时,避免错误是学习正确方法的捷径。如果能够避免错误,所作所为自然就会正确。举例来说,我的苏非猫并不知道只能在特定的柱子上磨爪子,但经过学习后,明白了它不能在沙发、窗帘、地毯、家具或我的脚上磨爪子。于是,它能够选择的地方被局限到一个地方。现在,我只要能够想办法让它了解,早上5 时并不是舔我的脸、说早安的适当时间,那么一切就都没有问题了。稍后会阐述正确的做法,不过现在先来讲讲一些坏习惯。
不知道如何评估测试结果
历史测试完成后,最常见的错误就是不知该如何评估测试的结果。除非能够作出有效的评估,否则,你根本无法判断系统的功能。一些人特别重视测试记录中的最高净报酬或最高胜率,可一旦系统的最大连续亏损过高,上述数据就没什么意义了。评估过程必须综合考虑一些东西,如:交易笔数、每笔交易的平均获利、连续发生亏损的交易笔数、最大单笔亏损、最大单笔获利、平均交易笔数、报酬分配状况等等。只有综合考虑以上因素,才能判断出一套交易系统是否适用,或判断该系统相对于其他系统的操作绩效。
曲线套入与过度最佳化
测试结果是否经过曲线套入,是评估系统绩效所需要考虑的重要因素。什么是曲线套入呢?简单地说,就是根据资料状况来设定系统策略。这是交易系统建构与测试过程中都可能发生的问题。如果你发现价格资料呈现明显的趋势,然后才建构一套买进和持有的系统,这就是曲线套入。建构系统的过程中,交易者可能特别注意走势图上适用其预定策略的资料,但有意无意之间却忽略其他不适用的资料。这样建构的系统,很可能只适用于某类市场状况;如果没有采用其他历史资料进行测试,这套系统显然不该被采用。过度最佳化则是另一个因素。系统建构过程中,如果对于参数设定要求十全十美,就可能发生过度最佳化的问题。举例来说,一套由两条移动平均构成的穿越系统,建构者可能会测试所有可能的均线组合,然后挑选一组绩效最佳的。这类系统未必适用,就如同精心培育的温室中的花朵,往往都禁不起残酷环境的考验。所以,测试过程中,不要为了取得较好的测试绩效而不断调整系统参数,因为这类系统通常都不适用于未来。
不质疑系统
不怀疑系统的测试结果,也是一种错误心态。某些交易者看到不错的测试记录,就觉得很满意了。实际上,使用者应尝试寻找系统的毛病或不正常的地方,观察是否有曲线套入的倾向,因为在事前了解这方面的问题,总要比实际遇到的好。系统的测试绩效很好,可能只是由一两笔交易造成。如果遇到不同的市场状况,这套系统还能发挥测试过程的绩效吗?测试过程对于滑移价差的假设是否合理?测试过程的交易样本数量是否足够?如果你不尝试质疑系统的绩效与缺失,实际运用中就可能遇到不必要的麻烦。对于一套看起来似乎没用的系统,不妨也抱着这种心态,研究其问题所在,看看自己是否能够进行修改。检讨一些无效的策略,也可以提高交易知识。任何假设或理论,都需要进一步研究与质疑,才能知道它是否成立。
测试资料或市况不足
资料不足是测试的另一种常见错误。测试交易笔数至少是30 笔,只有这样,测试结果在统计上才可以被接受。如果资料太少,很难判断测试结果究竟是偶然因素造成,还是交易策略确实有效。如果某套系统在测试过程中只发出6 个信号,即使其中5 个信号都成功,还是不能归纳出任何统计结论。这很可能代表严重连续亏损之后的连续获利。如果样本数超过30个,就可以在交易系统上做出有效的统计结论,测试结果不能完全由“巧合”或“运气”解释。测试过程采用的历史资料,还应该要充分反映实际的情况,包括各种可能发生的情形,不能只挑该交易策略最适用的行情。你需要知道该系统在上升趋势、下降趋势、区间盘整、波动剧烈、牛市走势等各种市场状况的表现。交易系统也应该在不同市场进行测试。如果某套交易策略确实有效,那就应该普遍适用于整个金融市场。
采用盘中资料进行测试,不要只取几个月的资料,时间最好拉长到几年。开始可以采用一年的资料,但一年期间并不够长,还不能做真正结论。很多系统经常在一年内有卓越表现,但3 年的绩效就惨不忍睹了。取得盘中价格资料的成本不低,测试过程也很浪费时间,因为你必须个别测试每种期货合约,可是金融交易本就不是便宜、简单的;只有投入时间、精力与资金,才可能取得好结果。
缺少外部样本
测试的价格资料不足,也会造成没有外部样本可供运用的问题。交易系统的测试过程中,我们通常会把价格资料分为两部分,一部分用来调整交易策略或设定参数,另一部分则用来做真正的测试。一套完整的交易策略,最后测试应采用全新的资料。如果就这段特定资料的测试做最后测试,交易系统通常都会针对其进行套人与最佳化。请注意,如果价格资料曾经用来调整策略或参数,绩效往往都很好,但重点是该系统在完全“陌生”环境下的表现 —- 这也是外部样本的功能。选一些最能代表交易实况的价格资料,作为外部样本,以测试交易系统的表现。
忽略佣金成本与滑移价差
在交易系统测试过程中,使用者普遍会忽略佣金与滑移价差。因此,测试结果可能很好,但在实际运用时却发生亏损。这是因为测试过程并没有考虑到佣金费用与滑移价差。关于这些费用,预估必须切合实际,否则到时会让你大吃一惊。每笔交易都要佣金,经常也会出现滑移价差,所以测试过程就应该考虑到此类成本。一些短线交易者经常对滑移价差的估计不足,他们认为交易会撮合在信号发生的价位。事实上,当我利用市价单买卖股票时,成交价格经常较预期水平差30 美元以上。就我个人的经验来说,当市场发生特殊情况(如联邦储备银行突然宣布调整利率),数只股票曾经同时出现每股5 美元或更多的滑移价差。所以,纸上模拟操作的表现可能很好,但实际交易却只是小输小赢。一些看起来不错的交易系统,考虑佣金与滑移价差之后,结果却亏钱。千万不要忘了这些必然发生的成本,否则任何测试结果都不会

版权所有转载请注明标题及链接:峰汇在线 » 第四篇 第13章 系统测试概论