aboutsummaryrefslogtreecommitdiffstats
path: root/R/mlpdb.R
diff options
context:
space:
mode:
Diffstat (limited to 'R/mlpdb.R')
-rw-r--r--R/mlpdb.R20
1 files changed, 13 insertions, 7 deletions
diff --git a/R/mlpdb.R b/R/mlpdb.R
index 634151bb..70190d4b 100644
--- a/R/mlpdb.R
+++ b/R/mlpdb.R
@@ -3,7 +3,7 @@ drv <- dbDriver("PostgreSQL")
mlpdbCon <- dbConnect(drv, dbname="mlpdb", user="mlpdb_user", password="Serenitas1",
host="debian")
-nameToBasketID <- function(name, date){
+nameToBasketID <- function(name, date=Sys.Date()){
sqlstr <- "SELECT * from nametobasketid('%s', '%s')"
r <- dbGetQuery(mlpdbCon, sprintf(sqlstr, name, date))
return(as.integer(r))
@@ -17,19 +17,25 @@ load.index <- function(name, date=Sys.Date(), tenor="5yr"){
loss=r$cumulativeloss/100, recovery=0.4, name=name))
}
-cdslist <- function(indexname, date){
+cdslist <- function(indexname, date=Sys.Date()){
basketid <- nameToBasketID(indexname, date)
sqlstr <- "select * from CDS_Issuers where index_list @> '{%s}'"
return( dbGetQuery(mlpdbCon, sprintf(sqlstr, basketid)))
}
arr.convert <- function(arr){
- return(as.numeric(unlist(lapply(arr, function(x)strsplit(substr(x,2,nchar(x)-1),",",fixed=TRUE)))))
+ arr <- unlist(lapply(arr, function(x)strsplit(substr(x,2,nchar(x)-1),",",fixed=TRUE)))
+ arr[arr=="NULL"] <- NA
+ arr <- matrix(as.numeric(arr), nrow=length(arr)/8, ncol=8, byrow=T)
+ colnames(arr) <- c("6m", "1y", "2y", "3y", "4y", "5y", "7y", "10y")
+ return(arr)
}
-get.indexquotes <- function(indexname, date){
+get.indexquotes <- function(indexname, date=Sys.Date()){
r <- dbGetQuery(mlpdbCon, 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 )
+ quotes <- list(tickers=r[,1],
+ spread_curve = arr.convert(r$spread_curve),
+ upfront_curve =arr.convert(r$upfront_curve),
+ recovery_curve = arr.convert(r$recovery_curve))
+ return( quotes )
}