关于利用talib.macd函数计算macd指标与同花顺不一致的问题

首先我们来看下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指标与同花顺的指标误差就在一定范围内。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章