历史测试程序
猫否股票网 > 股票书籍 > 高胜算操盘 > 历史测试程序

  曲线套入

  我准备先来讨论曲线套入的主题,然后再讨论最佳化程序。先前,我提到曲线套入就是利用资料匹配系统。经过曲线套入之后,系统对于特定时期的特定资料,绩效看起来很好。举例来说,在走势图上看到某段时期的价格在特定区间内来回游走,你可以针对这种行情,建立一套交易系统,使其操作绩效特别好。你也可以编写一个滤网,让你恰好在市场崩溃前进场放空。操作绩效显然很好,但不是真的。在市场下次大跌之前,该系统还会发出类似的放空信号吗?你可以不断调整,使得交易系统与资料之间完全吻合,但问题是这套系统是专为这些资料而设计的,恐怕不能适用于其他资料。无论是哪段时期的资料,只要你愿意,都可以设计报酬率高达 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 可以显示月份或单日报酬的统计分配,让你了解系统的绩效概况。虽然提高系统报酬的稳定性并不是简单的事,但专业交易者应想方设法去做到。

上一页 高胜算操盘 下一页