如何使用Ta-lib或Pandas正确计算股票的EMA?
对于任何想知道同样的事情的人,我都想通了。下面的实现没有任何问题。事实是,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更准确,也更容易安装。
1 2 3 | import pandas_ta as ta data[ "EMA20" ] = ta.ema(data[ "uClose" ], length= 20 ) |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步