为什么比较不同长度的样本时 EMA 不相等?

Why is EMA not equal when comparing samples of different length?

我很难理解为什么 EMA(指数移动平均线)在这两种情况下不同。

options(scipen = 10)
library(quantmod)

getSymbols("AAPL", src = "google")

data1 <- EMA(AAPL[, "AAPL.Close"])
data2 <- EMA(tail(AAPL[, "AAPL.Close"], n = 10))

result <- data.frame(tail(data1, n = 1), tail(data2, n = 1))

在第一次 EMA 调用中,我提供了整个 AAPL 样本作为参数。在第二次 EMA 调用中,我仅提供最少量的数据来计算最后一天的 EMA。如果我比较最后一天的计算值,它们是不同的。

具体来说,result[1,1]为152.907,result[1,2]为152.623。为什么会这样?我希望这两个数字相同,因为 EMA 不是累积的。

那是因为指数衰减有 'infinite' 历史:它会衰减,但永远不会完全消失。

因此,您的两个用例之间的权重集不同,因此结果也不同。最近有一个不错的 MA 系列用于平滑价格系列:

应该明确指出,您的预期仅适用于 SMA,而实际上权重为零。