aboutsummaryrefslogtreecommitdiffstats
path: root/R
diff options
context:
space:
mode:
Diffstat (limited to 'R')
-rw-r--r--R/serenitasdb.R23
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()){