diff options
Diffstat (limited to 'R/load_bloomberg_data.R')
| -rw-r--r-- | R/load_bloomberg_data.R | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/R/load_bloomberg_data.R b/R/load_bloomberg_data.R new file mode 100644 index 00000000..b3dff18a --- /dev/null +++ b/R/load_bloomberg_data.R @@ -0,0 +1,49 @@ +library(RPostgreSQL)
+library(Rbbg)
+source('etdb.R')
+load("bloomberg_data.RData")
+cusips <- dbGetQuery(dbCon, "select distinct cusip from et_collateral")
+bbgCon <- blpConnect(throw.ticker.errors=FALSE)
+
+fields.corp <- c("PX_LAST","LAST_UPDATE_DT","ISSUER","MATURITY","CPN","CPN_TYP",
+ "CPN_FREQ","FLT_SPREAD","LIBOR_FLOOR","LN_CURRENT_MARGIN",
+ "LN_COVENANT_LITE","SECOND_LIEN_INDICATOR","DEFAULTED", "PRICING_SOURCE")
+fields.mtge <- c("LAST_UPDATE_DT", "ISSUER","MATURITY","CPN","CPN_TYP","CPN_FREQ","FLT_SPREAD","RTG_MOODY","RTG_MDY_INITIAL")
+
+
+
+secCorp <- paste(corpcusips, "Corp")
+dataCorp <- bdp(bbgCon, secCorp, fields.corp)
+corpcusips <- substr(rownames(dataCorp[which(!is.na(dataCorp$ISSUER)),]),1,9)
+
+dataCorp <- dataCorp[which(!is.na(dataCorp$ISSUER)),]
+rownames(dataCorp) <- substr(rownames(dataCorp), 1, 9)
+dataCorp <- data.frame(CUSIP=rownames(dataCorp), dataCorp )
+fh = file(paste0("//WDSENTINEL/share/CorpCDOs/data/bloomberg/bloomberg_datacorp_",
+Sys.Date(),".csv"),"wb")
+write.csv(dataCorp, file=fh, row.names=F)
+close(fh)
+
+
+chunkSize <- 5000
+dataMtge <- c()
+for(i in 1:(length(mtgecusips)/chunkSize)){
+ cusipSample <- mtgecusips[((i-1)*chunkSize+1):(i*chunkSize)]
+ secMtge <- paste(cusipSample, "Mtge")
+ dataMtge <- rbind(dataMtge, bdp(bbgCon, secMtge, fields.mtge))
+}
+i <- i+1
+secMtge <- paste(mtgecusips[((i-1)*chunkSize+1):length(mtgecusips)], "Mtge")
+dataMtge <- rbind(dataMtge, bdp(bbgCon, secMtge, fields.mtge))
+mtgecusips <- substr(rownames(dataMtge[which(!is.na(dataMtge$ISSUER)),]),1,9)
+dataMtge <- dataMtge[which(!is.na(dataMtge$ISSUER)),]
+rownames(dataMtge) <- substr(rownames(dataMtge), 1, 9)
+dataMtge <- data.frame(CUSIP=rownames(dataMtge), dataMtge )
+fh = file(paste0("//WDSENTINEL/share/CorpCDOs/data/bloomberg/bloomberg_datamtge_",
+Sys.Date(),".csv"),"wb")
+write.csv(dataMtge, file=fh, row.names=F)
+close(fh)
+
+
+## save(corpcusips, mtgecusips, dataCorp, dataMtge, file="bloomberg_data.RData")
+save(corpcusips, mtgecusips, dataCorp, dataMtge, file="bloomberg_data.RData")
|
