带有Python熊猫的MACD在0索引上始终等于0

问题描述 投票:0回答:1

我正在尝试使用Python Pandas绘制MACD指标。我遇到的问题是当我尝试计算短期和长期移动平均线时。

exp1 = close.y.ewm(span=12, adjust=False).mean()
exp2 = close.y.ewm(span=26, adjust=False).mean()

close是我的数据框,其中有两列用于指数和股票收盘价。我从Alpha Vantage API中获得了股票TIME_SERIES_INTRADAY信息。

现在由于某些原因,我总是在exp1exp2的第一个索引中得到相同的结果>

exp1

exp1 series print

exp2

enter image description here

您可以看到,两个系列的0索引相同,以后的数据不同。因此,当我尝试计算MACD时,最后一个图形点始终等于0。

macd = exp1 - exp2

enter image description here

我认为这对于MACD可能是正常的,但是我所看到的MACD的每个图形,MACD和单行之间的最后一点都不为0(如Yahoo Finance中的图片所示)

enter image description here

所以我不确定我在做什么错。

我正在尝试使用Python Pandas绘制MACD指标。我遇到的问题是当我尝试计算短期和长期移动平均线时。 exp1 = close.y.ewm(span = 12,Adjust = False).mean()...

python pandas moving-average alphavantage alphavantage-api
1个回答
0
投票

您在做什么很好。您在第一个数据点看到的奇怪行为是由于您的EWM假定了无限的历史*,而实际上我们没有。结果,时间0的EWM(在您的情况下为1743.67500)是时间0的系列值(基本上,X的平均值为X)。结果,时间0的跨度为26的EWM与时间0的跨度为12的EWM相同,并且时间0的MACD为0。

在MACD中,您通常要寻找的是MACD与股票(或工具)价值之间的交叉。 MACD和值将在时间0相遇,但这不是交叉,因为在时间0之前没有任何东西。

简单的解决方案是从第N天(例如第15天)开始绘制MACD图。也就是说,如果您对从6月1日开始的期间的MACD感兴趣,请创建一个数据框来计算从5月1日或5月15日开始的MACD,但仅绘制6月1日及以后的数据。

*注意-关于EWM的pandas' documentation指出:“ ...假设𝑥0不是一个普通值,而是直至该点的无穷级数的指数加权矩”。

© www.soinside.com 2019 - 2024. All rights reserved.