用户工具

站点工具


历史测试

历史测试的常见错误

用历史数据模拟(或回测)的结果来帮助做出未来投资决策的投资者数量在逐渐增加。不幸的是,他们通常会犯两个错误:他们假定模拟结果会有预测效果,以及他们过于关注收益。然而,模拟的最主要作用是评估某个策略的风险。我们可以从两个层面来评估风险:

该策略的稳健性。斯特林比率索提诺比率凯利准则都是实现这一目的的很好指标:其值越高,效果越好。考察下这三个指标,能帮助我们更好的了解这一策略。

回撤的历史。实现这一目的的最显然指标是最大回撤(用百分比表示的最大相对损失)和最长回撤期(损失的最长持续期):其值越小,效果越好。

历史测试可能发生的问题:交易资本不充分,太快就放弃某个系统,系统不具备正数的期望报酬,交易系统经过曲线套入,交易系统没有经过适当的历史测试。系统的绩效没有经过适当测试,最好不要采用,因为很可能造成太多不必要的损失。事实上,很多人采用的系统,完全没有经过测试。在还没有以实际的资金进行测试之前,最好不要投人太多资本。刚开始,在一些价格波动相对稳定的市场做少量交易,直到你确定该系统的绩效能力之后,才以正常的资金规模进行操作。

没有设定交易系统的绩效目标某些人会不断尝试修改系统,但永远都觉得不满意。他们花太多时间编写程序,实际运用系统的时间反而不多。如果预先设定系统的绩效目标,就可以避免这方面的困扰。开始时,就应该知道自己想要什么。如果目标很明确,也就很容易找到适用的系统。假设你希望系统的交易胜率为55%,成功交易的获利是失败交易的2倍以上,每笔交易的最大损失不超过3 000美元,或不超过每个月获利的5%。在这种情况下,如果一套系统的测试绩效能够接近上述目标,就很不错了。不要太吹毛求疵,否则永远都无法实际出场。

系统范例

以下是一套运用于Trade Station的简单系统,相关信号都已经翻译过。写在大括弧内的文字,只是翻译而已,不属于系统的一部分。通过这个例子,读者应该可以大致了解交易系统是如何编写的。

买进信号:价格穿越最近10期最高价,采用0.5个标准差作为滤网(标准差根据最近10期资料计算)。

卖出信号也靠相同的方式设定,只是方向相反。所以,进场信号很单纯,但出场信号则采用ADX。如果走势很强劲而趋势明显,就继续留在场内,直到两条移动平均交叉为止;如果ADX很弱,系统将在10期后获利了结;如果ADX读数是中性,则在随机指标进人超买区之后获利了结。最后,如果价格反向穿越进场价格的距离到达两个标准差,则止损出场。

通过交易系统提升自己的操盘水平

如果想成为最佳交易者,就需要采用某种交易系统。不论是电脑化系统,还是在走势图上利用视觉判断,也不论结构单纯还是复杂,你都必须采用某种经过验证的交易系统。除非你能够不断复制相同的决策,否则交易不只很可能会失败,甚至弄不清楚自己究竟是怎么失败的。如果采用交易系统而不能赚钱,只有两种可能:系统不够好,或者你没有严格遵守系统指示。如果你发现自己不能严格遵守系统信号,就需要寻找其他更适合自己交易风格的系统。如果系统不够好,就必须想办法解决,或寻找其他系统。交易系统使用之前,务必利用过去的价格资料进行测试。不采用交易系统的最大问题,就是你可能不知道自己究竟为何发生亏损,因为交易可能没有明确的理由或动机。

即使采用电脑化系统,仍然可以运用某些主观判断,因为有效的策略未必都能设定为电脑程序。某些情况下,你可能觉得不对劲,在出场信号发生之前就想出场。只要你不至于过早了结获利部位,或经常发生这类情况,就没有间题。大体上来说,对于一套有效的系统,你应该尽可能采纳所有信号,因为你无法预先知道哪些信号有效、哪些无效。

除了进场信号之外,交易系统也必须提供出场与止损信号,即使你采用心理止损而没有设定在电脑程序内,那也没有问题。只要你以一贯的态度执行止损,该止损就成为系统的一部分。预先设定出场点,可以减缓交易压力,不需担心自己过早或太晚出场,完全由交易系统来操心。

建构与测试交易系统,是一项大工程,但如果你想要成为最佳交易者,就必须花点心思在这方面,因为这是提升交易胜算的必要条件。

采用交易系统发生亏损原因:

1.太早放弃系统。

2.忽略佣金滑移价差

3.缺乏严格遵守信号的纪律。

