Hi,

I've searched around and not found anything to help on this, even though it's not the first time it's been asked, so was wondering if anyone had any new ideas.

I really like the device output of the chartSeries function and so have used it to output a bitmap of the stock chart.  What I'm using it for is to get an entire market index component list, however to get that I've had to create my own flat file called masterlist.csv in the below code.  Ideally I'd like to have a function do the same job so I don't have to create the file manually.  This way I can quickly and easily get graphs for an entire stock market.

Rather frustratingly Yahoo! have stopped allowing the component list for an index to be downloaded.

Also as you can see my coding skills are restricted by my procedural background, so whilst the below works fine, I'm sure it can be written more efficiently.

One last thing, I'm using the auto.assign = FALSE so that I can use a variable in chartseries, this leaves me with the name of my variable, in this case 'x', on the bitmap, which isn't ideal, meaning I have to refer to the filename for the epic.

Many thanks,
Martin

library(quantmod)

masterfile <- "C:/Users/Admin/Documents/Programming/R/current/FTSE100/masterlist.csv"
path <- "C:/Users/Admin/Documents/Programming/R/ftse100bmps/"
epicstable <- read.table(masterfile, header=FALSE, sep=",")

i <- 1
while(is.na(epicstable$V1[i]) == "FALSE")
{
  epic_char <- as.character(epicstable$V1[i])
  x <- try(getSymbols(epic_char, auto.assign=FALSE))
  
  if (length(x)==1)
  {
    x <- try(getSymbols(epic_char, src = "google", auto.assign=FALSE))
  }
  
  if (length(x) > 1)
  {
    outputfile <- paste(path, epicstable$V1[i], '.bmp')
    chartSeries(x,subset='2011-01::2012',TA="addVo();addMACD()")
    bmp(file=outputfile, bg = "transparent", width = 1024, height = 768)
    dev.off()
  }
  i = i + 1
}
	[[alternative HTML version deleted]]

