如何使用Ta-lib或Pandas正确计算股票的EMA?

时间:2019-04-29 21:02:09

标签: python pandas ta-lib

我正在尝试计算股票的EMA(指数移动平均线),但是我的计算存在问题。我已经导出了过去22天以上的AAPL股票数据,当我尝试为此计算EMA时,每次都会出问题。

以下是我的示例数据:https://pastebin.com/raw/2MsgCeQx

这是我尝试计算20天EMA的解决方案。

#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或熊猫20EMA不匹配。我在做什么错了?

uClose是一栏,用于在EMA上进行即时计算,“ Real20EMA”取自tradingview(与marketwatch交叉引用以确保其正确)。

我注意到前面有一个类似的问题,是同样的问题:Pandas' EMA not matching the stock's EMA?。当您对索引进行排序时,该问题已解决。我已经确保对索引进行了正确的排序,但是可惜我仍然遇到相同的问题。

我想使用某种工具获得与其他金融网站相同的数字。奇怪的是,即使我尝试过的这两种方法也没有返回相同的结果。

1 个答案:

答案 0 :(得分:2)

我建议使用 Pandas TA 在 python 中计算技术指标。我发现它比 TA-Lib 更准确且更容易安装。

使用 Pandas TA,计算 20 周期指数移动平均线如下:

import pandas_ta as ta

data["EMA20"] = ta.ema(data["uClose"], length=20)