首先我们来看下Macd指标计算方法:

12日EMA的计算:EMA12 = 前一日EMA12 * 11/13 + 今日收盘 * 2/13

26日EMA的计算:EMA26 = 前一日EMA26 * 25/27 + 今日收盘 * 2/27

差离值(DIF)的计算: DIF = EMA12 - EMA26

9日DEA = 前一日DEA * 8/10 + 今日DIF * 2/10

BAR=(DIF-DEA)*2

Talib.MACD返回三个值,分别是macd, signal, hist,三个返回值分别对应上面的计算指标DIF、DEA、BAR。即macd=DIF,signal=DEA,hist=BAR。

        当我们利用talib计算macd指标时,发现talib计算出的macd指标与同花顺等行情软件计算的指标不一致,原因在于计算macd指标时,需要初始化第一天的ema12、ema26、diff、dea。同花顺等行情软件计算macd指标,是从股票上市第一天开始计算,上市第一天的diff初始化为0,dea初始化为0,ema12=ema26初始化为当天的收盘价。而当我们用talib.MACD计算macd指标时,使用的历史行情一般是某段行情,并不是从开盘开始计算,eam12=eam26初始化为我们取的第一天的行情,diff和dea初始化为0。因此talib计算出的macd指标与同花顺的macd指标不一致。利用talib计算macd指标时,前33个值为空,猜测33个值是否是用来迭代的,当迭代足够多次数后,talib计算的macd指标与同花顺的指标误差就在一定范围内。
————————————————
版权声明:本文为CSDN博主「__LeeKuanYew」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012724887/article/details/105358115

diff 成为快线 dea 称为慢线,首先EMA可以看作是对近期价格变化的敏感的线。

那么diff是 价格变化的一次导数,(需要除以价格),那么与dea是更加慢的线。

那么macd就是类似导数了

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