使用TTR包计算指数移动平均线

gan*_*ddy 5 r computation

好奇,如果有人使用它.我在一个时间序列上做了一个简单的EMA操作.但是不能很好地和解.

我读到更新常量的值= 2 /(N + 1).我定义了x = 1:20,并且做了EMA(x,5).然后我使用递归计算进行了EMA计算.这两个结果并没有真正对齐

该函数返回

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

我的小东西给了我,

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
Run Code Online (Sandbox Code Playgroud)

Sam*_*eer 7

要得到你正在寻找的答案你需要写

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
Run Code Online (Sandbox Code Playgroud)

如果你打电话TTR::EMA(1:20, n=5)就相当于打电话

TTR::EMA(1:20, n=5, ratio=2/(5+1))
Run Code Online (Sandbox Code Playgroud)

这将把NA放在前4个位置,然后第5个位置将是前5个条目的简单平均值.(在这种情况下为3).然后EMA算法将启动.第6名将是6*2/6 + 3*4/6 = 4.第7名将是7*2/6 + 4*4/6 = 5.等等......

您可以在此处查看确切的算法