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")