4.对于信号不能果断反应。

5.相信一些不确实的假设性结论。

6.系统不符合使用者的交易风格。

7.系统的操作方式超过交易者的资金规模或其他条件。

8.系统没有经过适当的测试。

9.系统采用太多变数与条件。

10.系统经过曲线套入。

11.不能把握“保持简单”的原则。

12.系统不够好。

高胜算的系统性交易:

1.只采用获利期望值为正数的交易系统。

2.了解如何测试系统。

3.系统最好能够适用于各种不同市场。

4.交易法则必须很清楚。

5.出场的重要性,不低于进场。

6.交易系统必须考虑止损。

7.系统绩效很稳定。

8.保持简单。

9.在较长时间周期上采用另一套系统,作为警报,并监督止损位置。

10.在较短期时间周期上采用另一套系统,用以精确掌握进出场位置。

11.系统的最大损失不要太大。

12.了解自己最多能够承受多少损失。

13.利用不同系统的信号进行确认。

14.必要情况下,可以利用主观判断。

15.如果你想成为真正的系统性交易者,就应该采纳每个信号。

值得提醒自己的一些问题:

1.我是否真的拥有一套系统?

2.我的系统是什么?

3.我的交易系统是否太复杂?

4.我的交易系统是否考虑止损与出场?

5.我的交易系统是否经过适当的历史资料测试?

6.我是否真的信赖这套系统?

7.对于系统提供的信号,我是否经常三心二意?

为什么要进行历史测试

当你编好一套自以为适用的系统后,不要以为这样就可以等着发财了。实际可没那么简单。除非你“深知”这套系统应该有用,不然则毫无意义。

你可以利用多种方法,来进行测试你所准备采用的交易策略是否有用。你可以直接应用到市场上实战来进行测试;可是,万一测试失败,结果恐怕会很受伤。你也可以先进行纸上模拟测试。最有效的方法,就是利用历史资料进行测试。换句话说,就是针对你准备进行交易的市场,采用某段时间的价格资料,测试交易系统的操作绩效。几年前,这类测试的程序非常烦琐,因为所有的工作都必须依赖人工。现在的情况则不同,我们拥有高速的电脑,某些软件也具备历史测试功能。

利用过去的资料进行测试,可以让使用者了解,交易系统在实际运用中可能遇到的状况以及大体的绩效。不要相信某套系统的性能绝对没问题,完全不需要测试。一套系统如果不适用于过去的市场状况,就没有理由相信它能够适用于未来。也就是说,在你拿自己的资金冒险之前,多少应该了解交易系统的各种可能的表现。测试过程中,如果发现系统只能勉强持平,甚至是亏损,应立刻放弃,以避免除了浪费时间外,又造成其他的损失。值得注意的是,历史测试是不能告诉你系统的未来绩效。一套系统在测试过程中,即使表现很完美,也不能保证在实际运用中不会发生严重亏损。

但只要经过适当的测试,你就可以了解,系统可能发生的最大连续亏损的程度。也许连续两个月发生10笔亏损交易,最大损失超过1万美元。如果过去发生此种情况,就没有理由相信将来不会重演。了解一些系统的最糟的情况,可避免实际运用时才发现,自己的资本无法承受或交易风格不愿意承受这类损失,而导致被迫中途放弃一套原本可以成功的系统。交易系统确实可能发生连续损失,这属于正常现象。因此,一定要了解连续亏损的严重程度。

历史测试经常发生的错误

在进一步讨论历史测试方法前,我想先花点时间来说明在测试过程应避免的一些常见错误。有时,避免错误是学习正确方法的捷径。如果能够避免错误,所作所为自然就会正确。举例来说,我的苏非猫并不知道只能在特定的柱子上磨爪子,但经过学习后,明白了它不能在沙发、窗帘、地毯、家具或我的脚上磨爪子。于是,它能够选择的地方被局限到一个地方。现在,我只要能够想办法让它了解,早上5时并不是舔我的脸、说早安的适当时间,那么一切就都没有问题了。稍后会阐述正确的做法,不过现在先来讲讲一些坏习惯。

不知道如何评估测试结果

历史测试完成后,最常见的错误就是不知该如何评估测试的结果。除非能够作出有效的评估,否则,你根本无法判断系统的功能。一些人特别重视测试记录中的最高净报酬或最高胜率,可一旦系统的最大连续亏损过高,上述数据就没什么意义了。评估过程必须综合考虑一些东西,如:交易笔数、每笔交易的平均获利、连续发生亏损的交易笔数、最大单笔亏损、最大单笔获利、平均交易笔数、报酬分配状况等等。只有综合考虑以上因素,才能判断出一套交易系统是否适用,或判断该系统相对于其他系统的操作绩效。

