MACD指标是怎么来的?如何理解MACD及其手动实现······ 分析日记 fxplus.cn – 分享日记

MACD指标是怎么来的?如何理解MACD及其手动实现······ 分析日记 fxplus.cn

MACD的很多资料里叫他“指数平滑移动平均线”,但是他的英文名叫“Moving Average Convergence / Divergence”,我的英文很糟糕但我还是自信的觉得直译为“移动平均线的收敛/发散”其实更代表这个指标。还有几个关键名词。EMA指数移动平均线,和他相区别的是算数移动平均线MA。两者的最大差异是权重的使用。在EMA中设计者人为的赋予了他权重。DIFF是差值的意思。DEA则是差值DIFF的指数平均值。注意,这里的指数其实是经济学含义,而不是数学意义上的指数。

对于数据来说MACD是一种工具,工具本身和市场无关。所以你在股市、期市、汇市你都可以看到它的身影。MACD是用来统计分析市场交易结果的一个工具。就像一把可以弯曲钢筋还可以剪切钢筋的钳子,MACD可以对任意段落的交易数据进行统计分析。对于交易系统的设计,MACD又可以像节拍器一样作为交易系统中的节奏控制工具。

在进一步讲解之前我们要确定一个概念。什么是周期?周期是我们人为对交易数据划定的一个循环时间段落。为了符合交易节奏,我们通常采用以自然时间段为周期,比如:日线、周线、月线。这是一个基础的概念,无论你的交易是什么方式的,这都是交易系统建立的根基。周期是连续而大量的,所以在处理数据的时候我们会对周期进行“系统抽样”,这就是众多指标的骨骼框架。比如20均线、40均线。这可能代表20或40个1分钟周期,也可能代表20或40个日周期。对这个抽样我们再进行分析处理,就形成我们的指标。MACD就是这样一种指标。

MACD的抽样方法就是以最近收盘价为起始按时间顺序依次倒序抽取指定容量的收盘价。MACD的骨骼是三组抽样,我们命名为短周期、长周期、中间周期。其灵魂是权重的计算。首先我们来看MACD的这三组抽样,通常我们设置样本容量为12、26、9(个周期)。这里有个疑问,就是为什么是这三个数值呢?其实单纯按照MACD的设计来说,这个值是完全可以调整的。在MACD诞生之初,这三个数值代表的是时间上的一周、一个月和一周半。这并不符合现在我们使用的时间周期,我们现在一周五个工作日,一个月大约20个工作日。但是因为这三个数字被广泛使用,所以即便他并不符合当前的时间周期,但是他符合众多交易者的操作周期。关于这个问题这里不多讲。

完整MACD需要通过四大步运算得到:

一、计算短周期、长周期的EMA值(即:EMA最近)。

二、计算短、长周期间EMA差值(即:DIFF值)。

三、计算差值DIFF的EMA值(即:DEA)。

四、计算DIFF的离差(即:MACD值)。

现在我们开始分步计算。三组抽样有了,剩下都是基于这三组抽样对交易数据的统计分析。对这三组抽样的运算用的同一个公式(如下):

这个公式看上去是不是很怪异,一个带有递归特性的公式。EMA是加权平均值运算的方法。以分数形式出现的乘数其实就是权重或者叫频率。在市场中更多的被叫做平滑因子,因为这个值决定了EMA曲线的平滑度。如下:

而且注意:

有一个小细节,就是分母的“样本容量+1”。这个“+1”的目的是为了在只有1周期时计算上的正确性,否则会出现意外的负值。

这个权重是MACD的设计者为了达到计算目的人为增加的。而且权重总体单位数量等于“样本容量+1”。当然这并不绝对,但如果把这个值设置的大于“样本容量+1”整个曲线将变形而失去意义。

EMA这个平均值计算公式由两部分组成。加号前面的一部分计算的是最近收盘价的加权平均值,EMA公式默认赋予它2个单位的权重。而加号后面计算的是上一个周期EMA(EMA上一周期)

的加权平均值,默认赋予它剩余权重。这个递归设计很巧妙,使得MACD整体分析计算有了延续性,也使得这个指标即表现了最近价格的特点也表达了历史价格的重要。也就是说加号前的计算和权重设计得到一个最近收盘价权重更大的均值体系。结果就是使得这个均值比普通算术移动平均值更加接近最近收盘价。而且对最近收盘价赋予的权重越大EMA均值越接近最近收盘价,EMA曲线越不平滑。直到权重与“样本容量+1”相等时EMA等于最近收盘价,具体这里就不给出运算过程了,好奇者可以自己将值带入公式进行计算。如图1:

图1:12个周期EMA(白线)与MA(黄线)值的比较

在得到短周期和长周期的EMA之后,对这两个EMA相减得到两个均值的差DIFF值。公式如下:

注意:这是一个带有正负方向性的值。方向如下:

这里“DIFF = 0”是一种特例,这个值只在起始计算MACD时实际行情周期数量“小于或者等于”短周期时出现。但多数客户端都在这个位置重新设定值,所以虽然有这种可能,但没有意义。

因为DIFF是MACD分析过程的中间数据,所以这里对其分析用的样本起名为中间周期。用这个中间周期对DIFF进行EMA计算,也就是得到DEA值。使用的还是上面的EMA计算公式。使用了相同的权重分配规则。那么这里有个问题,这个中间周期为什么要设定为9?其实这个值同样并不是一个固定值,但是这个值会对MACD分析效果起着至关重要的作用。因为这个值是用来建立MACD快速线和慢速线的机制的。这个值的过小或者过大会有如下两个效果:

