I have a simple vector as follows:
x = c(14.24, 13.82, 12.75, 12.92, 12.94, 13.00, 14.14, 16.28, 20.64, 17.64)
I have found the EMA of this vector using
library(TTR)
y = EMA(x, 5)
and the result is
[1] NA NA NA NA 13.33400 13.22267 13.52844 14.44563 16.51042 16.88695
The next day a new value is added to the end of original vector x
and the updated x
vector is:
x = c(14.24, 13.82, 12.75, 12.92, 12.94, 13.00, 14.14, 16.28, 20.64, 17.64, 18.09)
The expected output is -
y = [1] NA NA NA NA 13.33400 13.22267 13.52844 14.44563 16.51042 16.88695 17.28796
This output can be produced by EMA(x, 5)
, but this statement will calculate EMA of the entire vector again and will be time inefficient.
Since we already have the previous day's EMA calculation in vector y
,
is there a way to calculate the EMA of just the last 5 days instead of recalculating for the entire vector and merge the new value in vector y
?
Thanks!