1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
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"))
|