2017-08-05 10 views
1

私はこれらの2つのケースでEMA(指数移動平均)が異なる理由を理解するのに苦労しています。長さの異なるサンプルを比較すると、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サンプル全体が供給されます。 2回目のEMAコールでは、最後の日付のEMAを計算するための最小量のデータのみを供給します。最終日の計算された値を比較すると、それらは異なっています。

結果[1,1]は152.907であり、結果[1,2]は152.623です。なぜこうなった?私はEMAが累積していないので、両方の数字が同じであると予想します。

+0

「?EMA」の*警告*セクションを参照してください。理由を説明し、これに似た例を示します。 –

答えて

0

これは、指数関数的減衰が「無限」の履歴を持っているためです。それは減衰しますが、決して完全に消えることはありません。

したがって、2つのユースケースで重みのセットが異なるため、結果も同じです。それは何を期待していたことは事実のみに行くにないSMAのために保持していることを明確にすべき

:スムージング価格シリーズ用のMAにまともな最近のシリーズがありますゼロウェイト。

+0

ありがとうダーク。私の元の意図は、時系列のEMAを計算し、それを日ごとに計算されたEMAと調整することでした(履歴全体を再計算する必要はありません)。 EMAが一度に計算されるように、値を一致させる既存のEMAシリーズに観測値を追加する方法はありますか? – DsnKov

関連する問題