用户工具

站点工具


历史测试

这是本文档旧的修订版!


历史测试常见的错误

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

没有设定交易系统的绩效目标某些人会不断尝试修改系统,但永远都觉得不满意。他们花太多时间编写程序,实际运用系统的时间反而不多。如果预先设定系统的绩效目标,就可以避免这方面的困扰。开始时,就应该知道自己想要什么。如果目标很明确,也就很容易找到适用的系统。假设你希望系统的交易胜率为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美元或更多的滑移价差。所以,纸上模拟操作的表现可能很好,但实际交易却只是小输小赢。一些看起来不错的交易系统,考虑佣金与滑移价差之后,结果却亏钱。

历史测试.1582276221.txt.gz · 最后更改: 2020/02/21 17:10 由 laoqin