曲线套入与过度最佳化

测试结果是否经过曲线套入,是评估系统绩效所需要考虑的重要因素。什么是曲线套入呢?简单地说,就是根据资料状况来设定系统策略。这是交易系统建构与测试过程中都可能发生的问题。如果你发现价格资料呈现明显的趋势,然后才建构一套买进和持有的系统,这就是曲线套入。建构系统的过程中,交易者可能特别注意走势图上适用其预定策略的资料,但有意无意之间却忽略其他不适用的资料。这样建构的系统,很可能只适用于某类市场状况;如果没有采用其他历史资料进行测试,这套系统显然不该被采用。过度最佳化则是另一个因素。系统建构过程中,如果对于参数设定要求十全十美,就可能发生过度最佳化的问题。举例来说,一套由两条移动平均构成的穿越系统,建构者可能会测试所有可能的均线组合,然后挑选一组绩效最佳的。这类系统未必适用,就如同精心培育的温室中的花朵,往往都禁不起残酷环境的考验。所以,测试过程中,不要为了取得较好的测试绩效而不断调整系统参数,因为这类系统通常都不适用于未来。

不质疑系统

不怀疑系统的测试结果,也是一种错误心态。某些交易者看到不错的测试记录,就觉得很满意了。实际上,使用者应尝试寻找系统的毛病或不正常的地方,观察是否有曲线套入的倾向,因为在事前了解这方面的问题,总要比实际遇到的好。系统的测试绩效很好,可能只是由一两笔交易造成。如果遇到不同的市场状况,这套系统还能发挥测试过程的绩效吗?测试过程对于滑移价差的假设是否合理?测试过程的交易样本数量是否足够?如果你不尝试质疑系统的绩效与缺失,实际运用中就可能遇到不必要的麻烦。对于一套看起来似乎没用的系统,不妨也抱着这种心态,研究其问题所在,看看自己是否能够进行修改。检讨一些无效的策略,也可以提高交易知识。任何假设或理论,都需要进一步研究与质疑,才能知道它是否成立。

测试资料或市况不足

资料不足是测试的另一种常见错误。测试交易笔数至少是30笔,只有这样,测试结果在统计上才可以被接受。如果资料太少,很难判断测试结果究竟是偶然因素造成,还是交易策略确实有效。如果某套系统在测试过程中只发出6个信号,即使其中5个信号都成功,还是不能归纳出任何统计结论。这很可能代表严重连续亏损之后的连续获利。如果样本数超过30个,就可以在交易系统上做出有效的统计结论,测试结果不能完全由“巧合”或“运气”解释。测试过程采用的历史资料,还应该要充分反映实际的情况,包括各种可能发生的情形,不能只挑该交易策略最适用的行情。你需要知道该系统在上升趋势、下降趋势、区间盘整、波动剧烈、牛市走势等各种市场状况的表现。交易系统也应该在不同市场进行测试。如果某套交易策略确实有效,那就应该普遍适用于整个金融市场。

采用盘中资料进行测试,不要只取几个月的资料,时间最好拉长到几年。开始可以采用一年的资料,但一年期间并不够长,还不能做真正结论。很多系统经常在一年内有卓越表现,但3年的绩效就惨不忍睹了。取得盘中价格资料的成本不低,测试过程也很浪费时间,因为你必须个别测试每种期货合约,可是金融交易本就不是便宜、简单的;只有投入时间、精力与资金,才可能取得好结果。

缺少外部样本

测试的价格资料不足,也会造成没有外部样本可供运用的问题。交易系统的测试过程中,我们通常会把价格资料分为两部分,一部分用来调整交易策略或设定参数,另一部分则用来做真正的测试。一套完整的交易策略,最后测试应采用全新的资料。如果就这段特定资料的测试做最后测试,交易系统通常都会针对其进行套人与最佳化。请注意,如果价格资料曾经用来调整策略或参数,绩效往往都很好,但重点是该系统在完全“陌生”环境下的表现—-这也是外部样本的功能。选一些最能代表交易实况的价格资料,作为外部样本,以测试交易系统的表现。

忽略佣金成本与滑移价差

