5.1 移动平均线
移动平均线的关键词有两个:第一关键词是平均,最简单的平均方式为先对每天的收盘价求和,然后除以天数,这个天数是可以自己来定义的。当然,除了简单平均之外,我们还可以加权平均,比如让离今天更近的价格权重更大,以3天加权平均为例,我们可以将今天收盘价的权重设置为3,昨天价格的权重设置为2,前天收盘价的权重设置为1,这样计算时,就是3乘今天收盘价加2乘昨天收盘价加1乘前天收盘价求出总和后除以6(即3+2+1),这种计算方式就是交易软件里加权移动平均线(EMA)的主要计算原理。第二个关键词是移动,只计算一天的平均价格是出不来一条线的,所以采用移动的方式计算,好比Excel里将公式一拖,只不过这里移动是往前回溯的方式移动。昨天的平均价格以昨天为基准,往前推定义的天数,这里计算时一定不能包含未来的价格,很多初学者编写指标时容易犯的一个错误就是使用了未来函数,或者引用了未来的价格信息,结果回测指标时发现好得不得了,而实际交易就会发现根本不是那么回事。
无论简单移动平均线还是日期加权移动平均线EMA还是用成交量加权的移动平均线VWMA,大致都差不多,其原理在于尝试刻画出一定天数内市场当前所有参与者的平均持仓成本。如果价格在均线之上,就视为这些投资者都是获利的,而反之则都是亏损的。我们来看一个例子,如图5-1所示。
图5-1 上证指数(250日移动平均线)(年线)
250日移动平均线有着特殊的意义,250天为一年里大致的交易总天数,以250年作为移动平均线的参数计算出来的均线大致刻画了一年之内市场参与者的平均持仓成本。而年线另外一个特殊意义是很多市场参与者将其视为牛熊分界线。价格在年线之上运行,就视其为牛市,在年线之下运行则使其为熊市。正如本章前言部分所说的,这种划分的优点是简单易用,初学者一看就会,而期缺点则如图中所标示的那样:一个问题是,在行情处于震荡市时,价格反复穿越年线,如果严格按照年线操作,即会出现一会儿做多、一会儿做空的情况。另一个问题在于,当一轮行情走了很远之后,按照道氏理论可能趋势已经发生了逆转,年线由于“动作缓慢”还离得老远,真正跌破年线确立转市时,回撤也太多了。第一个问题是均线难以克服的问题,通常将周期调整得长一些,这样上下穿越均线的时候会相对少一些,而此时会额外加重了第二个问题,即均线跟随行情太慢的问题。而解决第二个问题可以将均线的天数调整得短一些,这样均线可以离价格近一些,然而此时的问题是第一个问题会愈加严重了。我们来看同样一个例子换成30日均线时的样子,如图5-2所示。
图5-2 上证指数(30日移动平均线)
同样的行情区间换上30日均线后,我们发现均线与价格贴得就更近了,所以也就更容易产生“碰撞”,反复穿越。5日均线、10日均线、20日均线、26日均线、30日均线、40日均线、50日均线、60日均线、100日均线都是市场上众多参与者使用最多的均线参数。为了解决价格反复穿越均线的问题,交易者们想出了众多办法,第一种办法是结合经验主观判定,这个需要依赖个人的观察和盘面变化经验的积累,如何去做需要读者自行研究和体会。第二种方法是增加价格过滤器。这个名字本身看起来比较高大上,实际其原理就是均线上下各让一点空间,比如说5%,如果说价格穿越均线了但是没达到5%,则视其为没有有效穿越,等待进一步的确认信号。而这个空间多大合适则是基于经验或者历史数据回测得出来的。过滤器的宽度与均线的周期也有很大的关系,有兴趣、动手能力强的读者可以利用文华财经的赢智程序化交易软件、金字塔交易软件、TradeBlazer交易软、MultiCharts交易软件、MetaTrader交易软件、国泰安Matlab量化交易软件等等一系列支持编程的软件进行回测,自行发掘“合适”的均线过滤器参数。另外,过滤器的宽度也可以是动态变化的,可以根据价格波动率的大小自适应变宽或者变窄,至于其原理,我们下一节分析通道“技术”指标时会分析布林通道的思想。第三种方法更进一步,既然价格上下穿越均线容易出现反复多空的麻烦,那么直接采用两条或者多条均线穿越系统是不是可以呢?在1980—1990年代,商品交易大家斯坦利•克罗就主要采用均线交叉的方式进行交易并获取了不菲的回报。克罗采用的一套交易规则为:当收盘价>10日均线>20日均线>50日均线时开始做多,反之当收盘价<10日均线<20日均线<50日均线时开始做空。当既不满足做多规则,也不满足做空规则时就平仓离场,如图5-3所示。
图5-3 斯坦利•克罗均线交叉交易规则示例(上证指数)
从图5-3中可以看出,这套交易规则善于捕捉比较流畅的行情,另外,在行情发生回撤时该交易规则也能及时规避。然而这个系统的缺点在于交易转势行情时容易反应较慢,可能出现做空到局部的地板价上或者做多到局部的天花板价上的情况,不过由于这个系统本质是依赖5日均线进行止盈和止损的,所以其单次亏损也并不大。与之类似的交易规则为瀑布线(非线性加权平均移动平均线,因其在趋势行情出现时形如瀑布得名),本质上瀑布线也是反映不同周期的投资者的持仓成本的,图5-4与图5-5分别是趋势行情中的上证指数与震荡行情中的上证指数的瀑布线指标图表。具体的原理有兴趣的读者可以自行搜索查阅之,关于其使用规则建议读者自行编写程序回测一下,或者自己找品种复盘看一下。要提醒大家的是,网上公开的包括瀑布线以及其他所有指标使用规则都应该仔细测试或者复盘验证,尽信书不如无书并非是一句空谈。
图5-4 瀑布线趋势行情(上证指数)
图5-5 瀑布线震荡情(上证指数)
自适应均线
由于上述均线系统存在被价格反复穿越的问题,考夫曼在其《更聪明的交易》一书中提出了自适应均线的概念(AMA),来解决这个问题。考夫曼为了测量价格是否处于震荡盘整期,设计了一个参数叫“有效性比率(ER)”,用价格的净变动除以全部的价格移动距离(价格轨迹),也可认为是价格位移对波动的比率,这就是说比如初始价格在10元,然后价格在9元~10元的箱体内上下震荡了2次,构成一个M型走势后,最后价格停留在9元,这样其价格的净变动为1元,价格的移动距离为5,这样计算出来的有效性比率为1/5,当这个有效性比率ER的值越趋近于0,则表明市场处于震荡过程,反之,当有效性比率ER的值趋近于1时,表明市场处于良好的趋势过程中。然后利用指数平滑的思路对有效性比率ER进行平滑处理。考夫曼用折公式为:平滑后的数值SC=有效性比率ER∗(快速平滑参数-慢速平滑参数)+慢速平滑参数。其中平滑参数的计算公式为2/(N+1),默认的快速平滑参数为2/(2+1),慢速平滑参数为2/(30+1),带入计算得到平滑后的数值,然后对其取个平方,得到权重常数C,最后计算AMA值的公式为:权重常数C∗(收盘价-前一交易日的AMA值)+前一交易日的AMA值。
我们花了这么大篇幅介绍,并不是为了让读者回去能写出来自适应均线AMA怎么计算的,而是让读者明白AMA的原理。这个计算过程中最关键的两环分别是有效性比率,这个参数反映市场是否震荡的确比较实用。另外一环是进行指数平滑,这里如何选取快、慢速平滑参数的N的值十分重要,建议有兴趣的读者可以自己研究下看看。我们看一个示例,如图5-6所示。
图5-6中的自适应均线AMA(图中的实线均线)选取的平滑参数为3与30,简单移动平均线MA(图中的虚线均线)选取的天数为30天,整体看两者大致位置都差不多,但是从具体细节看,自适应均线AMA有如下特点:
(1)使用一定数目的天数,指定趋势范围的快慢。
(2)市场进入震荡时,自适应均线AMA停止波动。
(3)当价格有明显变动时,自适应均线AMA能够快速跟踪趋势,延迟较小。
虽然从图5-6中看,价格也同样会经常上下穿越自适应均线均线AMA,但原作者考夫曼认为应该等自适应均线AMA拐头向下并且价格在其下方时才需要平仓并反手做空。需要注意的是,不同的交易品种,不同的市场往往需要找不同的快、慢速平滑参数以使得自适应均线AMA可以更加的适应市场走势。
图5-6 AMA(3,30)与MA30对比(上证指数)