6

誰かがそれを使用したかどうか興味があります。時系列で簡単なEMA操作を行いました。しかし、うまく調整することができませんでした。

更新定数の値=2/(N + 1)と読みました。私は定義x = 1:20しましたEMA(x,5)。次に、再帰的計算を使用してEMA計算を実行しました。2つの結果は実際には一致していません

関数は戻ります

EMA(x,5)
 [1] NA NA NA NA  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18

そして、私の小さなことは私に与えます、

EMA
 [1]  1.000000  1.333333  1.888889  2.592593  3.395062  4.263374  5.175583  6.117055  7.078037  8.052025  9.034683 10.023122 11.015415 12.010276 13.006851 14.004567
[17] 15.003045 16.002030 17.001353 18.000902
4

2 に答える 2

7

To get the answer you are looking for you would need to write

TTR::EMA(1:20, n=1,  ratio=2/(5+1))

 [1]  1.000000  1.333333  1.888889  2.592593  3.395062  4.263374  5.175583
 [8]  6.117055  7.078037  8.052025  9.034683 10.023122 11.015415 12.010276
[15] 13.006851 14.004567 15.003045 16.002030 17.001353 18.000902

If you call TTR::EMA(1:20, n=5) it is equivalent to calling

TTR::EMA(1:20, n=5, ratio=2/(5+1))

This will put NA's in the first 4 places and then the 5th place will be the simple mean of the first 5 entries. (i.e. 3 in this case). Then the EMA algorithm will start. The 6th place will be 6 * 2 / 6 + 3 * 4 / 6 = 4. The 7th place will be 7 * 2 / 6 + 4 * 4 / 6 = 5. Etc...

You can see the exact algorithm here

于 2012-09-24T04:31:12.990 に答える
2

TTR::EMA最初の非欠損値を最初のn変数の算術平均として計算してから、再帰的に計算を開始します。n=1とを設定することで計算を一致させることができますratio=1/3

R> EMA(x,n=1,ratio=1/3)
 [1]  1.000000  1.333333  1.888889  2.592593  3.395062  4.263374  5.175583
 [8]  6.117055  7.078037  8.052025  9.034683 10.023122 11.015415 12.010276
[15] 13.006851 14.004567 15.003045 16.002030 17.001353 18.000902
于 2012-09-24T03:49:37.350 に答える