在交易系统测试过程中,使用者普遍会忽略佣金与滑移价差。因此,测试结果可能很好,但在实际运用时却发生亏损。这是因为测试过程并没有考虑到佣金费用与滑移价差。关于这些费用,预估必须切合实际,否则到时会让你大吃一惊。每笔交易都要佣金,经常也会出现滑移价差,所以测试过程就应该考虑到此类成本。一些短线交易者经常对滑移价差的估计不足,他们认为交易会撮合在信号发生的价位。事实上,当我利用市价单买卖股票时,成交价格经常较预期水平差30美元以上。就我个人的经验来说,当市场发生特殊情况(如联邦储备银行突然宣布调整利率),数只股票曾经同时出现每股5美元或更多的滑移价差。所以,纸上模拟操作的表现可能很好,但实际交易却只是小输小赢。一些看起来不错的交易系统,考虑佣金与滑移价差之后,结果却亏钱。

历史测试程序

曲线套入

我准备先来讨论曲线套入的主题,然后再讨论最佳化程序。先前,我提到曲线套入就是利用资料匹配系统。经过曲线套入之后,系统对于特定时期的特定资料,绩效看起来很好。举例来说,在走势图上看到某段时期的价格在特定区间内来回游走,你可以针对这种行情,建立一套交易系统,使其操作绩效特别好。你也可以编写一个滤网,让你恰好在市场崩溃前进场放空。操作绩效显然很好,但不是真的。在市场下次大跌之前,该系统还会发出类似的放空信号吗?你可以不断调整,使得交易系统与资料之间完全吻合,但问题是这套系统是专为这些资料而设计的,恐怕不能适用于其他资料。无论是哪段时期的资料,只要你愿意,都可以设计报酬率高达2 000%的交易系统,但该系统对于未来行情完全无用。就交易者的立场来说,你所担心的是系统未来运用的绩效,而不是历史测试结果。这也正是我前边所说的,一套看起来不错的系统,为什么必须采用崭新资料进行测试的理由。唯有采用不同于系统编写过程与最佳化过程的资料,才是真正的测试。如采用曲线套入过程的资料进行测试,系统绩效当然会很好,但却未必适用于未来。总体来说,系统结构越复杂、交易方法越烦琐、测试绩效越过于理想,曲线套入的程度就越严重。

最佳化程序

最佳化程序是针对特定时期的资料,通过不断修正参数与指标,来提升系统的绩效。如果采用移动平均,使用者将不断调整移动平均的长度,来促进操作绩效。决定移动平均长度后,可能继续进行最佳化,希望找到某种突破滤网,使得绩效能够更进一步提高。总而言之,系统使用者可以一直调整参数与指标,使系统绩效有所提升。如果采用Trade Station,这套软件可以帮你进行最佳化。只要几秒,Trade station就可以告诉你任何指标在某特定时期内的最佳参数值。表面上看起来,这似乎是很不错的功能,但却很容易让你误解系统的真正绩效。

最佳化的目的,在于提升交易系统的获利能力,但一定要注意,不要做得太过火了。系统概念只需大致正确,而参数值究竟如何设定,并不太重要。最佳化过程,是希望找到一段看起来最好的参数值。举例来说,对于一套穿越近期最高价的突破系统,你希望找到最适用的回顾期间。你发现回顾期间越长,信号的获利能力越强,但回顾期间超过20期后,就没有明显改善了。你因此而知道系统的回顾期间应该设定为20左右,至少不应该是5期。想要找到某个单一的最佳数据,是毫无意义的。因为资料不同,最佳数据也就不同。

就我而言,在最佳化过程中,我希望找到绩效最佳而且普遍适用的一些参数值,然后取其中平均数作为实际运用的数据。举例来说,如果12期、14期与17期移动平均的效果最好,我很可能采用14期或15期。如果12期、14期与17期的效果很好,但15期或16期的效果不好,则意味着系统显然有间题,否则不应该发生这种现象。对于一套真正好的移动平均系统,不论选择5期、7期、10期或15期结果都不应该相差太多。对于某组资料,如果14期的绩效最好,这并不会特别吸引我的注意,因为我要找的是大体上有效的操作概念或方法,而不是某个绩效最佳的参数值。如果某个交易系统只能采用1-2个参数值,这套系统应该不可靠,很可能经过曲线套入。

使用者可以通过最佳化程序来判断,交易系统是否适用各种不同的参数值,或只适用于特定参数值。市场具有随机性质,某个适用于过去的参数值,是否也会适用于未来呢?如果突破系统的某个缓冲滤网,曾经有效避开随机走势引发的突破,这个案例是否反映该滤网的真实功能呢?看着某份走势图,一些人可能会挑选一个当时最适用的滤网。可是如果采用其他的参数值,这个滤网是否仍然继续有效?这个滤网是否也适用于其他资料?采用不同时期的资料进行测试,甚至采用其他时间周期的资料,来反映不同的观察角度。如果你对于整体结果很满意,就可以采用外部资料进行测试。对于一套有效的系统,外部资料的测试结果应该大致相同。

