library(RPostgreSQL) library(Rbbg) root.dir <- "//WDSENTINEL/share/CorpCDOs" source(file.path(root.dir, "code", "R", "etdb.R")) load(file.path(root.dir, "data", "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(file.path(root.dir, "data", "bloomberg", paste0("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(file.path(root.dir, "data", "bloomberg", paste0("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=file.path(root.dir, "data", "bloomberg_data.RData"))