diff options
Diffstat (limited to 'R')
| -rw-r--r-- | R/serenitasdb.R | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/R/serenitasdb.R b/R/serenitasdb.R index 80b50ed6..b8480c16 100644 --- a/R/serenitasdb.R +++ b/R/serenitasdb.R @@ -1,7 +1,7 @@ library(RPostgreSQL) drv <- dbDriver("PostgreSQL") serenitasdb <- dbConnect(drv, dbname="serenitasdb", user="serenitas_user", password="Serenitas1", - host="debian") + host="debian") nameToBasketID <- function(name, date=Sys.Date()){ sqlstr <- "SELECT * from nametobasketid('%s', '%s')" @@ -9,17 +9,18 @@ nameToBasketID <- function(name, date=Sys.Date()){ return(as.integer(r)) } -load.index <- function(name, date=Sys.Date(), tenor="5yr", Z, w, N){ - id <- nameToBasketID(name, date) - sqlstr <- "SELECT indexfactor, cumulativeloss, maturity from index_desc where basketid=%s and tenor='%s'" - r <- as.list(dbGetQuery(serenitasdb, sprintf(sqlstr, id, tenor))) - if(any(c(missing(Z), missing(w), missing(N)))){ - return( list(tenor=tenor, factor=r$indexfactor/100, maturity=r$maturity, - loss=r$cumulativeloss/100, recovery=0.4, name=name)) - }else{ - return( list(tenor=tenor, factor=r$indexfactor/100, maturity=r$maturity, - loss=r$cumulativeloss/100, recovery=0.4, name=name, Z=Z, w=w, N=N)) +set.index.desc <- function(index, date=Sys.Date()){ + ## retrieve factor, loss, and maturity from the database for a given index + ## depending on date + if(class(index)!="creditIndex"){ + stop("need to pass a credit index") } + id <- nameToBasketID(index$name, date) + sqlstr <- "SELECT indexfactor, cumulativeloss, maturity from index_desc where basketid=%s and tenor='%s'" + r <- as.list(dbGetQuery(serenitasdb, sprintf(sqlstr, id, index$tenor))) + return(c(index, + list(tradedate = date, factor=r$indexfactor/100, + loss=r$cumulativeloss/100, maturity=r$maturity))) } cdslist <- function(indexname, date=Sys.Date()){ |