如果这个值过小会使得MACD快慢双线过于纠缠,而起不到发散的效果。

如果这个值过大,双线收敛的又过慢使得其对市场的方向发现严重滞后而失去意义。

所以总结来说9是一个经验值。得到DEA之后其实到这里MACD指标大体已经建立完成了,现在还差一个MACD值。通常我们会在客户端里看到以直方图形式表现的MACD值。这个值其实是DIFF的均值离差,公式如下:

MACD=2×(DIFF-DEA)

公式中的乘2其实没有特别的含义,只是为了放大这个数值使其更容易被观察而已。重点是这个公式中值的方向。决定MACD方向的因素如下:

在具体的MACD使用过程中,MACD这个数值本身并没有什么特殊含义,而形成序列之后的规律才是MACD值的意义所在。

知道了上面计算MACD的方法,其实我们也可以手动的来计算MACD。手动计算MACD的好处是你可以预测第二天或者第三天价格收盘在什么位置得到一个什么样的MACD值。这里我们用EXCEL来还原这个公式。依据公式手动计算MACD值需要四个要素:最近收盘价、上一短周期EMA、上一长周期EMA、上一周期DEA。这几个要素都可以通过行情客户端获得。具体如下图2:

运算结果如下图3:

如果你手头有完整的行情交易数据也可以从头计算数据,公式还是同样的公式。只是从头计算有一个头部周期不够用而需要进行处理的问题。比如行情起始阶段的5周期,这时小于我们设定的短周期12和长周期26。我们就需要按照实际的周期进行计算,所以公式不变但是短和长周期将改为5。头部的处理很特别,只是为了后续处理进行铺垫。所以按照12、26、9样本容量来设计的MACD的真正有意义的值是从第27周期开始的。如果使用R语言能快速的对完整的交易数据进行MACD计算。只需要在R中加载TTR包中的MACD函数就能很简单快速的实现。但是这个函数只计算出DIFF和DEA就结束了,最终MACD值需要自己单独计算一下。

开篇我说MACD表达的是指数移动平均线的收敛与发散。MACD的应用也是围绕着这个理念进行的。利用短周期与长周期的速度差来表现当前价格与历史价格均值比较后的趋势。当行情处于震荡状态时,短周期与长周期的差值较小。体现在MACD值较小并且快速的进行正负切换,震荡的时间越久最近收盘价格与历史价格之间的差值就越小这种表现就越明显。当震荡趋近于结束,价格开始走出新的方向时,最近收盘价会持续的远离历史价格均值。此时MACD值会持续的放大,发散也就持续扩大。当行情持续一段时间之后,市场开始出现新的分歧,价格也就开始止步且回调。这时因为最近价格开始止步甚至回调,也就开始重新趋近正在不断追赶的历史价格均值。此时MACD开始表现出收敛特征,如果市场重新回到均衡状态,那么MACD值也开始缩小并且重新频繁的切换正负方向。

大量的文章和资料基于MACD对数据规整出的这种规律性而预测未来行情的走向。但我认为初级交易者或许很多交易者会在此有一个误区。其实MACD只是对当前收盘价格与历史价格均值的一个处理分析,所以他并没有给出所谓预测的一个明确相关性。而依此对行情做出预测的依据是一个假设前提就是“行情具有惯性的延续”,但是这个前提条件也和MACD本身的分析处理是无关的。MACD本身没有计算任何历史周期价格走向的概率,所以可以肯定的说MACD本身并不适合作为价格预测的依据。但是MACD这么复杂的运算到底预测了什么呢?

如果说的专业一点MACD是将交易数据这种非平稳时间序列通过离差(差分)转换为了平稳时间序列。用较为通俗的话来说就是MACD通过两次最近值与历史值的差值(计算DIFF一次,计算MACD值一次)将交易数据处理成一组均值趋近于零的全新的时间序列(MACD的算数平均值趋近于零,视觉上MACD值围绕零轴上下分布)。这个序列显现出非常稳定的周期特性,所以MACD得到的是一个周期的预测。那么既然是周期的预测,那和未来市场行情预测的区别在哪呢?区别在于这个周期是由我们自己设定的而不是一个自然周期,也就是说我们的MACD在某一段时间可能和历史周期是吻合的,也可能是不吻合的。例如市场的长时间小幅度高频率震荡阶段。所以就其特性来说MACD不适合作为市场未来行情的预测,而在交易系统的设计中更适合“节拍器”的位置,依此来控制交易系统中开仓的节奏。

我们说到这里对于MACD的分解就结束了。我想告诉你的是MACD其实只是一个数据处理的工具,而如何赚钱这其实是另外一个事情。但是对MACD的理解这是一个基础,在具体的使用中这却是系统化的,这应该是你的交易系统的一部分。我再一次的强调MACD之于数据就像一把钳子,之于交易系统可以像节拍器一样都只是一个工具。不同的是MACD是一把统计学工具。一把钳子可以在建筑工地使用,也可以在家电维修中心使用。所以具体你如何使用MACD这取决于你整个交易系统是如何设计的。而交易系统的设计这是另外一门学问。

发表回复