library(RPostgreSQL) drv <- dbDriver("PostgreSQL") mlpdbCon <- dbConnect(drv, dbname="mlpdb", user="mlpdb_user", password="Serenitas1", host="debian") nameToBasketID <- function(name, date){ sqlstr <- "SELECT * from nametobasketid('%s', '%s')" r <- dbGetQuery(mlpdbCon, sprintf(sqlstr, name, date)) return(as.integer(r)) } load.index <- function(name, date=Sys.Date(), tenor="5yr"){ id <- nameToBasketID(name, date) sqlstr <- "SELECT indexfactor, cumulativeloss, maturity from index_desc where basketid=%s and tenor='%s'" r <- as.list(dbGetQuery(mlpdbCon, sprintf(sqlstr, id, tenor))) return(list(coupon=0.05, factor=r$indexfactor/100, maturity=r$maturity, loss=r$cumulativeloss/100, recovery=0.4, name=name)) } cdslist <- function(indexname, 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))))) } get.indexquotes <- function(indexname, 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 ) }