user3022875
user3022875

Reputation: 9018

How to dynamically add indicators to quantmod chart

I'd like to dynamically add indicators to a quantmod chart. I can successully add 1 indicator but how can I add multiple that are stored in a character vector?

#### THIS WORKS
VariableTA = "addBBands()"
df<-data.frame (Open = seq(2,102,1), High = seq(6,106,1), Low = seq(3,103,1), Close = seq(4,104,1))
date = as.POSIXct(seq(as.Date("2015-01-01"), as.Date("2015-06-04"), by="days")[1:101])
dat<-as.xts(df, tzone = Sys.getenv("GMT"), order.by =as.POSIXct(as.character(date)))
chartSeries(dat )
eval(parse(text = VariableTA))

#NOW I HAVE 2 indicator and it does not work
VariableTA = c("addBBands()","addEMA()")
df<-data.frame (Open = seq(2,102,1), High = seq(6,106,1), Low = seq(3,103,1), Close = seq(4,104,1))
date = as.POSIXct(seq(as.Date("2015-01-01"), as.Date("2015-06-04"), by="days")[1:101])
dat<-as.xts(df, tzone = Sys.getenv("GMT"), order.by =as.POSIXct(as.character(date)))
chartSeries(dat )
for(i in 1: length(VariableTA))
{
  eval(parse(text = VariableTA[i]))
}

Upvotes: 3

Views: 477

Answers (1)

Joshua Ulrich
Joshua Ulrich

Reputation: 176648

It would be a lot easier if you simply specify them via the TA= argument to chartSeries.

require(quantmod)
data(sample_matrix)
x <- as.xts(sample_matrix)
VariableTA = "addBBands();addEMA()"
chartSeries(x, TA=VariableTA)

enter image description here

Upvotes: 2

Related Questions