aboutsummaryrefslogtreecommitdiffstats
path: root/R
diff options
context:
space:
mode:
Diffstat (limited to 'R')
-rw-r--r--R/mlpdb.R19
1 files changed, 14 insertions, 5 deletions
diff --git a/R/mlpdb.R b/R/mlpdb.R
index 04c1f0b9..0aa38a42 100644
--- a/R/mlpdb.R
+++ b/R/mlpdb.R
@@ -3,16 +3,25 @@ drv <- dbDriver("PostgreSQL")
dbCon <- dbConnect(drv, dbname="mlpdb", user="mlpdb_user", password="Serenitas1",
host="debian")
-nameToBasketID <- function(name){
+nameToBasketID <- function(name, date){
+ name <- toupper(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))
+ sqlstr <- "SELECT min(basketid) from index_desc where Index='%s' and Series=%s and lastdate>='%s'"
+ r <- dbGetQuery(dbCon, sprintf(sqlstr, index, series, date))
return(as.integer(r))
}
-cdslist <- function(indexname){
- basketid <- nameToBasketID(indexname)
+load.index <- function(name, date, tenor="Y5"){
+ id <- nameToBasketID(name, date)
+ sqlstr <- "SELECT indexfactor, cumulativeloss, maturity from index_desc where basketid=%s and tenor='%s'"
+ r <- as.list(dbGetQuery(dbCon, sprintf(sqlstr, id, tenor)))
+ return(list(coupon=0.05, factor=r$indexfactor/100,
+ loss=r$cumulativeloss/100, recovery=0.4))
+}
+
+cdslist <- function(indexname, date){
+ basketid <- nameToBasketID(indexname, date)
sqlstr <- "select * from CDS_Issuers where index_list @> '{%s}'"
return( dbGetQuery(dbCon, sprintf(sqlstr, basketid)))
}