17.1 自适应性的顺势交易系统的计算模式

    这里,我们首先要做的是:寻找相关趋势的时间步长的变化模式。而相对于标题项下的技术模式而言,其都是基于一个前提,即应用一个长期趋势的效果较好,而且此类趋势对价格变化的反应速度较慢,无论是行情处于横盘震荡阶段,还是具有较低的波动性或者在考夫曼设定的情境下具有相对较高的噪声因子都不例外,这似乎是一个合理的假设。但是,横盘行情的判断是很难的:价格可能于一周之前保持不变;然而,在近5天之内迅速上升了3天;然后,呈现出巨大的反转情境;第五日恰巧在同一价格水平之上继续下跌。总之,在许多方面,自适应技术可以提高标准趋势的基本计算功能,但是,其不能解决所有的问题。

    17.1.1 考夫曼的自适应性移动平均模式

    考夫曼的自适应移动平均系统(简称KAMA) [1] 起始于1972年,此种模式是以噪声行情项下的慢线趋势为基础,而不是以低噪声的趋势为蓝本的。同时,所谓噪声是指不稳定的价格运行方式——在任何图表上,我们都可以看到相关价格行情在某种趋势或横盘调整的周期之内上下波动。同时,我们也会注意到:噪声因子所代表的不仅仅是波动率(对于噪声因子更加直接的研究可以参考第2章)。KAMA模型对噪声因子的假设是:在一个相对嘈杂的价格运行模式中,趋势线必须保持滞后性,从而避免被正常但不稳定的,且导致意外变化的价格行情所穿透。另外,当价格始终于某个方向移动时,其所显示的噪声水平很低,而我们则可以使用任何的趋势速率,因为此时没有虚假的方向变化,图17-1显示了在噪声较低的情况下相应价格的移动状况,以及在高噪声的情况下相同价格的运行模式,其中在较低噪声的情况下,相应趋势线可被定位于基础资产的价格方向上;在较高的噪声情况下,相应趋势线则显得非常滞后,从而使其被穿透的可能性达到最小化。

    图17-1 高低噪声因子项下之价格运行模式的近似形态

    KAMA模型基于最小的计算周期且应用最快的顺势系统,尽可能地展现目前的市场状况。同时,其使用一个指数平滑公式来区分不同趋势的速率(因此,它并不只是基于名义上的“移动平均”概念),从而改变每个时期的平滑系数,而之所以要选择平滑系数是因为我们要以之全域覆盖相应的趋势周期。另外,此系数可以通过与一定快线速率项下移动平均线的整数值相比的形式而用百分数来表示(详见第7章所讨论的指数平滑法),KAMA模型的计算公式如下:

    式中 KAMAt ——自适应移动平均新值;

    KAMAt-1 ——截至前一天的自适应移动平均值;

    pt ——当日收盘价;

    sct ——平滑常数,每个周期项下的计算形式为:

    fastest=2/(移动平均快线周期值+1);

    slowest=2/(移动平均慢线周期值+1)。

    上式之中,快速值fastest和慢速值slowest分别代表了KAMA模型所计算的时间周期,每个值都可以转换成等值的指数平滑系数,而且,这些值通常被设置为2和30。那么,最慢的平滑系数的平方值就变为30×30,其等于一个非常迟钝的900日的周期趋势。当市场噪声值很大的时候,相应的趋势就会受到影响,进而会阻止相关的运行模式。此外,当市场行情稳步上升,且没有伴随n日的反转情境时,相应趋势的速率可以达到一个非常快的水平,其等同于4日周期模式。

    至于效益比率ER,我们现在称其为分形效率,相对于整个n日周期来说,如果相关价格都沿同一方向运行时,它的数值为1;当整个n日周期内的价格没有发生变化时,它的值为0;当价格在一定区间内进行大幅波动时,与分子相比,其分母的数值会变得非常大,此时的ER值则接近于0。另外,较小的ER值会生成一个较小的平滑常数以及一个较慢的趋势行情。KAMA数值和指数平滑系数的变化情境则如图17-2所示,即10日KAMA值被绘制在图的上方,与2003年9月纳斯达克100指数的价格相呼应,其间,趋势线稳步走高,然后迅速下行,接下来又开始上升。由于趋势线的加速上升,价格的运行模式也呈现阶梯状的上升形态,而紧随其后的则是升势放缓,行情逐渐下行。实际上,趋势线从不后撤,而且,在限定的条件下,于趋势线的方向之上,相应系统可以生成各种交易信号。

    在图17-2的下方,其显示了平滑系数sc的变化情境:在本例中,其所达到的高点仅仅微微超过0.40,且相当于5日移动平均线;还有一个接近于零的低点可能在公式中生成900日的最大计算周期。在这个图的上方我们看到1~5月,趋势线呈现一种左右摆动的状态,而此时的平滑系数很小。

    如果你在KAMA模型的计算过程当中使用默认值的话,那么,其ER值的计算周期会超过10天;平滑系数的范围则介于22~302。同时,我们设C为收盘价,如此,TradeStation交易平台的编程语言为:

    图17-2 2010年9月~2011年纳斯达克期货迷你电子盘各交易日的考夫曼自适应移动平均值和平滑系数值

    其中括号内的数字(如[10])代表了过去的天数。

    1.相对于效益比率ER值而言的时间周期

    在考夫曼的自适应移动平均线中,时间周期只会影响效率比的计算。我们要尽可能地将计算周期的n值缩小,使其能够评估数日的行情走势,进而将相关趋势由快变慢,再由慢变快。用户可以先从8~10天的周期开始测试,其测试的周期天数没有必要超过相应行情于同一趋势中所运行的天数。如果价格居于相同的方向,且在10多天的变化很小,那么,为期10天的ER值就是一个很好的选择。如果使用超过10天的计算周期,那只会减小ER的规模而不会添加任何具有附加价值的计算结果。

    2.波动率的选择方式

    在TradeStation交易平台的编程代码中,应用波动率函数summation(absvalue(C-C[1]),10)则可以添加收盘价-收盘价的行情变化模式,而不是高点-低点的行情波幅,其背后的思想方法是:捕捉价格运行的效率。一个非常嘈杂的行情模式很像一个醉醺醺的海员,从一边走到另一边(从不走回头路),且一直在前行。还有,噪声不只是波动率的问题,如果道琼斯指数在一周内的波幅有100点的话,那么我们要重点观察的是:其是否每天上升20点,或者周一上涨了100点,而周二下跌了100点,然后,周三又增加了100点,等等。显然,价格从高点到低点的移动并不是那么重要,关键的问题是:我们要找出它运行的模式,也就是其运行的路径是如何完成的。

    3.实际操作的问题

    相关的市场行情偶尔会出现一系列的价格运行模式,其中某些行情于同一方向之上运行,且没有反转迹象,但是,其进展的增幅却非常小,那么,此时所得到的ER=1。虽然前述情境在理论上是正确的,但是,我们最好还是要以某个计算周期(比如5天)所对应的日间平均变化值为阈值来过滤。同时,我们要保持指数平滑系数不变,进而规避错误的交易信号,这样做是最安全的。

    第二个问题是指数平滑法的应用。因为平滑系数的变化是改变趋势速率所必需的条件,所以,指数平滑技术显得非常便利。但是,其负面影响是:当相关趋势线被价格穿透时,其会经常改变方向,而较小的平滑系数又会迫使趋势线呈现横盘调整的态势,从而产生适得其反的效应。在图17-2中的右侧远端,一个两周的计算周期所对应的KAMA趋势线呈现横盘调整的情境,而价格此时却在上下移动。如果临近观察,我们会发现该趋势线被价格穿透时,其实际上已经改变了方向,尽管这些变化幅度非常小也无法掩盖。同时,在KAMA方程的pt -KAMAt-1 的表达式中,当pt >KAMAt-1 时,新的趋势值为正;当pt <KAMAt-1 时,新的趋势值则为负。

    为了解决上述问题,我们可以基于价格的轻微渗透情境用一个很小的过滤值来终止相应趋势的变化过程,这种过滤值可以是一个变量,比如基于趋势线的0.1倍的标准差。

    4.KAMA模型所相关的交易规则

    自适应移动平均系统可以使用趋势线来确定交易的方向,进而于趋势上扬之时买入,于趋势下跌之时卖出,而其他两个交易规则是:

    ·令计算周期小于14,且最好是8~10天,因为价格在同一方向连续运行14天的情况很少,因此,任何超过14天的周期不会改变相应的数值,其只会使之更小。

    ·将时间序列的上限固定在30日左右,如此,趋势线的反应就不会那么敏感;同时,相应周期的下限要大于2。

    ·应用一个小的阈值来过滤趋势方向的各种变化。

    在英航网站上TSM软件内的Adaptive Systems程序中存有一种交易策略,即检测KAMA模型、自适应相关系数以及VIDYA模型(于下一节中探讨)的绩效成果,而同名的指标体系则可被用来刻画前述概念名下的各类趋势线。

    5.分形自适应移动平均系统

    约翰·埃勒斯将自适应移动平均系统分为很多种变形模式,但其中最有趣的是使用分形技术。 [2] 所谓分形技术(即自相似性)可以将各种形态拼凑在一起,且以之代表任何的轮廓或其他类型的图表。分形技术的一个重要特点是:其可以在任何水平下测试各类细节雷同的变量,而典型的例子就是使用格尺来测量一个岛屿的海岸线(在地图上)。如果我们有一个非常大的地图并放置一个长尺,使其每一端都可触及海岸线,那么我们即可得到一个岛屿的边界长度的平滑值,格尺会跨越海岸的一些凹凸不平的部分;如果我们使用的标尺变小,那么相对于海岸线的测量精度将会提高,因为如此的测量工作将会涉及许多较长标尺所跳过的不规则边界。按照前述这个逻辑,如果我们使用一个无限小的尺子,那么,海岸线将变得无限长。然而,这并不是一个实际交易的解决方案。

    分形维数(D)是于各个层次细节上描述相关图形(如我们的价格系列)特征形状(或稀疏)的一种计量尺度。其计算方法是利用不同规模(表示为s)的N个(标的资产)相同的形态模式来覆盖整个的图形结构。如此,有一种方案可能将5种规模的资产(令s=5)由100个方块(N=100)来分割。同时,根据埃勒斯公式,两组不同尺寸的标的资产数量的相关性N2 /N1 为:

    作为一个简单的范例模式,如果我们想知道一条10英尺长的线的分形维数,那么,我们会用两个不同尺寸的框图,即s1 =1英尺,s2 =0.1英尺;如果框图规模为1英尺,那我们可以配置10个框图(N1 =10);如果框图规模为0.1英尺,则可以配置100个框图(N2 =100),如此导出的分形维数为:

    埃勒斯以上述方法来创建自适应顺势交易系统,其中包括上轨线、下轨线、追迹止损点以及获利目标价位。其初始的交易策略已经发生改变,而相应的编辑语言现存于英航网站上TSM软件内的AMA Fractal程序中(附带相应函数和指标体系)。

    17.1.2 钱德的变量指标动态平均系统

    图莎尔·钱德的变量指标动态平均系统(VIDYA) [3] 最早出现于1992年3月的《股票与商品技术分析》杂志中。VIDYA模型和考夫曼的KAMA模型均使用指数平滑法来测度每日行情趋势的相关速率。VIDYA模型从一个固定的平滑常数0.20开始,且根据相对波动率的变化而变化;同时,其使用了两个时间段——9天和30天;另外,此模型应用收盘价格来确定标准差的比率。当波动率较高时,标准差的比率也会增高,从而导致平滑常数的增加,随后呈现一个较慢的趋势,因此较高的波动率会使趋势变慢,而较低的波动率则会加快相应的趋势,其相应数理公式为:

    式中 s——固定的平滑系数:我们建议使用9天的等效值(比如s=2/(9+1)=0.20);

    C——收盘价;

    t——当前时期;

    t-1——之前的时期;

    k——相关波动率,且

    式中 stdev——标准差函数;

    n——最近的n天;

    m——以天数形式表现的一个较长的历史时间间隔,且m>n。

    钱德所采用的是一种非常实用的相对波动率的测量方法,其是基于标准差或者相对于较长历史周期m而言的过去n天的价格运行模式的分布状态而构建的。当k>1时,波动率大于历史波动率,而当k<1时,则波动率较低。通常情况下,标准差使用的是价格的变化值或收益率,而不是实际的价格。实际上,测试结果可能会受益于前述这一变化。另外,VIDYA的编辑语言现存于英航网站上TSM软件内的Adaptive Systems程序中,而关于其绩效的阐述和比较模式会在下一节中探讨。

    相关系数r2

    还有一种由钱德提出的直观方式,即应用相关系数r2 ,其是测度线性回归计算中残差数值的一种方法。当回归拟合非常强的时候,r2 的值则接近于1;当没有明显的市场方向时,r2 值则接近于0,这恰好适应了KAMA模型和VIDYA模型的平滑系数的变化情境。

    当为上述技术编程时,残差相关性的计算不同于标准差相关系数的计算模式,但其可以应用第6章中的公式来完成。为了避免不必要的复杂性,相应的程序应用收盘价之间的相关性以及连续级数1,2,3…等数值计算变量的近似值(方法1);然后,根据收盘价格的线性回归属性计算相应残差的现值(方法2),且发掘当前残差序列的相关系数,在TSM软件内的Adaptive Systems程序中,相关的编程代码应用方法2绘制测试的结果,而方法1的测试结果被包含在普通的括号之中。

    17.1.3 自适应移动平均的MESA系统

    埃勒斯使用价格变化的相位比率来构建自适应移动平均的MESA系统(简称MAMA),其也被称为自适应移动平均之母。 [4] 每个周期的相位变化率是360°,因此,如果某个价格周期由36条棒线组成,那么每条棒线的相位变化率为10°,而如果相关循环周期由10条棒线组成的话,则每条棒线的相位变化率为36°。相位变化率是生成一条棒线所需时间内而捕获的周期角度。为了求得相位变化率的数值,我们可以应用类似于希尔伯特变换模式的方法进行求解(在第11章中,我们可以找到希尔伯特变换模式所相关的范例)。

    MAMA模型的计算方法使用的是与KAMA模型相同的基本指数公式,然而,其平滑系数的值sc则必须保持在0.05(慢速界限)与0.5(快速界限)之间。相关平滑系数sc的计算公式为:

    其中,如果sc<0,则sc=快速界限;如果sc>慢速界限,则sc=慢速界限。

    另一个指标是顺势自适应移动平均系统(FAMA模型),其是应用MAMA模型的相关技术(而不是应用价格系列)来创建相应的价格曲线。同时,FAMA模型的平滑系数值是MAMA模型的一半,那么相应的结果是FAMA线是平滑的,即其相较于MAMA模型而言显得更加稳定一些;其与MACD指标或随机指标一样,可以生成相应的信号线。另外,MAMA线和FAMA线的交叉点能够增加相关趋势信号的可靠性,我们可以在英航网站上TSM软件内的MAMA程序中应用相应的编辑语言对MAMA模型进行相应的检测。

    17.1.4 自适应方法的比较模式

    图17-3显示了MESA模型项下的两种自适应顺势交易系统(MAMA系统和FAMA系统所刻画的曲线为虚线),还有自适应相关系数以及VIDYA模型所刻画的曲线,它们都应用了2010年11月~2011年7月美国国债期货的日间价格,在此期间,行情存在一个持续下降的趋势以及近似的上升趋势。如果我们考虑将MAMA线和FAMA线彼此交叉作为一个交易信号,或者于其他趋势改变方向时,KAMA线则似乎是最慢的,其次是相关系数和MAMA线,而VIDYA线表现得最为活跃。

    图17-3 应用四种自适应方法对2010年11月~2011年7月美国30年期国债所做的测试,其中KAMA线、相关系数(r2 )以及VIDYA线是实线,MAMA线和FAMA线是虚线

    表17-1应用上述四种方法而选取了20年以上的期货市场行情进行测试,进而得出了具体的结果,平均值位于表格的底部。这里值得注意的是:每一种方法在交易次数上都具有一致性,尽管市场不相关也未受影响。对于KAMA模型来说,30年期国债、欧洲美元以及铜期货彼此之间的交易比例都在1以内。该系统的成功之处也似乎在于,其与交易次数的平均值呈反相关性;同样,每份合约的收益顺序为KAMA模型、MAMA模型、相关系数r2 模式以及VIDYA模型。

    表17-1 应用1990~2011年的数据对KAMA模式、相关系数模式、VIDYA模型以及MAMA模型的绩效所进行的比较

    这里令人鼓舞的一面是:所有方法相关的平均收益于超过20年时都能体现盈利,且很少会生成亏损。这或许能够大体说明顺势交易系统的理论方法,而且KAMA模型所相关的平均收益比率为1.53(即使在剔除成本之前),而MAMA模型的平均收益率是1.36,这是一个很好的投资组合的收益率。

    我们很难将上述这些方法的测试结果与标准型移动平均系统进行比较。那么,你会使用哪个计算周期呢?也许因为KAMA模型可以从25日变化到900日(5和30的平方),所以,相应时段的样本将会是衡量测试结果的唯一途径。当这样做的时候,我们要确保价格的分布形态是渐进式,比如对数值或指数值要运行有选择性的修正,否则,它会把样本数据压向慢速端。

    [1] 对于此种方法的完整解析模式可参看Perry J.Kaufman,Smarter Trading(New York:McGraw-Hill,1995),129-153。

    [2] John F.Ehlers,“Fractal Adaptive Moving Average,”Technical Analysis of Stocks & Commodities(October 2005).

    [3] Tushar S.Chande and Stanley Kroll,The New Technical Trader(New York:John Wiley & Sons,1994).

    [4] John F.Ehlers,Rocket Science for Traders(New York:John Wiley & Sons,2001).