索引为0的MACD始终等于0

2024-09-25 06:34:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图用Python绘制一个MACD指示器。我遇到的问题是当我试图计算短期和长期移动平均线时

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

close是我的数据框架,有两列用于指数和股票收盘价。我从Alpha VantageAPI获得股票信息

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

exp1

exp1 series print

exp2

enter image description here

如您所见,两个系列上的0索引是相同的,后面的数据是不同的。所以当我试图计算MACD时,最后一个图点总是等于0

macd = exp1 - exp2

enter image description here

我认为这对MACD来说可能是正常的,但我所看到的每一张MACD图,MACD和单行之间的最后一点都不是0(如雅虎财经的图片所示)

enter image description here

所以我不确定我做错了什么


Tags: 数据falseclose绘制mean指示器股票span
1条回答
网友
1楼 · 发布于 2024-09-25 06:34:48

你现在做的很好。对于第一个数据点,您看到的奇怪行为是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日和6月1日的数据图表

*注-pandas' documentation关于EWM的陈述是“……有一个假设:𝑥0不是一个普通值,而是无穷级数到该点的指数加权矩”

相关问题 更多 >