Simple Moving Average
The function computes a moving average of a vector.
MA(y, order, pad = NULL)
y |
a numeric vector |
order |
An integer. The order of the moving average. The function is defined
such that order one returns |
pad |
Defaults to |
Returns a vector of length length(y).
Enrico Schumann
Gilli, M., Maringer, D. and Schumann, E. (2019) Numerical Methods and Optimization in Finance. 2nd edition. Elsevier. https://www.elsevier.com/books/numerical-methods-and-optimization-in-finance/gilli/978-0-12-815065-8
Schumann, E. (2019) Financial Optimisation with R (NMOF Manual). http://enricoschumann.net/NMOF.htm#NMOFmanual
MA(1:10, 3)
MA(1:10, 3, pad = NA)
y <- seq(1, 4, by = 0.3)
z <- MA(y, 1)
all(y == z) ### (typically) FALSE
all.equal(y, z) ### should be TRUE
## 'Relative strength index'
rsi <- function(y, t) {
y <- diff(y)
ups <- y + abs(y)
downs <- y - abs(y)
RS <- -MA(ups, t) / MA(downs, t)
RS/(1 + RS)
}
x <- cumprod(c(100, 1 + rnorm(100, sd = 0.01)))
par(mfrow = c(2,1))
plot(x, type = "l")
plot(rsi(x, 14), ylim = c(0,1), type = "l")Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.