summaryrefslogtreecommitdiffstats
path: root/bloomberg-data.R
diff options
context:
space:
mode:
Diffstat (limited to 'bloomberg-data.R')
-rw-r--r--bloomberg-data.R48
1 files changed, 48 insertions, 0 deletions
diff --git a/bloomberg-data.R b/bloomberg-data.R
new file mode 100644
index 0000000..92d864a
--- /dev/null
+++ b/bloomberg-data.R
@@ -0,0 +1,48 @@
+require(RBloomberg)
+conn <- blpConnect(jvm.params = "-Xmx1024m")
+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]
+}
+
+list.sp500 <- list()
+for(i in 1:length(sp500.tickers)){
+ ticker <- sp500.tickers[i]
+ list.sp500[[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)
+}
+
+#split information
+EQY_DVD_HIST_SPLITS
+#dividend information
+DVD_HIST
+
+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)
+}
+