關於利用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指標與同花順的指標誤差就在一定範圍內。

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