對於任何想知道同樣的事情的人,我都想通了。下面的實現沒有任何問題。事實是,EMA需要超過21個數據點來計算20個數據點的指數移動平均值。這樣做的原因是,較早的數據點會影響您試圖計算的數據點。簡單地說,我測試了一下,您需要大約40-50個數據點才能獲得與100+數據點相同的20天EMA。
我試圖計算股票的指數移動平均線( EMA ),但我的計算有問題。我已經為AAPL導出了最近22+天的股票數據,當我嘗試計算該數據的均線均值時,每次都會出現錯誤。
以下是我的示例中的數據:
https://pastebin.com/raw/2MsgCeQx
以下是我試圖計算20天均線的解決方案。
#Imported the data as "data". #With Ta-lib data["EMA20Talib"] = talib.EMA(data.uClose, timeperiod = 20) #And with pandas data["EMA20Pandas"] = data["uClose"].ewm(span=20, adjust = False).mean()
這里是數據和結果的圖像。
https://i.imgur.com/pFtc7x8.png
如你所見,Real20EMA與TA-lib或pandas 20EMA不匹配。我做錯了什么?
uClose是計算均線的列,"Real20EMA“取自交易視圖(與市場觀察交叉引用,以確保它是正確的)。
我注意到早些時候這里有一個類似的問題,同樣的問題:
熊貓的均線不匹配股票的均線?
..。當您對索引進行排序時,問題就解決了,而且我已經確保對索引進行了正確的排序,但遺憾的是,我仍然遇到了同樣的問題。
我想得到相同的數字作為其他金融網站使用一些工具。奇怪的是,即使是我嘗試過的這兩種方法也沒有返回相同的結果。
計算python中的技術指標。我發現它比TA-Lib更准確,也更容易安裝。
import pandas_ta as ta data["EMA20"] = ta.ema(data["uClose"], length=20)