Скользящая средняя с движущейся длиной

Как я могу рассчитать скользящее среднее (или другие технические индикаторы) в 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)

Другие вопросы по тегам