summaryrefslogtreecommitdiffstats
path: root/bloomberg-data.R
diff options
context:
space:
mode:
authorGuillaume Horel <guillaume.horel@gmail.com>2011-10-18 02:40:30 -0400
committerGuillaume Horel <guillaume.horel@gmail.com>2011-10-18 02:40:30 -0400
commit83b41368bbc072bead2b6311c7a019b40164bba4 (patch)
treedf15f140e43e38e1c7d51bcc18319be19d13be9f /bloomberg-data.R
parent08a6c748f17c8baf2c83d391341c731cb9eeef4f (diff)
downloadbandit-83b41368bbc072bead2b6311c7a019b40164bba4.tar.gz
Tons of fixes
have downloaded a complete history of the sp500 since 01/01/2000
Diffstat (limited to 'bloomberg-data.R')
-rw-r--r--bloomberg-data.R62
1 files changed, 23 insertions, 39 deletions
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)
-}