外部样本

历史测试程序最重要的部分便是采用外部样本测试系统的功能。实际采用某套交易系统之前,绝对需要运用崭新的资料测试该系统:所谓“崭新”,是指系统建立与最佳化过程所使用之外的资料。在系统建立、测试与最佳化过程中,初学者最常见的错误之一便是同样采用所有可供运用的资料。如果手上只有3年的资料,就直接利用这3年的资料设定参数值,不知道还要留一些外部样本。如果总共只有3年的资料,那么就只采用两年的资料,保留最后一年的资料不动,甚至不要用到相关的走势图。要假设最后一年的资料还没有发生,因为你不希望系统建构或最佳化过程受到外部样本的影响。唯有当你对于交易系统已经觉得很满意了,才利用最后一年的资料进行测试。请注意,外部样本至少必须能够产生30个或以上的信号,否则测试结果不具统计意义。如果系统确实有效,外部样本的测试表现应该差不多;如果测试结果不够理想,就应该改变系统的基本构想,绝不是只修改参数值而已。外部样本是供你判断交易系统的效力,不是用来进行最佳化的,否则根本不需保留外部样本。我喜欢观察外部样本的走势图,进一步确认交易系统确实具有应有的功能。但如果你仍想调整交易系统,绝对不要受到外部样本的影响。

外部样本可以模拟真实世界,崭新的资料可以避免系统过度最佳化。经过最佳化之后,由于系统参数还没有碰到新资料,通过外部样本的测试,我们希望知道系统之所以有效,不是因为经过曲线套入,而是因为系统本身的功能。

资料运用

首先必须确定资料够用。针对6个月的资料进行测试,没有太大意义,因为6个月内可能发生任何古怪的事情,足以扭曲整个测试结果。另外,交易笔数至少30个,否则测试结果不具统计意义。交易笔数越多,测试结果越可靠。如果交易笔数不够,只要一两笔极端交易就可以影响测试结果,使得一套平庸的系统看起来非常突出。你也希望知道交易系统在不同市场状况下的表现,所以要准备充分的相关资料。

把相关资料分为三等份是最理想的。系统建立过程中,使用第一部分的资料。系统初步建立完成之后,利用第二部分资料进行最佳化与相关调整。只有当交易系统已经完成,才利用第三部分资料进行测试。另一种可能性,是采用中间2/3的资料进行系统的建立与最佳化,然后把最初1/6与最后1/6资料视为外部资本,供最后测试之用。不论采用哪种方法,系统建立过程使用的资料期间,最好等于外部样本期间,才能确定系统绩效在期间具有稳定性。

请注意,不同资料不要来自相同类型的市场状况。外部样本最好包括不同市场状况、不同股票、不同时间周期的资料。如果IBM资料建立交易系统,不妨利用思科、美林、英特尔、沃尔玛百货、道琼斯指数、SP500指数进行测试。如果测试结果很好,该系统应该普遍适用每只股票,不仅只针对IBM而已。总之,资料必须包含各种不同的市场与市场状况。如果利用某10只股票的资料进行测试,它们就不应该呈现相同的价格形态:某些股票应该呈现涨势,某些呈现跌势,另一些则是横向走势。这样才能有效模拟该系统将来碰到的真实环境。

系统效力评估

现在,让我们考虑历史测试最严肃的课题:如何评估测试结果?如何判断某个交易系统确实是一套好系统?交易系统的期望报酬率,显然必须是正数,否则就不具胜算。图13-1与13-2是Trade station评估其内部系统的绩效报告,格式颇具参考价值。虽然这两套系统都获利,但第二套MACD系统的表现较好,不只因为其获利能力较强,而且还因为它具有很多可取的条件(稍后详细解释)。此处故意忽略滑移价差与佣金成本,稍后将讨论这两个因素对操作绩效的影响程度。

获利能力(净获利总额)

