21.9 测试结果有效性的演进过程
优化的结果(特别是多元参数生成的结果)看起来大都不那么完美。相关某种测试系统项下所有的交易都有可能盈利、股价下降的可能很小、相关交易策略可能在不断变化的行情当中显现,那么,此类系统在交易时一定会亏损。构建具有预测功能的系统(而不是历史上的适应性系统)需要在测试之前进行准备。
我们一直在强调,这里没有“最好”的系统。同时,虽然我们倾向于接受良好的测试结果,但是当结果不佳时,请你仔细查看相应的错误情境。更重要的是:要仔细验证所有的测试结果。
21.9.1 常识与统计学
你可以随时发现一个特定的移动平均线或相应指标,即其可在1987年崩盘之前或2008年次贷危机机爆发之前发出信号——做空标准普尔。我们拥有强大的搜索引擎,计算机也可以组合数百万种的趋势速度、过滤指标、动量指标、歧义规则等,这并不困难。如果你愿意在其他时间内于牺牲某种效应的情境之下获取近期历史上的最大利润,那也很容易。然而,在具体情况下,特别是在不寻常的情况之下,系统则似乎不能正常运行,而操纵交易规则的努力也是徒劳的。如果系统显示某种技术指标的组合模式将从上一次市场崩溃之中获利,那么这与如何应对下一次危机无关。
有一种“全谎言、半谎言和统计数字”的格言,这种说法是真实的。统计数据可以证明一个点或证明恰恰相反的情境,而这取决于数字的显示方式。消息中经常矛盾的是一个预防犯罪的组织说——过去一年的盗窃行为翻了一番,而警察部门则指出盗窃案件于今年的升速是5年内最慢的。同理,根据你查看的时间间隔,市场行情可能同时处于上升趋势和下降趋势之中。
最有利可图的测试结果可能不是你想要的,如果对1990~2003年的标准普尔行情进行了测试,那么测试结果将被10年期牛市行情所淹没:参数值可能偏向长期趋势,大部分行情上指,但是,在2002~2003年的横盘行情区间内,相关交易也会发生损失。然而,统计资料仍将看好相应的市场,因为牛市的利润远高于近期的亏损,但是,应用不寻常的牛市策略的方式则不是一个好的选择。正如杰克·施瓦格所说:“相应的错误是,在对以往范例情境进行孤立而精选的基础上,相应系统则以外推方式预期行情的未来表现。” [1]
遗漏项和相关情境
这里要克服的困难是你看不到的问题,其不属于测试数据的价格变动,也不属于遗漏项。每隔几年,市场就要经历震荡行情——2008年次贷崩溃之前就是2001年9月11日的恐怖袭击。同时,行情价格的历史充斥了经济报道所造成的小的冲击事件,但是,出现较大冲击事件的年份是独立的。如果你的测试不包括显著性的价格冲击情境之下的数据,那么你将无法知道是否能够在下一轮竞争之中生存下去。另外,如果你使用一个在方向上高度偏差的数据来测试相关的交易策略,那么随着股市进入20世纪90年代,其所生成的策略就会带有偏见。你必须不断地寻找潜在的问题——截至2012年年初,如果忽略所有的反向信息,那最好的交易策略是做多20世纪90年代初期的债券。但是,最终的通货膨胀模式和经济的发展会改变相应的情境,而一个多头策略将会减少相应的收益,所以你必须质疑相关策略在不同情况之下的执行能力。以下的指南已被开发多年,其宗旨是:避免测试中发生的最基本和代价最高的错误。同时,你也可以将自己的体验添加到相应列表当中。
21.9.2 寻找稳健性
一个强大的系统应该在各种各样的情况下都能够持续地运行,其中也包括那些不可预见的模式。从实践的角度来看,系统要想转化为一种成功的交易方法,它必须进行大量的数据测试,同时附带最少量的参数。在《期货真相》(Future Truth) [2] 一文的测试当中,表现最好的系统通常只有4个或更少的变量, [3] 而具有最佳预测能力的系统特征应该是:
(1)它必须基于一个健全的前提假设情境——每个规则和公式都必须应用真实的基本面要素或实际的行情现象。通过优化模式所发现的价格模式或相应周期似乎可能是一种启示,但更有可能是幻觉,我们需要测试足够的模式,进而统计其中一个似乎适合的情境。如果没有相关模式存在的根本原因,那么贸然使用则是不安全的,例如,利用较长期的趋势来衡量利率工具的方式是为了模拟美国经济政策的方向,而较短的1月趋势则可能最适合捕捉农产品的季节性变化。一个短线交易者可能会假设盘中行情的剧烈波动且强势收盘的情境会是相关交易者于下一个开盘时刻跟进,而基于经验和通过测试检验的观察模式通常才是正确的。
(2)系统必须适应不断变化的市场环境。一个市场行情没有变化的假设情境或者于过去数据中所看到的一切都将遭受金融资产巨大行情波动的干扰,所以自动调整的功能不使用绝对价格水平或固定的美元金额,它们可能应用通货膨胀指数、平减指数或者是适应波动率的止损值。总之,交易规则的变化要基于当年的情境是季节性模式还是非季节性模式,同时,其要基于风险的变化来调整相应的头寸。
(3)系统必须经过正确的测试。依据统计学原理,最好的测试会使用最多的数据,而更多的数据包括:牛市行情、熊市行情、横盘行情或大或小的价格冲击事件以及那些不稳定和低迷的时期,而有些分析师则认为,旧的数据不再有效且不能替代更多的数据。如前所述,正确的测试程序包括:使用样本内和样本外的数据;或者,你可以进行模拟交易,直到有足够的范例情境对样本外数据和你所测试定义的期望值进行比较为止。
上述三点似乎是最重要的,从长远来看,它们都必须包括在创设稳健交易系统的过程之中。
21.9.3 绩效标准
我们假设系统已经遵循了正确的规则,那么测试结果是否会足够好呢?虽然相关策略在股价下跌的情况下能够显示稳定的利润,但是更简单的系统能做得更好吗?令人高兴的是,系统显示的20%的收益率能够和股票的25%的平均收益率相比肩,如此,相关行业则具有很强的竞争力。
1.衡量基准
我们有必要建立一个衡量成功交易的方法,其中最好是一项明确的指标,比如标准普尔指数、雷曼兄弟财富指数、一类基金(如富达基金或巴克莱对冲基金所公布的CTA(商品交易顾问)指数)。同时,相应的基准会将现实的因素添加到期望值当中,而制定交易策略的原因是:我们所做的交易与诸如苏格兰皇家银行之类的机构所提供的投资计划相比,要赚取更多一致性的利润;或者在不稳定的时期,所面临的风险较低;或者具有更加多元化的收益结构。而根据你所测量的期限,标准普尔500指数的风险回报率之范围是从1.0到0,这意味着在更好的测试结果中,任何一年的相关风险超过年化收益率的概率会达到16%。
一位经理人获取巨大利润或损失的消息如果被瞩目,则不是一件好事情,其只不过是一个难得的情境。这里,我们所要强调的重点是,每年都有一个好收益,而最大的收益只能对应高风险。另外,你不应该对过去月度收益最高的CTA指数行情非常不稳定的表现情境感到惊讶:一个月收入最大的基金,在6月增长了20%,但当年仍然下降了5%,这一现象太普遍了。
相关的测度基准当中隐藏着不准确性。在被公布的基准之中,有两个重要的特征,即存活乖离性和收益率的不对称性。我们考虑最后一次情境:2008年亏损50%的对冲基金在2009年上涨了50%,那投资者收回他们的损失了吗?当然不是。收益亏损50%之后,50%的获利情境仍然使投资者亏损25%,存活乖离是一个不同类型的问题。另外,虽然对冲基金已经报告了每个月的业绩,但是如果有一个致命的损失使其停业,那它通常不会报告上个月的收益情况,因为其没有动力去做这样的事情。所以,绩效基准经常会省略每月最大的负收益率。
2.测试结果的度量模式
导出测量结果的前提是事先指定每个参数的测试范围。相对于广泛而合理的参数值而言,优化模式应该能够确定测试采样的维度,而这个范围应该在测试之前建立且不能变更。例如,如果短期移动平均线在3~15天内被测试,那么用于定时机制的RSI指标的时间序列将是3~10天;你应该不会在3~50天内测试RSI指标,因为较长的时间框架在原始计划的上下情境当中没有意义。而更糟糕的情况是:如果45天的RSI指标被证明是最好的,那么,最初的概念可能会被丢弃,而此种做法则最有可能使交易者陷入过度安全的死胡同。如果相应测试使用普通的范围且没有盈利能力,那就应该对相关的概念进行审查。
这里,我们用于评估任何交易策略的且受到欢迎的某些绩效标准如下。
(1)信息比率 。这个单一的、最重要的数值是:年化收益除以年化收益的标准差,它能为你提供一个明确的方法来评估相对风险的回报率以及回报的平稳度。第23章的第23.4节对此类问题进行了详细的探讨。另外,我们也可以使用其他的模式,如TradeStation平台的利润因子,即毛利润除以总损失。
(2)净利润或净亏损 。此类指标虽然不是选择参数值的最佳标准,但是利润是交易的原因。虽然没有人会选择产生净损失的系统,但是其他统计信息将告诉你,哪些参数值会是最佳的选择。
(3)交易量 。这个简单的数值表示你的测试是否能够长期地生成可靠的结果。假设有几笔交易可能显得非常有利可图,但是,少量数据在统计上是不可靠的。具有更多交易的系统具有相同的收益率,同时,其达到预期效果的概率会更高。
(4)盈利交易的百分占比 ,也被称为可靠性。其高于60%的值可以被解析为,你可以定期获取收益。如果顺势交易系统的可靠性在30%~40%,那么该系统将正常地运行。
(5)每笔交易的平均净收益率 。每笔交易的平均收益表明:系统实现相应回报率的情境是多么困难。如果每笔货币交易的平均回报为50美元,那其很可能会被一种超过4个点的点差所淹没,而这只是一个总值为100美元的期货循环合约。许多非常快速的交易系统看起来很好,而到你实际应用时则不是那么一回事——标准普尔多空双方所应承担的点差损失为50个基点,固定收益为1/32~2/32(约45美元);能源产品点差为20~30点(约100美元)。由于存在市场流动性和行情波动的状况,股票交易当中的利差会有所不同,而利差值应该尽可能地被准确定义,我们最好从实际交易中确定。尽管应用更大点差值的做法会消除快线交易系统所可能获得的更大收益,但是其可使相关交易变得更加保守一些,而这是一件好事。
(6)最大降幅 。其是金融资产价格从峰值到底值波动期间的最大跌幅。这种测量可能非常不稳定,并且其不可能成为未来所能看到的最大风险,然而,它能粗略地概述市场交易所需的最低资本。令人惊讶的是,较小规模的最大跌幅所对应的是过度拟合情境或非常小的测试周期。所以,相对于一个独立的最好的测试结果而言,将经过一系列测试的最大降幅取平均值的方法则更为安全。同时,投资者通常会将交易账户资本化模式确定为最大跌幅的3倍。
(7)年化收益率 。收益率指标要求初始投资的规模是已知的。投资是根据风险-收益比率或历史回报的标准差来计算的,其与目标波动水平挂钩。年化收益率允许你对某种测试与其他测试或相关基准进行比较。
(8)平均恢复期间 。在现实的交易系统之中,资金的大幅缩减可能是不可避免的,但是,于更短的时间内予以恢复则是最理想的。我们所追溯的区间是两个连续的股本高点之间的步长,其间大幅回落的情境似乎更适合大多数投资者。
(9)行情定时机制 。所有交易的前提是它们都具有同等的利润和风险,市场上的某种交易系统会比另一个系统更受偏好。如果两个系统具有大致相同的性能特征,那么在市场上,其中一个系统必然会暴露于更少的价格冲击事件之下。牺牲一些潜在利润可能是一个很好的平衡方式,从而可以更加频繁地平仓离场,正如第22章所讨论的那样,平仓离场是防范风险事件的唯一途径。
(10)固定收益的斜率 。如果季节性或年化收益指标被保存并且通过相应收益率绘制出线性回归图示,那么相应曲线的斜率将显示,交易策略的绩效是否随着时间的推移而恒定。我们应该将下降的斜率理解为:其过去的表现较好,即也许在20世纪90年代,股票市场上的出色表现生成了相应的趋势体系,但是,其现在的情况并不好。上升的斜率意味着相关交易策略在当前的行情模式下比旧的要好。水平的斜率则是最好的,其表明所有时间框架下的系统性能是一致的。
在确定了所需了解的单个测试的结果之后,我们还必须建立其他交易规则,其中包括如何评估最终结果,这将有助于避免生成扭曲的规则,从而提高相关的适应性。
3.测试结果的平均模式
我们可以使用所有测试结果的平均值。在评估测试结果时,指定合理的参数范围很重要。几乎所有的测试都将显示损失情境,但是,我们还是希望看到一些具有吸引力的收益领域。如果测试了1000个范例情境,其中30%的测试显示每年的收益率为25%左右,30%的测试表现为盈亏平衡,最后的40%则显示各种损益,那么你可以说,30%收益相关的测试相应从广泛的区域内选择参数值。这里我们假定市场行情将继续运行,其允许相应参数在未来一年生成收益情境。同时,我们最好假定价格的运行模式会发生变化,而你还不能确定哪种参数组合是最好的,不管所选择参数的过去收益率如何,你的期望值应该是所有绩效测试的平均值。
如果我们预期所有测试的平均收益能够对应高额利润,那将是乐观的,但是,这只是一个正确的目标。比较系统时,所有测试的平均值是最高的,测试的次数也是最多的。如果你接受实际交易的表现均以所有测试的均值为代表,那你的期望值则是现实的。另外,一个策略可能成功的统计指标是:
经过调整的收益率=所有测试的平均值-所有被测试的收益率的1倍标准差
而满足上述条件的系统实现相关收益的概率应该是84%。
4.重新查看异常值
实际上,一个系统不应该将其盈利能力放在测试区间内单一的主要市场之上,特别是如果生成利润的模式实际上对应的是一个震荡行情,那么该系统获取相关利润的概率只有50%,并且在未来还会有平等的损失概率——消除震荡行情初始第一天或两天内的情境的做法可能是切合实际的,不过,其将来会有持仓错位的可能性;如果系统发布意外的收益情境,那么其风险会被错误地减少。价格冲击事件将在第22章中讨论。
5.巨额利润和巨额亏损情境的汇聚模式
对任何系统的净绩效来说,最大的损益是至关重要的,因此你应该特别努力地去研究相关的领域;同时,你可能会发现,如前所述,最大的利润往往是价格冲击的结果,或者其源自之前没有看到的错误数据。如果系统只有较大的获利情境,而没有伴随较大的损失,那就可以确定你已经适应数据了。
21.9.4 灵敏度的测试
一旦选择了参数值,接下来我们应该进行灵敏度的测试。灵敏度测试是一种方式,即当个体参数值和组合参数值向上和向下稍许移动之时,其可发现相应绩效的变化情境。强大的系统解决方案在应对数值变化时应该保持适度敏感的态势,在某些情况下,系统表现会有所改善,但一般来说,随着价值观的变化越来越大,预期情境会有一些衰减。总体而言,参数值的小幅变化不应危及交易策略的盈利能力。如果所有其他参数值的性能都在下降,那么当前模型是一个峰值相关的解决方案,这通常意味着它是过度拟合的且不会达到预期效果。
测量n维空间的灵敏度
当使用多个参数时,灵敏度需要被视为n维的问题,其通常被称为n维空间。现在,让我们来尝试看一看这是什么意思并找到一种方法,从而显示n个参数的变化情境。
在范例情境当中,我们使用四个参数,将w0 、x0 、y0 和z0 配置给选定的或核心的参数值,并且在(0,0,0,0)处生成相应绩效;同时随着参数值的变化,新的测试结果将离开核心,朝四个方向之中的任何一面延展。这里有n个参数,它们将在n个方向之上移动,而我们可以通过查找n维“球体”的半径r来测量它们的位置,即
由于所测试的位置是由半径定义的,所以相关测试之间的区别是它们与核心之间的距离。同时,所有的参数集可以被排序,从最小到最大,例如,如果它们被划分成10个相等的集合,那么它们会被显示为外向型的、某一球体的同心层,通过对同一层每个测试的绩效统计值进行平均,我们则可以看到:相关均值于任何方向离开核心时,都有衰减的迹象;然后,我们即可进行n维灵敏度的测试。一个进取的分析师可能会采取更进一步的步骤,对参数(在预定范围内)使用随机数,从中点参数值开始计算半径以及相应的绩效统计信息,进而发现最灵敏的那一个维度。
21.9.5 各维度区间的解析方式
系统会很容易地显示附带丰富利润的交易规则、指标体系和具体范例情境,但是,其整体的表现不佳。许多书籍和系统的兜售都是以具体范例和交易方式为佐证素材的,这些实例看起来很合理。同时,如果相关概念是健全的,那么,当有根本的或经济上的证据(比如行情在美国农作物收获时会呈现季节性低点)时,我们则倾向于接受相应的范例模式。然而,一个系统可能取得成功的证明方式只能是通过对统计绩效的概况进行长期测试和披露的方法来完成的,而不是通过几个精选的范例模式来构建的。
21.9.6 “统计数据”的意义
在通常情况下,显著的统计结果在实践当中的影响并不显著。我们现在回到测试的问题,反复测试的方式即可知道有多少组合数据已被列入样本之内。如果所有测试的70%的情境是有利可图的,那么我们就可以认为,之前所建议的交易方法是有效的。当然,使用合理范围的测试值只是初步的测试,如果我们随后缩小范围以消除总是赔钱的计算周期,那么,该规则将不再适用。
如果对1000个不同的、分布在广泛范围内的参数值于10年的历史数据之上进行测试,那么考虑到系统统计上的成功模式,它们当中有多少能够盈利呢?这里并不清楚,但是,考虑到测试的数量,发现一个非常成功参数的方式肯定没有意义。此外,如果你继续尝试新的交易理念并最终成功,那么就真的有意义吗?我们是不是应该考虑所有交易策略累积测试的次数呢?在100种交易策略当中发现1种成功的策略并不像基于一个可靠的前提找到第一个成功的策略那样令人欣慰。另外,在指标和趋势组合情境的启动过程当中,你一定会发现偶然的但微不足道的成功模式。
21.9.7 只在一个市场工作的系统
如果一个系统是为了标准普尔期货而构建的,那么它在纳斯达克100指数和道琼斯工业指数上是否起作用呢?从报价机制上我们可以看出:这些市场的价格走势非常相似。如果最初的救济申请报告出奇得高,那么它们的行情会一起下跌;当零售销售量低于预期时,它们也一起下跌。三个市场中的每一个都代表着一组不同的股票并且每一个都有不同的波动性配置系统。同时,如果英特尔公司发布了令人失望的盈利报告,那么其对纳斯达克指数的影响会超过它对标准普尔或道琼斯工业指数的影响,而影响英特尔公司盈利的情境就会不可避免地影响所有市场的股票。
一个指数市场之上有利可图的交易策略相对于类似的指数行情而言也是有效的,这是肯定的,除非它对某类市场而言具有一些独特的属性。然而,盈利能力可能会有所不同,如果相应策略对标准普尔指数而言会产生良好的利润,但纳斯达克指数却因之而生成了损失,那么最有可能的情境是,其中某一市场的相应参数值可能被过度拟合,而其他两个指数市场的样本外数据的表现则是良好的。
针对一个市场的广告系统
所有的交易者会不时地收到邮件,这些邮件能够提供高度专业化的,被称为“最牛交易者”“黄金的盘中交易系统”或“通过股指交易轻松获利”之类的程序,这些系统已经被微调到一个附带独特市场规则的最好的假设情境,其优化模式则是一个众所周知的过程,可以被合理地使用,但也容易被滥用。因为相关提议往往展示很大的利润,而且风险不大,所以,相关结果不现实的判断似乎是合理的,这是一个明显的“太好而不真实”的范例模式,而且,因为程序的规则没有被揭示,所以你不可能自己去测试它们。
[1] Jack D.Schwager,Schwager on Futures:Technical Analysis(New York:John Wiley & Sons,1996),673.
[2] 约翰·希尔(John Hill)和乔治·普鲁特(George Pruitt)合作撰写了《期货真相》一文(北卡罗来纳州亨德森维尔市),其中制作了一个验证和检测的交易系统,它出版在《期货真相杂志》(Future Truth Magazine)上,网址:www.futurestruth.com。
[3] John Hill,“Simple vs.Complex,”Futures(March 1996),57.