Скользящая средняя с движущейся длиной
Как я могу рассчитать скользящее среднее (или другие технические индикаторы) в R, используя разные параметры длины в разные периоды?
require(quantmod)
library(chron)
library(caTools)
## rm(list=ls())
# Get the data
from.dat <- as.Date("2015-01-01")
#to.dat <- as.Date("2000-01-01")
ES<-getSymbols("^GSPC" , from = from.dat,auto.assign = FALSE) # to today
data<-ES
rm(ES)
data<-data[,6]
names(data)<-c("ES")
# create vectore with dummy values
data$num <- rep(10,length(data$ES))
for(i in 2:length(data$num)){
if (data$num[i-1] == 10) {data$num[i] <- 5}
}
# moving average with moving length
data$sma<-SMA(data$ES,data$num )
plot(data$ema)
Сюжет не показывает даже скользящее среднее. Как использовать технические индикаторы с параметрами движущейся длины?
1 ответ
Если я правильно понимаю, что вы хотите, чтобы data$sma был вектором переменной длины-5 и средней длины-10.
l5sma <- SMA(data$ES, 5)
l10sma <- SMA(data$ES, 10)
data$sma <- ifelse(data$num == 5, l5sma, l10sma)
plot(data$ES)
lines(data$sma, col = 3)