download.data <- function(assets,from,to){
data <- list()
from.y <- as.numeric(strsplit(as.character(from),'-',)[[1]][1])
from.m <- as.numeric(strsplit(as.character(from),'-',)[[1]][2])
from.d <- as.numeric(strsplit(as.character(from),'-',)[[1]][3])
to.y <- as.numeric(strsplit(as.character(to),'-',)[[1]][1])
to.m <- as.numeric(strsplit(as.character(to),'-',)[[1]][2])
to.d <- as.numeric(strsplit(as.character(to),'-',)[[1]][3])
google.URL <- "http://finance.google.com/finance/historical?"
for(i in 1:(length(assets))){
Symbols.name <- assets[i]
URLdata <- paste(google.URL,"q=",Symbols.name,"&startdate=",month.abb[from.m],"+",sprintf('%.2d',from.d),
",+",from.y,"&enddate=",month.abb[to.m],"+",sprintf('%.2d',to.d),
",+",to.y,"&output=csv",sep='')
data[[i]] <- read.csv(url(URLdata))$Close
}
lengths <- c(1:length(assets))
for(i in 1:(length(assets))){
lengths[i] <- length(data[[i]])
}
minlength <- min(lengths)
time <- as.character(read.csv(url(URLdata))[,1])[1:minlength]
data2 <- array(0,dim=c(minlength,length(assets)))
for(i in 1:(length(assets))){
data2[,i] <- data[[i]][1:minlength]
}
dimnames(data2) = list(time,assets)
data2 <- data2[seq(1,length(data2[,1]),5),]
data2 <- data2[length(data2[,1]):1,]
# convert time stamps into right date format
dates <- unlist(strsplit(rownames(data2), split="-", fixed=TRUE))
day <- as.numeric(dates[seq(1,length(dates),3)])
Months <- 1:12
names(Months) <- month.abb
month <- dates[seq(2,length(dates),3)]
mon.num <- unname(Months[month])
year <- as.numeric(dates[seq(3,length(dates),3)])+2000
date <- paste(year,mon.num,day,sep="-")
rownames(data2) <- date
return(data2)
}
collection <- as.matrix(read.csv("data//data.csv",sep=";")) # historic monthly prices
assets <- colnames(collection)
asset <- assets
from <- c("1993-01-01")
to <- Sys.Date()
data <- download.data(asset,from,to)
save(data,file="data/data.rda")
benchmark <- download.data(c("VT","SPY"),from,to)[,1]
save(benchmark,file="data/benchmark.rda")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.