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!