期货海龟交易法则:即使公开所有的交易秘密,大多数人依然是爆仓的结局吗?!
来源:先锋期货
导读:
著名的交易大师理查德·丹尼斯想弄清伟大的交易员是天生造就的还是后天培养的,为此,在1983年他招募了13个人,教授给他们期货交易的基本概念,以及他自己的交易方法和原则,学员们被称为“海龟”。
这成为交易史上最著名的实验,因为在随后的4年中,海龟们取得了年均复利80%的收益。
理查德·丹尼斯,海龟奇迹的缔造者,证明了用一套简单的系统和法则,可以使仅有很少或根本没有交易经验的人成为优秀的交易员。
当时,海龟们认为应对理查德·丹尼斯负责,商定在他们议定的10年保密协定于1993年终止后也不泄露这些法则。但是,有个别海龟在网站上出售海龟交易法则而谋取钱财。
两个原版海龟柯蒂斯·费思和阿瑟·马多克为了阻止个别海龟对知识产权的偷窃和出售海龟交易法则而赚钱的行为,决定在网站上将海龟交易法则免费公之于众。
我们现在能看到的海龟交易法则,即是由此所得。
历史测试的谎言
骗子和无赖潜伏在黑暗的角落里,等待着不设防的猎物。不要成为他们的盘中餐。
巨石阵(StonehengePlus)系统在短短5年之内就把5000美元变成了100万美元。
StonehengePlus的发明者是斯图彭杜斯·马格尼菲克斯(StupendusMagnificus),美国航空航天局的一位科学家,他所发现的方法可以把用来发射火星探测器的程序用在外汇交易上。
凭借90%以上的准确性,这个系统在10年之内没有一个月是赔钱的。它太过珍贵,所以我们只打算出售100套。仅用1999美元就能得到你的那一套,现在就买,勿失良机。这是某系统兜售者的一则广告。
任何一个多少接触过交易行业的人都见过这样的广告,任何一个被纳入邮递名单的交易爱好者也都见过这样的广告。
但请买者们务必留心:有些假外行会利用不负责任的营销手段和不切实际的事后测试结果来兜售他们的最新发明。有很多兜售者其实很清楚,他们的系统永远也达不到他们所吹嘘的那种回报水平。
很多人还会故意调整测试方法,言过其实地美化他们的系统。不过,也不是所有的卖主都如此厚颜无耻。
有些人确实以为自己的系统是很灵的,只不过,他们要么没有意识到他们的基本方法有缺陷,要么不理解历史测试的局限性或是用历史测试结果来预测未来的弊端所在。
当然,也有一些人很善于避开历史测试的缺陷。但遗憾的是,这类人少之又少,而且对一个缺乏经验的交易者来说,很难区分一个系统是不是用好的测试方法开发出来的。
即使是经验丰富的交易者,也常常搞不懂他们的系统在实际交易中的表现为什么远不如历史模拟结果。
他们知道这个现象存在,也会想办法弥补这个问题,但他们并不明白问题的根源。实际上,历史测试结果和实际交易结果的差异主要是由四大因素造成的:
交易者效应:如果一种方法在近期赚了很多钱,那么其他交易者很可能会注意到它,开始用类似的方法模仿它,这很容易导致这种方法的效果不再像一开始那样好。
随机效应(randomeffect):历史测试的结果夸大了系统的内在优势也可能是纯随机性的现象。
最优化矛盾(optimizationparadox):选择特定参数的过程(比如选择25日移动均线而不是30日移动均线),可能降低事后测试的预测价值。
过度拟合(overfitting)或曲线拟合:系统可能太过复杂,以至于失去了预测价值。由于它与历史数据的吻合度太高,市场行为的一个轻微变化就会造成效果的明显恶化。
交易者效应
物理学中有一个叫作观察者效应(observereffect)的概念,它的意思是,衡量一种现象的行为有时候也会影响这种现象,观察者的观察行为反而打扰了他们的试验。
类似的事情也会发生在交易世界中:交易行为本身有可能改变交易赖以成功的潜在市场状态。
我称之为交易者效应。任何一件不断重复的事情都有可能被市场参与者注意到。同样的,一种在近期表现得特别突出的策略也很有可能被诸多交易者注意到。
但是,如果太多的交易者都开始尝试着利用同一种策略,这种策略将不再像从前那样有效。让我们考虑一下突破策略。
如果你知道一个市场相对较小,但会有很多大交易者在突破位买入,你如何从他们身上赚钱?有没有类似印钞机的必胜策略?
你会抢在其他交易者之前买入,趁势把价格推高到一定程度,引发这些大交易者的买单。然后你会把你的头寸卖给他们,稳赚一笔。事实上,你是在操纵价格,利用其他买家。
假设你是一个黄金交易者。假如你知道ACME公司会在每份410.5美元的价位大举买入1000份8月份黄金合约,你会怎么做?
如果你的买入量足够大,能把价格推高到这个限价点,你就可以在这个点清仓卖出。如果目前的价格离这个限价点还差得远,你手头的资金可能还不足以把市场推高到这个程度。
但如果现价已经接近这个点,比如说是每份408美元,那么几个买单就可以把价格推到足够高的程度,引发来自ACME公司的更多买单。
由于你的策略是首先买入,然后快速卖出,你可能会改变突破点本身的意义。
如果没有交易者效应,一次突破可能表明阻力位已经破除,市场向有利方向变动的可能性提高了。但如果加入新买单的影响,突破的意义会被改变,因为这些买单的目的只是将价格推高到突破点的程度。
举个例子。假设没有人愿意在每份408美元以上的价格买入,但有人愿意在每份409美元以上的价格卖出1000份合约,这些卖单就会像一个天花板,能阻止价格突破每份409美元。
如果没有你的买单,市场不会上涨到每份410.50美元的高度,所以突破不会发生。因此,如果你对一个以突破法为基础的系统进行模拟,这里将不会存在突破,自然也没有交易发生。
现在设想一下,你在同样的情况下进入了市场,以每份409美元的均价把那1000份合约照单全收了。现在,这个价位上已经没有卖者,所以你必须从要价每份411美元的卖者那里再买100份合约,把价格再推高一点。
这笔交易会引发ACME公司的买单,这时候,你可以在每份411美元的价位把那1000份合约卖给ACME公司。尽管ACME公司自我感觉良好,真正大获成功的却是你。
最后要做的只是处理掉那剩下的100份合约。由于在近期的高价位上已经没有买家,你只能低价出售,回到每份407美元的价位卖出。
不考虑佣金成本,你在这100份合约上赔了4万美元(每盎司赔4美元,每份合约100盎司,一共100份合约),但你在那1000份合约上赚了20万美元(每盎司赚2美元,每份合约100盎司,一共1000份合约),这样总共就赚16万美元。这对一次历时几秒钟的操作来说已经是很不错的结果。
ACME公司的那些寄希望于突破法优势的交易者们现在怎么样呢?他们手里有一个巨大的亏损头寸,而且进入这个头寸的原因与他们的历史检验的原理完全不是一回事。这就是交易者效应的后果。
这方面还有一个例子。几年前曾有一个系统因为多年来的优异表现而变得大受欢迎,有很多经纪人开始向他们的客户提供这个系统。
我曾一度听说已经有数亿美元开始追随这个系统。但就在它的影响力达到巅峰之后没多久,它的追随者们遭遇了一次旷日持久的衰落,而这样长和这样严重的衰落期在它20年的历史测试中从未出现过。
这个系统有一个容易被利用的软肋。按照它的法则,如果当日的收盘价超过了某个特定水平,那么就在次日早晨一开盘时买入或卖出。
由于其他交易者知道什么样的价位会引发这些买单或卖单,那么很简单,他们完全可以赶在当日收盘之前买入,然后在次日开盘之后马上卖出。
卖出价通常比买入价高得多,因为所有在一夜之间生成的买单都是在这个时候入市的,这是由系统的法则决定的。
预期性的买入行为
更糟糕的是,系统发明者们所选择的市场组合还包括一些流动性较差的市场,比如木材和丙烷。
对这样的市场来说,相对较小的交易量就可以对市场造成不小的波动,但却有这么多的系统追随者涌入这些市场。我相信,这个系统之所以突然之间陷入史无前例的衰落,原因之一就在于这种预期性的买入行为一度毁掉了它的优势。
其他交易者没有那么笨。他们会利用他们所注意到的任何重复性的模式。正因为这样,开发你自己的系统要强于追随别人的系统。
如果你能开发出自己的系统,你的优势就不太容易被其他交易者毁掉,因为他们不会知道你什么时候买入或卖出。
在我们为里奇效力的时候,我们常常会在差不多同一时间入市交易。其他交易者知道,如果他们开始接到我们的大定单,那么这样的定单可能会持续上一段时间。
因此,场内交易者和经纪人时不时地会抢先行动,导致市场提前变动。由于我们用的是限价定单,他们这样做是有风险的(这也是我们使用限价定单的原因之一),因为在市场提前变动的情况下,我们的定单可能无法成交,所以我们会撤单。
有时候,当我想买入或卖出,但又知道市场很容易在交易者的预期作用下提前变动时,我会故意发出相反方向的假定单。
这样,假如市场真的闻风而动,我会撤掉最初的假定单,发出一个接近于市价甚至是比市价还要有利的限价真定单。举个例子,如果我想买入100份合约,我可能先放出一个假卖单。
假设这个假卖单要求在每份415美元的价位卖出100份合约,而市场现状是买入价410美元,卖出价412美元,那么我的假卖单的出现可能令市价变为买入价405美元,卖出价408美元。
这时候,我可以撤掉假卖单,发出限价410美元的真买单,这个买单很有可能在每份408美元或410美元成交,比我发出假定单之前的市场卖出价要低。
但这种方法用得不能太频繁,只要能让其他交易者猜不透我们在做什么就够了。在某些方面,这有点像扑克牌中的“虚张声势”技巧,也就是明明手中的牌很差但却故意下大注去迷惑对手。
你不能没完没了地虚张声势,不然你早晚会被识穿,到头来输得一塌糊涂。
但偶尔虚张声势一下是很有用的,因为这往往会让你的对手们摸不着头脑,反而在你拿着一手必胜好牌的时候冒险跟注,白白给你送上更多的筹码。而且,虚张声势本身也有可能出奇制胜,也会增大你的赢面。
就像是偶尔的虚张声势让牌桌上的对手们晕头转向一样,海龟们也会想办法稍稍迷惑一下那些试图猜透理查德·丹尼斯的人。
我们有的用小止损标准,有的用大止损标准,有的在突破发生时买入,有的在突破之后买入,还有的在突破之前买入。加在一起,我们放出了不少烟幕弹,可能对丹尼斯执行他的交易帮助不小。
请注意,交易者效应在任何情况下都有可能发生,不一定是某些交易者故意抢先行动的结果。
只要有太多的交易者不约而同地试图利用某种市场现象,这种现象的优势就会被毁掉,至少在一段时间内不再有效,因为众多交易者的定单会削弱它的优势。这个问题在套利类交易中尤其普遍,因为这种交易的优势是相对较小的。
随机效应
大多数交易者都想不到纯随机性因素对他们的交易结果可能有多大的影响。在这一点上,一般投资者的认识甚至还不如一般的交易者。
包括退休基金和对冲基金的那些决策者在内,就连经验非常丰富的投资者通常也不知道这种效应能大到什么程度。事实上,单是随机性事件的影响就有可能造成交易结果的天壤之别。
假如把随机事件包含在内,一系列历史模拟检验的差异水平会高得惊人。本节将谈一谈与长期趋势跟踪策略有关的纯随机效应问题。
我在提到优势率这个概念的时候说过,我曾对一个随机性入市策略进行了模拟检验,这种策略仅根据电脑模拟的掷硬币结果来决定在开盘时做多还是做空。
当时我设计了一个完整的系统,采用以掷硬币结果为基础的进入策略和定时退出策略——在入市之后的若干天后退出,天数从20天到120天不等。
然后我对这个系统作了100次测试,所用数据就是我们在第十章中用于比较不同趋势跟踪策略的那些数据。
在这100次测试中,最好的一次获得了16.9%的年均回报,在10.5年的测试期内把100万美元变成了550万美元,但最差的一次测试却年均亏损20%。这说明,纯随机性事件可以导致巨大的差异。
如果我们加入一点优势因素,结果会怎么样?如果我们加入唐奇安趋势系统中的那种趋势过滤器,把这个系统变得类似于一个趋势跟踪系统,结果会怎么样?
这样一改,我们的入市决策还是随机性的,但前提是入市行动只能与大趋势的方向一致。这是个有趣的问题,因为无论你观察哪些趋势跟踪基金的表现,你都会发现它们良莠不齐,差异极大。
如果某个基金表现得高人一筹,它的管理者当然会说这是卓越的交易策略和执行能力的结果。
实际上,超常的表现也可能源于随机效应,而不是什么卓越的策略。如果你考虑一下这样的随机效应在系统有优势的情况下还能有多大的影响,你就能更好地理解这一点。
如果我们在这个完全随机性的系统中加入一个有正优势的趋势过滤器,那么100次测试的平均表现会显著改善。根据我的测试,平均回报率上升至32.46%,平均衰落幅度下降至43.74%。
但即使加入了过滤器,各次测试结果之间仍有相当大的差异。在100次随机测试中,最好的一次达到了53.3%的年均回报率和1.58的MAR比率,最大的衰落只有33.6%;但最差的一次只有17.5%的回报率,最大衰落却有62.7%之大。
运气或者说随机性因素对交易者和基金的表现有举足轻重的影响,尽管那些交易精英们不愿意对他们的投资者们承认这一点。
历史表现在投资者眼中就是响当当的硬证据,但实际上并没有那么硬。比如,如果你投资于某个基金,你一般希望这个基金的未来表现仍可以像过去一样好。
问题是,历史表现的好坏也是有运气成分的。有的基金管理得确实很出色,但运气一般;有的基金管理得很一般,但运气很好。如果只盯着历史记录,你是分不清实力与运气的。随机效应太大、太普遍,所以你不可能得出确凿无疑的结论。
考虑一下上面所说的100次测试中的最佳结果。假如你的交易风格比较保守,比如说你的风险水平只有海龟们的25%,那么其中的一次测试将得出10年内25.7%的年均回报率和仅仅17.7%的最大衰落。
我们都知道,一个随机性入市的交易者在未来的表现不太可能达到这个水平,因为随机性策略是没有优势的。遗憾的是,对一个只相信历史记录的人来说,诸多交易者之中总有某些看起来技高一筹但实际上极为平庸的幸运儿。
幸运儿
我们也可以从自然现象中认识随机效应。人类的智力、身高、体育能力、歌唱能力等素质都是随机效应的产物。
如果你在某种特征上拥有良好的遗传基因(也就是说,你的父母都有这种特征),那么你比大多数人都更有可能拥有这种特征,尽管你的这个特征可能达不到父母那种程度。
假如你的父母都很高,你也很可能是个大高个儿,但你的父母高于平均身高水平越多,你比他们矮的可能性就越大。
在遗传学和统计学上,这种规律被称作均值回归或回归效应。你的高个子父母也拥有高个子基因,而且拥有从身高角度看非常幸运的基因组合。
但是,一个幸运地拥有高个子基因组合的人可以把基因传给后代,却无法将运气传给后代,所以他们的孩子更有可能接近于平均身高水平,因为这个孩子不太可能拥有父母那样“幸运”的基因组合。
当你用业绩衡量指标去区分好基金和坏基金的时候,你很容易遭遇随机效应问题。因为运气好的平庸交易者要多于运气不佳的优秀交易者。
假设有1000个交易者,其中有80%接近于平均水平,只有五六个真正的高手。那么,只有五六个人有可能成为运气不佳的优秀交易者,却有800个平庸的人有机会拥有好运。
如果这800个人里有2%能幸运地拥有10年的良好记录(从前面所说的测试中可以看到,实际比率甚至可能高于2%),这意味着,拥有良好记录的固然有21个人,但其中只有1/4的人是真正的优秀交易者。
真正优秀的交易者
时间更加垂青真正优秀的交易者,而不是那些平庸的幸运儿。即使那800个人里有16个人能有10年的好运,他们的表现也很有可能在接下来的15年中趋于平庸。
相反,如果你仅仅考虑过去5年的记录,那么看似优秀但其实只是运气好的人将急剧增多。这是因为随机效应的影响在短期内更为显著。
在我们的测试中,假如我们把测试时间缩短,比如说只看2003年1月~2006年6月的情况,差异水平会有什么变化?根据测试结果,随机入市系统在这段时期内的平均表现普普通通,回报率是35%,MAR比率是1.06。
这个成绩远逊于那些真正的系统:三重移动均线系统的回报率是48.5%,MAR比率是1.50。布林格突破系统的回报率是52.2%,MAR比率是1.54。双重移动均线系统也有49.7%的回报率和1.25的MAR比率。
那么,有多少幸运儿从那100次随机测试中产生呢?有多少人仅凭好运就击败了我们的最佳系统呢?在100次测试中,有17次的MAR比率高于1.54;在这17次中,有7次的回报率超过了52.2%。
最好的一个随机交易者获得了71.4%的回报率、34.5%的最大衰落和2.07的MAR比率。如果你还想靠3年历史记录寻找优秀的交易者,请想想这些数据吧。
在你看短期历史记录的时候,你应该明白你所看到的表现有很大的运气成分。如果你想知道某个交易者究竟只是幸运的平庸者之一,还是少数真正的高手之一,你应该透过表面记录作更深入的分析,好好研究一下记录背后的人。
好的投资者投资于人,而不是历史记录。当他们观察交易者时,他们知道哪些特征预示着未来的优异表现,哪些特征反映了平庸的能力。这是克服随机效应的最佳方式。
有个好消息可以告诉那些正在作历史测试的人:如果测试结果有可能源于随机效应而不是系统的优势,你是很容易发现这一点的。我们会在第十二章讨论这个问题,但现在,让我们先来看看历史测试结果与实际交易结果不符的另外两个原因。
最优化矛盾
还有一种效应会造成历史测试结果与实际交易结果的差异,我称之为最优化矛盾。这个矛盾制造了很多困惑,对刚刚接触电脑模拟技术的新人来说尤其如此。
有些交易系统需要用特定的数值进行计算,选择这些数值的过程就是最优化。这些数值被称为参数。比如,长期移动均线的计算天数就是一个参数,短期均线的计算天数也是一个参数。
最优化就是为这些参数选择最佳或最优化数值的过程。有许多交易者认为最优化不是件好事,因为它会导致曲线拟合现象和拙劣的表现。我说这是一派胡言!
如果操作得当,最优化是件好事,因为了解参数变化的影响总比忽略这种影响要好。
当我们检验参数变化的效果时,我们常常能从一些迹象中发现系统的表现是随机效应或曲线拟合的结果,而不是系统优势的反映。
所谓最优化过程,无非就是观察一下调整参数值对交易结果的影响,合理地决定在实际交易中使用什么样的参数值。
有些交易者之所以认为最优化有害或有危险性,只是因为他们不理解最优化矛盾,而且曾见识过不恰当最优化的恶果——这种不恰当的最优化正是统计学中所说的过度拟合现象的根源。
所谓最优化矛盾,是指参数最优化过程有两种相互矛盾的效果:一方面可以提高系统在未来表现良好的概率,另一方面却会降低系统的未来表现符合模拟测试结果的概率。
这样,参数最优化虽然提高了系统的预期表现,但也降低了历史模拟指标的预测价值。我相信,正是因为对这种矛盾理解不足,许多交易者才会怀着对过度最优化和曲线拟合的恐惧而对最优化避之唯恐不及。但在我看来,恰当的最优化永远是明智的。
使用恰当的最优化所得出的参数值可以提高系统在实际交易中获得理想结果的可能性。一个例子有助于我们理解这一点。
考虑一下布林格突破系统,它有两个参数:一个是长期均价,一个是标准差,一定时间内的长期均价加减一定倍数的标准差就是系统的波幅通道。
下图反映了这个系统在不同标准差参数值下的MAR比率,横轴代表通道宽度,也就是标准差倍数,从1倍到4倍不等。
图中可见,2.4倍标准差对应着最好的模拟结果。任何小于或大于2.4倍标准差的入市标准都会降低MAR比率。
现在我们来看看最优化是不是真的有益。假设我们没有考虑通道宽度的最优化,而是凭主观感觉选择了一个3倍标准差的参数值——因为我们记得统计学课本说过,对正态分布来说,有99%以上的值会落到均值加减3倍标准差的范围内。
如果未来与过去的差别不是太大,那我们会错失很多利润,而且我们的衰落幅度比2.4倍标准差要大得多。差距大到什么程度呢?
看几个数据就知道了:在10年半的时间内,假设衰落水平相同,2.4倍标准差下的利润是3倍标准差的8倍之多,两者的年均回报率之比是54.5%比28.2%。
不做最优化意味着糊里糊涂地被运气因素完全左右。发现了调整这个参数的影响,我们就更好地理解了入市标准参数的作用和交易结果对这个参数的敏感性。
现在我们知道,如果通道太窄,交易次数就会过多,这会削弱系统的表现;如果通道太宽,你在等待入市的过程中会白白错过很多趋势,这也对系统不利。
如果你因为害怕过度最优化和曲线拟合而放弃最优化,你就得不到这种认识,而这种认识本来可以大大地改善你的交易结果,也为你在未来设计更好的系统提供一些新的理念。
下面将介绍其他几个参数,你会看到,它们的变动同样对应着系统表现的山峰或山丘形变化。
移动均线参数
下图反映了移动平均收盘价的计算天数对MAR比率的影响,移动均价的计算天数能决定布林线波幅通道的中心线,从150天到500天不等。
如图所示,350日对应着最佳的测试结果。任何大于或小于350日的参数值都会降低MAR比率。
下图则反映了不同退出标准参数下的MAR比率。退出标准是一个规定系统退出点的参数。我们在前文介绍布林格突破系统的时候说过,当收盘价穿越了移动均线(也就是通道的中心线)时,系统就退出市场。
在这次测试中,我的目的就是检验一下系统在这个穿越点之后或之前退出市场会怎么样。在图中,正的退出标准参数值对多头交易来说表示高于移动均线的标准差倍数,对空头交易来说则表示低于均线的标准差倍数。
相反,负的参数值对多头交易来说表示均线之下,对空头交易来说表示均线之上。
让我们看看退出标准参数值从–1.5逐渐变动到1.0的影响。如上图所示,参数值达到–0.8时,测试结果最好。任何高于或低于–0.8的值都会降低MAR比率。
最优化参数
之所以说历史测试有预测价值,是因为历史测试结果可以对交易者在未来的表现提供一些指示。未来与过去越接近,未来的交易结果就越接近于历史模拟结果。
作为系统分析的一种方法,历史测试也有一个很大的问题,那就是未来永远也不会等同于过去。但一个系统确实能利用反映在市场中的人类永恒行为特征来赢利,从这个角度看,过去就是对未来的模拟,尽管不是精确的模拟。
用全部经过最优化的参数得出的历史检验结果代表着非常特殊的交易结果,也就是这个使用最佳参数的系统用于过去的实战中将产生的交易结果。因此,这个模拟结果就代表着最乐观的历史回顾。
假如未来与过去完全一致,你在实际交易中就应该得到这样的结果,但未来永远也不会等于过去!
现在请回顾一下本章前后的各个图表:每个图的形状都像是一座山峰,而且都有一个峰顶值。你可以用下面这样的图来表示一个给定的参数值。
如果说A点的值代表着一个典型的非最优化参数值,B点的值代表着一个最优化的参数值,那么我会说:B值用在实际交易中更好,但如果用B值,未来的实际交易结果可能逊于B值下的历史检验结果。
相反,A值用在实际交易中不如B值,但它的预测价值更高,因为如果用A值进行交易,那么未来的实际结果与A值下的历史检验结果更为相符——也就是说,未来实际结果好于或逊于历史检验结果的可能性是相同的。
为什么?为了更好地理解这一点,让我们假设未来会发生很大的变化,以至于上面的图有可能要左移或右移一点,但我们不知道向左还是向右。
下面的图中的A、B值左右都标出了一个变动范围,这代表着A、B值的相对位置在未来的可能移动范围,我们称为误差幅度。
对A点来说,如果它的相对位置左移,它所对应的系统表现就要低于A点;如果它的位置右移,系统表现就会提高。
因此,参数值A下的测试结果有不错的预测价值,不管未来如何变化,因为它高估和低估未来表现的可能性是相同的。
但B点就不一样了。不管向左还是向右移,系统表现都会下降。这意味着B值下的预测结果很有可能高估未来的实际结果。
假如这种效应通过多个不同的参数而复合放大,那么未来变化的影响也会复合放大。这意味着,如果有很多参数都是最优化的,那么未来的实际结果与这些最优化参数值下的预测结果就很难吻合。
但这并不意味着我们应该在实际交易中使用参数A。因为即使未来的变化幅度相当可观,B点左右的系统表现仍然高于A点左右的系统表现。
因此,尽管最优化过程降低了预测价值,你仍然应该采用最优化参数,因为最优化参数更有可能带来理想的结果,不管未来如何变化。
最优化矛盾已经成了骗局和诡计的温床。有很多不道德的系统兜售者大肆炫耀他们靠特定市场上的最优化(特别是短期最优化)所得出的超高利润和不可思议的优异表现,但他们知道这样的历史测试结果不可能在实际交易中实现。
不过,最优化会导致虚夸现象并不意味着我们不应该最优化。事实上,要想建立有效的交易系统,最优化是至关重要的。
过度拟合或曲线拟合
骗子们还会用其他方法来制造不切实际的历史检验结果。最胆大妄为的那些人会有意使用过度拟合或曲线拟合来美化他们的系统。人们常常将过度拟合与最优化矛盾混为一谈,但实际上它们不是一回事。
过度拟合通常发生在系统变得过于复杂的时候。有时候,你可以通过添加法则来提高一个系统的历史表现,但这仅仅是因为这些法则影响了屈指可数的几笔重要交易。
添加法则会导致过度拟合,这对发生在关键时期的交易来说尤其明显。比如,假如一条法则要求你在接近最高峰的时候退出一个特别大的赢利头寸,这当然会提高你的系统表现,但如果这条法则对其他情况没有充分的适用性,这就成了过度拟合。
我曾见过许多系统兜售者在一段相对低迷的时期后用这种手段来提高他们的系统表现。他们有时候会把修改过的系统称为原版系统的“加强版”或“二代”。
如果你想购买这一类的“加强”系统,你应该好好研究一下那些新添加的法则,确保那些改进不是过度拟合的结果。
我发现用极端的例子来说明一种现象往往有助于我们更好地理解它。所以,我想给出一个极端过度拟合的例子。我会从非常简单的双重移动均线系统开始,然后添加一些法则,开始数据的过度拟合。
我们知道,这个系统在最后6个月的测试期内遭受了一次非常严重的衰落。所以,我会加入几条新法则,通过解决衰落问题来提高系统的表现。
当衰落幅度达到一定的水平时,我就把我的头寸规模降低到一定的百分比;在衰落期结束后,我再把头寸恢复到正常水平。
让我们把这条新法则添加到系统中。这个法则有两个需要最优化的参数:一是头寸压缩的百分比,二是开始头寸压缩的衰落限制标准。
根据模拟出的净值曲线,我决定在衰落幅度达到38%的情况下把头寸减小90%。添加这条法则大大提高了系统的表现,回报率从没有这条法则时的41.4%上升到了45.7%,最大衰落从56%下降到了39.2%,MAR比率从0.74上升到了1.17。你可能会想:“这是个很棒的法则,系统大有改善。”事实上,你完全错了!
问题在于,这个法则在整个测试期内只有这一次发挥作用。它发生在测试期马上就要结束的时候,而我加入这条法则是因为我已经知道了净值曲线的形状。
因此,系统已经被有意地进行了数据拟合。“这有什么大不了的?”你可能会问。那就让我们看看下图,也就是不同衰落限制下的MAR比率。
很明显,当我们把衰落限制下降到37%以下时,系统的表现急转直下。事实上,衰落限制只下调了1%,系统就从每年赢利45.7%陡然变为每年亏损0.4%。原因何在?
原来,下调衰落限制后,这个法则将在1996年8月间生效,导致我们把头寸规模大幅削减,以至于后期赢利太少,没能从衰落中恢复元气。
由此可见,这条法则并没有那么好。它在第一次试验中有效仅仅是因为那次衰落发生在测试期即将结束的时候,头寸削减对后期表现的影响并没有体现出来。
参数值的微小变化却引发了交易结果的剧烈变化,这种现象被交易者们称为峭壁(cliff)。
峭壁的出现是个很好的信号,这证明你可能已经犯了过度拟合的错误,而且你的实际交易结果可能会与测试中的结果大相径庭。峭壁现象也是我们认为参数最优化有益的原因之一:通过最优化程序,你可以发现峭壁,在开始交易之前就修正这个问题。
样本规模的统计学价值
正如我们在第二章中所说,人们往往对某种特定现象的少数事例过于重视,但却忽略了一个重要事实:从统计学上说,我们从寥寥几个例子中得不出太多的结论。
这个问题就是过度拟合的主要缘由。添加某些不太经常发挥作用的法则会导致无意中的过度拟合,而这会造成事后测试结果与实际交易结果的差异。
这个问题经常在不经意间发生,因为大多数人都不会从这样的角度考虑问题。季节性因素就是个很好的例子。如果你想用10年的数据来分析某个特定的季节性现象,你最多只有10个例子可用,因为你的测试期只有10年。
这样的样本规模没有什么统计学价值,因此任何以这些数据为依据的测试都对未来的表现没有太多的借鉴意义。
假设我们忽略了这个问题,想让电脑帮我们找到一个数据拟合的完美方法。你可能发现有好几年的9月份都表现不佳,于是你想加入一条法则,在每年的9月份都将头寸削减到一定的比例。由于你有电脑,你可能想借助电脑模拟来找出所有的季节性逆境时期,每到这样的时期,你就会削减你的头寸。
我把这样的方法用在了本章所说的系统中。我进行了4000次测试,看了看季节性调整的效果:从每个月的月初开始削减头寸,在特定的天数内削减一定的百分比,然后在特定天数之后将头寸恢复到最初的规模。
结果,我在10年的测试期内发现了两个可调整的时期。如果在每年9月份的头两天以及每年7月份的头25天内都将头寸规模降低96%,则系统的表现会提高,提高多少呢?
加入这条法则后,回报率进一步从45.7%上升到58.2%;衰落幅度略有提高,从39.2%变为39.4%;MAR比率则从1.17提高到1.48。乍一看,我们还是会认为:“这是个很棒的法则,系统大有改善。”
遗憾的是,这条法则生效仅仅是因为在过去的这两个季节性时期发生过严重的衰落,并不是因为这两个时期有什么神奇之处。
未来的同样时期内再发生同样衰落的可能性并不大。这就是最糟糕的那种过度拟合,但你想不到有多少聪明人曾落入这样的陷阱。
如果不知情,你可能会以为这个系统非常好,可以用来交易了。你甚至可能向朋友和家人们吹嘘这个绝妙的系统,想从他们那里筹一笔钱。
问题是,这个系统的实际回报率只有41.4%,不是58.2%;衰落是56.0%,不是39.4%;MAR比率是0.74,不是1.48。系统的实际表现注定会令你大失所望,因为你已经被曲线拟合手段下的美好景象迷惑了。
接下来,我会谈谈如何避免本章中所提到的这些问题。我会告诉你如何为了将交易者效应的影响最小化而判断一个系统真正的潜在效果,如何甄别随机效应,如何正确地最优化,以及如何避免对历史数据的过度拟合。