From 83b41368bbc072bead2b6311c7a019b40164bba4 Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Tue, 18 Oct 2011 02:40:30 -0400 Subject: Tons of fixes have downloaded a complete history of the sp500 since 01/01/2000 --- bloomberg-data.R | 62 +++++++++++++++++++++----------------------------------- 1 file changed, 23 insertions(+), 39 deletions(-) (limited to 'bloomberg-data.R') diff --git a/bloomberg-data.R b/bloomberg-data.R index 229254d..2c37c20 100644 --- a/bloomberg-data.R +++ b/bloomberg-data.R @@ -1,51 +1,35 @@ require(RBloomberg) -source("getBloombergData.R") +source("utils.R") conn <- blpConnect(jvm.params = "-Xmx1024m") + +#get current tickers sp500.tickers <- as.character(bds(conn,"SPX Index","INDX_MEMBERS")[,1]) #remove exchange information -for(i in 1:length(sp500.tickers)){ - ticker <- sp500.tickers[i] - sp500.tickers[i] <- strsplit(ticker," ")[[1]][1] +sp500.tickers <- gsub(" [A-Z]*","", sp500.tickers) + +add <- read.table("sp500 add.csv", sep=",", fill=T, header=T, + colClasses="character", quote="") +add$date <- as.Date(add$date,format="%m/%d/%Y") +sp500.extended <- union(sp500.tickers,add$ticker.del) +sp500.extended <- sp500.extended[-match(c("","WHO"),sp500.extended)] +extra.tickers <- setdiff(sp500.extended,sp500.tickers) +company.names <- c() +for(ticker in sp500.extended){ + company.names <- c(company.names, + bdp(conn, paste(ticker, "Equity"), "NAME")$NAME) } +sp500.extended <- data.frame(ticker=sp500.extended,name=company.names) +write.table(file="sp500 extended.csv", sp500.extended, col.names=T, + row.names=F, sep=",") +#retrieve data from bloomberg start.date <- as.Date("2000-01-01") -list.sp500 <- list() -for(i in 1:500){ - ticker <- sp500.tickers[i] - #list.sp500.new[[ticker]] <- getBloombergData(conn,ticker,start.date) - list.sp500[[ticker]] <- bdh(conn,paste(ticker,"Equity"),c("PX_OPEN","PX_HIGH","PX_LOW","PX_LAST","VOLUME"),start.date,dates.as.row.names=F) +stock.data <- list() +for(i in 1:NROW(sp500.extended)){ + ticker <- as.character(sp500.extended$ticker[i]) + stock.data[[ticker]] <- getBloombergData(conn,ticker,start.date) cat(paste("ticker", i, ": ",ticker),"\n") } -test <- c() -for(i in 1:158){ - test <- c(test,sum(abs(as.numeric(list.sp500.new[[i]][1,1:5])-as.numeric(list.sp500[[sp500.tickers[i]]][1,2:6])))) -} -add <- read.table("sp500 add.csv",sep=",",fill=T,header=T,colClasses="character",quote="") -add$date <- as.Date(add$date,format="%m/%d/%Y") -memb <- function(index,add,date){ - #return the list of index constituents - toreverse <- add[add$date>=date,] - current.index <- index - for(i in 1:nrow(toreverse)){ - if(toreverse$ticker.add[i]!=""){ - current.index <- current.index[-match(toreverse$ticker.add[i],current.index)] - } - if(toreverse$ticker.del[i]!=""){ - current.index <- sort(c(current.index,toreverse$ticker.del[i])) - } - } - current.index -} - -sp500.extended <- union(sp500.tickers,add$ticker.del) -sp500.extended <- sp500.extended[-match("",sp500.extended)] -extra.tickers <- setdiff(sp500.extended,sp500.tickers) - -list.extra <- list() -for(i in 1:length(extra.tickers)){ - ticker <- extra.tickers[i] - list.extra[[ticker]] <- bdh(conn,paste(ticker,"Equity"),c("PX_OPEN","PX_HIGH","PX_LOW","PX_LAST"),as.Date("2000-01-01"),dates.as.row.names=F) -} -- cgit v1.2.3-70-g09d2