净获利总额代表系统最重要的操作成绩:是否能够赚钱。这两个例子都赚钱,净获利分别为7 025美元与3.275万美元。如果测试结果为负数,系统就必须重新设计,因为你不能期待该系统在实际运用上能够赚钱。评估交易系统的测试绩效时,每个人几乎都会先注意净获利总额,但其本身未必能完全反映系统绩效。当然,每个人都希望系统能够获利,而不是发生亏损。此外,你还想知道系统总共出现多少交易笔数、盈亏波动程度多大、最大连续亏损有多少、每笔交易平均获利多少等问题。如果上述系统的测试结果分别为获利5万美元与1万美元,虽然多数人都会挑选获利高的第一套系统(5万美元,但第二套系统(1万美元)可能才是较好的系统。第一套系统可能每年平均出现1000笔交易,最大连续亏损为3.5万美元,每个月的盈亏金额波动很大,有时大赚,有时大赔。第二套系统一年才发出50个交易信号,最大连续亏损只有3 000美元,每个月的获利都很稳定。若是如此,显然第二套系统是较好的系统,因为虽然其总获利较少但绩效非常稳定。当然,其中涉及到一些主观判断:有些人比较重视获利潜能,另一些人较重视获利稳定性与安全性。精明的交易者大多属于后者。

单纯采用净获利总额来评估系统绩效,不太恰当。请参考图13-1的随机指标穿越系统。乍看之下,这套系统似乎还不错,最初3个月获利超过7 000美元。但稍微深入观察,就可以发现这并不是真正的好系统。

总交易笔数

如果两套交易系统的其他表现大致相同,总交易笔数少的系统通常较好。因为交易笔数越少,越不容易受到佣金费用与滑移价差的不利影响。系统的信号数量少,某些使用者或许会觉得无聊,但只要绩效相同,信号数量越少越好。就图13-1与13-2的两套系统比较,系统一的净获利较少,而且交易笔数较多。换言之,系统一工作的比较辛苦,而且报酬较少。虽然信号数量越少越好,但测试过程至少要有30笔交易,否则测试结果不具备统计意义(换言之,测试结果的巧合成分太高)。如果交易笔数不满30,就必须获取更多资料。

获利交易百分率

此数据几乎没有任何意义,但很多人对此特别有兴趣。多数杰出交易者的交易成功率只有50%,但一般人却认为50%几乎就等于失败,学校的考试都要60分才及格。所以,如果获利交易笔数和亏损交易笔数的比率只有40%,大家就直觉认定这代表失败。可是,不妨想想棒球的打击率,四成打击率就算得上杰出水平了。我不太重视获利交易百分率。但有些人对于40%以下的数据,似乎就觉得不安稳。系统胜率究竟是30%、4O%或60%,事实上,并不重要。重要的是获利交易与亏损之间的平均盈亏程度和关系。只要配合适当的风险管理技巧,一套胜率只有30%的系统,交易绩效应该就不错了。图13-1与13-2两套系统,胜率都是略高于40%,这也是一般系统的典型水平。

最大单笔获利与最大单笔亏损这是我非常重视的数据之一。首先,我会观察系统的获利,是否来自于特定的1-2笔交易。以系统一为例,总获利为7025美元,最大单笔获利为7 000美元。所以,扣掉这笔最大获利交易之后,剩下182笔交易的总获利只有25美元,似乎不容易令人满意。对于任何一套系统,如果剔除获利最好的1-2笔交易之后,绩效就明显受到影响,系统效力就不很可靠了。另外,最大单笔亏损不应该超过获利。如果你想成功,亏损绝对不能超过获利。如果最大单笔亏损的金额太大,就必须重新考虑出场与止损策略。最大单笔获利与最大单笔亏损之间的比率,至少要维持2:1或3:1的水平,但如果系统的其他性质很吸引人,1.5:1的比率也可以勉强接受。获利交易平均获利与亏损交易平均亏损之间的比率,也应该维持类似的关系。如果前者少于后者,我绝对不考虑使用该系统。我认为获利部位的持有时间应该超过亏损部位,所以我也很重视系统获利部位与亏损部位的平均持有时间,以此确定该系统是否符合自己的交易风格。

连续亏损笔数

很多交易者不能接受系统连续发生10笔亏损,这可能让该系统根本没有机会发挥功能。所以,你应该知道系统可能连续发生几笔亏损交易,然后才能决定该系统是否符合自己的交易风格。了解这项数据,至少可以作为参考。万一实际操作碰到连续亏损的情况,只要在正常范围内,就不需太过紧张。如果不事先知道连续亏损的可能状况,很可能会让你反应过度。

对于最糟的状况应该要有心理准备

我曾花几个月的时间,编写了一套专门从事SP当日冲悄交易的系统。经过历史测试并数度修改,直至我认为完美的程度。这套系统毕竟还是有些缺点,因为连续发生亏损的笔数有些偏高,但我不认为一开始就需要担心这方面的问题。由于系统胜率明显较高,所以获利应该没有问题。我相信自己可以从一开始就获利,所以等到连续亏损发生时,应该不至于构成严重伤害。我想读者应该猜到,我们从一开始就遇到连续亏损。我记得,最初8笔交易都失败,使得我和同伴累积了1.2万美元的赤字,而且完全没有心理准备。我们被迫放弃该系统。可是,就在放弃之后的第一笔交易就大有斩获。事实上,随后的几笔交易就足以弥补先前的所有亏损。教训就是务必要事先了解系统的最大连续亏损状况,确定自己能否承受。

每笔交易平均获利当我们比较两套系统或修改系统的时候,这是最重要的观察数据之一。这项数据反映系统每笔交易的获利期望值。换言之,若采用这套系统,每笔交易平均可以赚多少钱(或赔多少钱)。系统一的每笔交易平均获利为38.6美元(没有考虑佣金),系统二则是564.66美元。我想不需要是天才就可以知道,系统二的平均获利能力较强。如果这项数据是负值,该系统根本不值得考虑。这点应该很清楚。可是即使这项数据是正值,但只要水平不够高,也不值得考虑。至于这项数据究竟多高才可接受,每个人都有自己的观点。

最大连续亏损最大连续亏损,是评估交易系统绩效的最重要因素之一。最大连续亏损告诉你,运用特定交易系统于某市场,你需要准备多少资金(换言之,最坏情况下,该系统可能发生多少损失),而且也让你知道系统的风险程度。了解这项数据之后,就知道某市场或股票的交易,需要准备多少资金。某套交易系统看起来或许不错,但经过适当测试之后,你可能发现该系统在某段时期曾经发生2.5万美元的亏损。不要以为自己不会那么倒霉。这种事情经常发生,而且总是发生在最不巧的时候。除非你能够忍受两倍程度的最大连续亏损,否则就不应该运用该系统。

对于讨厌风险的交易者,最大连续亏损可能是最重要的系统评估数据。如果你觉得难以接受,就应该放弃该系统,或做必要的修正。在金融交易活动中,资金管理扮演关键性的角色,交易的每个层面都少不了这方面的考虑。如果两套系统的其他方面都类似,最大连续亏损越小的系统,风险也越小。如果风险太高,就避免使用。

获利因子

获利因子就是总获利除以总亏损,代表每块钱损失可以换取的获利金额。如果获利因子为1,系统只是持平而已。为了安全起见,获利因子至少应该是1.5。如果获利因子能超过2,你就拥有一套很好的系统。系统一的获利因子只是勉强超过1,所以应该避免使用。系统二的获利因子为1.64,算是不错的,适合运用于交易。

报酬分配

最后,你必须了解系统的绩效波动程度如何。系统是否能够提供非常稳定的获利,或者账户净值是否经常会大幅波动?如果资料够多,应该观察月份绩效是否稳定。盘中交易系统不妨观察每天的绩效。系统的绩效越稳定,获利变异数就越小。如果获利标准差太多,最大连续亏损往往会偏高,这类系统就不适用。如果有太多交易或单日/月份报酬落在两个标准差外,系统绩效就不稳定。当然,绩效越稳定,系统就越可靠。Trade Station可以显示月份或单日报酬的统计分配,让你了解系统的绩效概况。虽然提高系统报酬的稳定性并不是简单的事,但专业交易者应想方设法去做到。

佣金与滑移价差

佣金与滑移价差实在是欠佳的话题,但却经常是系统或交易者的成败关键所在。每笔交易,不论盈亏,都会发生的成本就是交易方法或风格必须考虑的最大问题。这是交易者无法逃避的负担,系统设计上应该妥善考虑,否则系统运用就会显得不切实际。

最明显的交易成本莫过于佣金,其次就是滑移价差。后者也是交易者经常会忽略(或故意忘记)的项目。大体而言,滑移价差就是实际买价高于(或实际卖价低于)预期水平的差额。滑移价差发生的原因,大致上有两种:一是市场价格变动迅捷,使得最近成交价格(通常也是交易者预期的成交价格)与真正行情之间脱节;另一个是买卖报价之间的差价拉得很开。交易者希望按照买进报价买进,或按照卖出报价卖出是比较理想的。不幸的是,实际情况通常相反,使一笔交易在起跑线上就先吃亏。以单笔交易来看,佣金与滑移价差看起来非常不起眼,但长期累积的结果就很惊人了,甚至成为交易盈亏的关键。

系统设计过程中,一定要考虑所有相关的成本。不然看似不错的系统,实际运用却会发生亏损。让我们回顾考虑图13-1与图13-2的系统,假设来回一次的佣金为15美元,每笔交易的滑移价差为100美元。这些费用算不上高,但系统绩效却因此发生重大变化(请参考图13-3与图13-4),系统一转盈为亏,由原本获利7 025美元,变成亏损1.4万美元,系统二的获利则由原本的3.2万美元巨幅下降为约2.65万美元,所以,考虑交易成本之后,系统二还有不错的绩效,各项测试数值仍然有效,但系统一就惨不忍睹了,绝对不适合采用。系统一的最大问题在于交易比数太多,这也是一般短线系统的普遍缺点。

成为最佳交易者

如果想成为最佳交易者,在实际运用之前,任何想法或系统必须用历史资料进行测试。不先进行测试,就不知道系统是否有问题、结构是否健全。如果系统不具备获利能力,你当然不希望在实际交易过程中才发现。所以,最好还是花点时间先进行测试。统计上有效的测试,至少必须有30笔交易样本,而且要包含各种市场状况。测试不能只采用趋势明显的价格资料,因为你不确定交易系统将来是否会遇到横向走势。总之,考虑的市场状况不够完整,测试结果就不可靠,甚至有曲线套入之嫌。

系统建立与最佳化过程中,应该分别采用两组不同的价格资料,才能避免曲线套入。当系统建立完成,而且参数值也设定妥当,就要使用稍早完全没有用过的资料进行测试,最好还能包含各种市场状况,资料足够提供30个交易样本。系统的建立、最佳化与测试,如完全采用相同一组资料,将是最致命的错误。某组资料用来设定最佳参数值,然后又用相同的资料进行测试,绩效当然很好,但绝对不能反映将来实际运用的表现。请记住,交易系统的测试绩效不论多好,都不能保证将来万无一失,因为市场状况永远在变化。对于测试结果感到满意之后,或许应该在走势上,通过目视观察信号发生的位置,感受一下系统的运作。另外,关于系统测试,必须特别注意整体结果是否受到一两笔交易的重大影响。通常我们都希望采用绩效稳定、可靠的系统。很多系统的最后结果虽然相似,但过程可能差异迥然。有些系统的表现起伏很大,获利不稳定。

完成历史测试之后,必须评估测试结果,比较不同系统之间的绩效。整体获利金额与胜率的重要性,显然不如每笔交易平均获利与获利因子。特别注意,最大连续亏损的金额你是否承受得了?不要假定最大连续亏损不会马上发生,因为这种可能性毕竟是存在的。关于系统的获利能力,务必要考虑佣金与滑移价差,否则测试数据恐怕没有太大意义。

系统测试过程要有耐心,不要懒惰或不耐烦,因为这可能影响你的交易绩效。最后,务必记住,除非系统经过适当的测试,否则不要轻易采用。

历史资料测试的常见错误:

1.没有进行历史资料测试。

2.不知道系统究竟是否能够赚钱。

3,系统或方法还没有进行测试之前,就用于实际交易。

4.不知如何评估测试结果。

5.完全不怀疑系统的绩效与测试结果。

6.过度重视系统的胜率。

7.过度重视系统总获利。

8.忽略最大连续亏损。

9.过度强调曲线套入。

10.太过于重视最佳化程序。

11.测试资料不足,或不能充分反映市场状况。

12.没有适当的外部样本。

13.测试的市场不够多。

14.系统测试忽略佣金与滑移价差。

尽量发挥历史资料测试的功能:

1.采用具备测试功能的软件。

2.绝对不采用不适用的策略。

3.如果不满意测试结果,就不要采用该系统。

4.测试过程务必要有足够的资料。

5.样本至少要有30个。

6.最后测试要采用全新的外部样本。

7.至少保留1/3的资料作为外部样本。

8.针对不同市场进行测试。

9.系统必须对不同时间周期进行测试。

10.系统必须对不同市场进行测试。

11.最佳化程序与曲线套入都不可进行得太过分。

12.了解如何评估测试结果。

13.学习比较不同的系统。

14.不要低估佣金与滑移价差造成的影响。

15.确定自己的资金足以应付两倍的最大连续亏损。

16.避免绩效波动过分剧烈的系统。

17.确定系统的绝大部分获利不是集中在一两笔交易。

值得提醒自己的一些问题:

1.我的系统或交易方法有没有经过适当测试?

2.我的交易系统是否过度最佳化?

3.我的系统是否经过曲线套入?

4.我是否采用外部样本进行测试?

5.交易系统是否具备正数的获利期望值?

6.每笔交易的平均绩效如何?

7.测试过程对于佣金与滑移价差的估计是否切合实际?

历史测试.txt · 最后更改: 2020/03/10 13:53 由 121.23.60.171