diff options
Diffstat (limited to 'R')
| -rw-r--r-- | R/mlpdb.R | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -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))) } |
