R中具有多个周期的EMA

R中具有多个周期的EMA,r,quantmod,ttr,R,Quantmod,Ttr,我试图计算标普500指数在不同基础时期的多重均线 #get stock data library(quantmod) getSymbols("^GSPC", src="yahoo", from="2020-01-01", to="2020-09-30") SP500 <- GSPC[,"GSPC.Close"] #获取股票数据 图书馆(quantmod) getSymbols(“^GSPC

我试图计算标普500指数在不同基础时期的多重均线

#get stock data
library(quantmod)
getSymbols("^GSPC", src="yahoo", from="2020-01-01", to="2020-09-30")
SP500 <- GSPC[,"GSPC.Close"]
#获取股票数据
图书馆(quantmod)
getSymbols(“^GSPC”,src=“yahoo”,from=“2020-01-01”,to=“2020-09-30”)

SP500您可以使用for循环并合并循环中的所有内容。优点是可以合并xts对象。之后,如果需要,可以将其转换为data.frame

n = c(1:3, 5) # choose the number of EMA periods

for(i in n) {
  var <- EMA(SP500$GSPC.Close, n = i, wilder = FALSE) # create the EMA
  var <- setNames(var, paste0("EMA", i)) # rename the variable
  SP500 <- merge(SP500, var) # merge with original
}

head(SP500) # SP500 is still an xts object

           GSPC.Close    EMA1     EMA2     EMA3     EMA5
2020-01-02    3257.85 3257.85       NA       NA       NA
2020-01-03    3234.85 3234.85 3246.350       NA       NA
2020-01-06    3246.28 3246.28 3246.303 3246.327       NA
2020-01-07    3237.18 3237.18 3240.221 3241.753       NA
2020-01-08    3253.05 3253.05 3248.774 3247.402 3245.842
2020-01-09    3274.70 3274.70 3266.058 3261.051 3255.461
n=c(1:3,5)#选择均线周期数
for(i in n){
变量
EMA1 <- EMA(SP500, n=1, wilder=F)
EMA2 <- EMA(SP500, n=2, wilder=F)
EMA3 <- EMA(SP500, n=3, wilder=F)
mydata <- data.frame(SP500, EMA1, EMA2, EMA3)
colnames(mydata) <- c("GSPC Close","EMA1","EMA2","EMA3")
mydata
 
           GSPC Close    EMA1     EMA2     EMA3
2020-01-02    3257.85 3257.85       NA       NA
2020-01-03    3234.85 3234.85 3246.350       NA
2020-01-06    3246.28 3246.28 3246.303 3246.327
2020-01-07    3237.18 3237.18 3240.221 3241.753
n = c(1:3, 5) # choose the number of EMA periods

for(i in n) {
  var <- EMA(SP500$GSPC.Close, n = i, wilder = FALSE) # create the EMA
  var <- setNames(var, paste0("EMA", i)) # rename the variable
  SP500 <- merge(SP500, var) # merge with original
}

head(SP500) # SP500 is still an xts object

           GSPC.Close    EMA1     EMA2     EMA3     EMA5
2020-01-02    3257.85 3257.85       NA       NA       NA
2020-01-03    3234.85 3234.85 3246.350       NA       NA
2020-01-06    3246.28 3246.28 3246.303 3246.327       NA
2020-01-07    3237.18 3237.18 3240.221 3241.753       NA
2020-01-08    3253.05 3253.05 3248.774 3247.402 3245.842
2020-01-09    3274.70 3274.70 3266.058 3261.051 3255.461