如何使用quantmode将简单移动平均线添加到多个烛台图表

问题描述 投票:1回答:1

我跟进几个股票价格。感谢Vincent Zoonekynd(https://stackoverflow.com/users/1129973/vincent-zoonekynd),我能够在一个页面中绘制多个图表。现在,我想为每个图表添加20天和200天的单一移动平均线,但重复图表。我的代码是

library(quantmod)
end <- Sys.Date()
start <- end - 365
stocks <- c("GOOG", "INTC", "AAPL")
stocksts <- list()
i <- 1
for(stock in stocks){
stocksts[[i]] <- getSymbols(stock
, src = "yahoo"
, from = start
, to = end
,auto.assign =  FALSE
, return.class = "xts")  
i <- i+1
}
par(mfcol=c(3,1), oma=c(1,1,0,0), mar=c(1,1,1,0), tcl=-0.1, mgp=c(0,0,0))
for (i in 1:length(stocksts)){
chartSeries(na.omit(scale(stocksts[[i]]))
,"candlesticks"
,name = names(df)
,TA = NULL 
, layout = NULL
, yrange = c(-3,3) 
)
addSMA(n = 20, col = "green")
addSMA(n = 200, col = "red")
}

您能否建议我如何打印烛台和SMA图表以避免重复?

r quantmod candlestick-chart
1个回答
1
投票

鉴于您设置的框架,我认为这正是您所寻找的,

我建议你看看https://stackoverflow.com/a/37873283/9555388,这可能会帮助你改善设置......

1:设置

library(quantmod)
end <- Sys.Date()
start <- end - 365
stocks <- c("GOOG", "INTC", "AAPL")
stocksts <- list()
i <- 1
for(stock in stocks){
  stocksts[[i]] <- getSymbols(stock
                              , src = "yahoo"
                              , from = start
                              , to = end
                              ,auto.assign =  FALSE
                              , return.class = "xts")  
  i <- i+1
}

2:添加SMA并一次性绘制数据的新方法

par(mfcol=c(3,1), oma=c(1,1,0,0), mar=c(1,1,1,0), tcl=-0.1, mgp=c(0,0,0))
for (i in 1:length(stocksts)){
  price=Cl(stocksts[[i]])
  newSMA <- newTA(SMA, Cl, on=NA)
  print(chart_Series(price, TA = 'add_TA(SMA(price, 20), on = 1, col = "green"); add_TA(SMA(price, 200), on = 1, col = "red")', yrange = c(-3,3)))

}
© www.soinside.com 2019 - 2024. All rights reserved.