diff options
| -rw-r--r-- | R/load_cds_data.R (renamed from R/bloomberg_cds.R) | 36 | ||||
| -rw-r--r-- | R/mlpdb.R | 29 |
2 files changed, 35 insertions, 30 deletions
diff --git a/R/bloomberg_cds.R b/R/load_cds_data.R index 79717a36..ff41b6bd 100644 --- a/R/bloomberg_cds.R +++ b/R/load_cds_data.R @@ -1,33 +1,5 @@ -bbgConn <- blpConnect(host='192.168.1.108', port='8194') - -nameToBasketID <- function(name){ - index <- substr(name, 1, 2) - series <- substr(name, 3, nchar(name)) - sqlstr <- "SELECT max(basketid) from index_desc where Index='%s' and Series=%s" - r <- dbGetQuery(dbCon, sprintf(sqlstr, index, series)) - return(as.integer(r)) -} - -newbasketID <- function(series, offset){ - maturities <- c("2017-06-20", "2019-06-20", "2021-06-20", "2024-06-20") - tenors <- c("Y3", "Y5", "Y7", "Y10") - sqlstr <- "INSERT INTO index_desc VALUES(%s, '%s', %s, '%s', '%s', 100, 0)" - indices <- c("HY", "IG") - for(i in seq_along(indices)){ - for(j in seq_along(tenors)){ - stmt <- sprintf(sqlstr, offset + 10*i, indices[i], series, - maturities[j], tenors[j]) - dbSendQuery(dbCon, stmt) - } - - } -} - -cdslist <- function(indexname){ - basketid <- nameToBasketID(indexname) - sqlstr <- "select * from CDS_Issuers where index_list @> '{%s}'" - return( dbGetQuery(dbCon, sprintf(sqlstr, basketid))) -} +library(Rbbg) +source("mlpdb.R") download.cdscurves <- function(date=Sys.Date()){ tickers <- dbGetQuery(dbCon, "select cds_curve[6] from CDS_Issuers")$cds_curve @@ -59,4 +31,8 @@ write.tranchedata <- function(){ write.csv(data, file=paste0("tranche_data_", Sys.Date(), ".csv"), row.names=TRUE) } +setwd("/home/share/CorpCDOs/data/bloomberg/CDS") +bbgConn <- blpConnect(host='192.168.1.108', port='8194') +download.cdscurves() +write.tranchedata() blpDisconnect(bbgConn) diff --git a/R/mlpdb.R b/R/mlpdb.R new file mode 100644 index 00000000..04c1f0b9 --- /dev/null +++ b/R/mlpdb.R @@ -0,0 +1,29 @@ +library(RPostgreSQL) +drv <- dbDriver("PostgreSQL") +dbCon <- dbConnect(drv, dbname="mlpdb", user="mlpdb_user", password="Serenitas1", + host="debian") + +nameToBasketID <- function(name){ + index <- substr(name, 1, 2) + series <- substr(name, 3, nchar(name)) + sqlstr <- "SELECT max(basketid) from index_desc where Index='%s' and Series=%s" + r <- dbGetQuery(dbCon, sprintf(sqlstr, index, series)) + return(as.integer(r)) +} + +cdslist <- function(indexname){ + basketid <- nameToBasketID(indexname) + sqlstr <- "select * from CDS_Issuers where index_list @> '{%s}'" + return( dbGetQuery(dbCon, sprintf(sqlstr, basketid))) +} + +arr.convert <- function(arr){ + return(as.numeric(unlist(lapply(arr, function(x)strsplit(substr(x,2,nchar(x)-1),",",fixed=TRUE))))) +} + +get.indexquotes <- function(indexname, date){ + r <- dbGetQuery(dbCon, sprintf("select * from curve_quotes('%s', '%s')", indexname, date)) + r <- data.frame(r[,1], matrix(arr.convert(r[,2]), nrow(r), 8, byrow=T)) + colnames(r) <- c("ticker", "6m", "1y", "2y", "3y", "4y", "5y", "7y", "10y") + return( r ) +} |
