aboutsummaryrefslogtreecommitdiffstats
path: root/R/mlpdb.R
blob: 04c1f0b9a625251f15cdc857626e19bf6dc0623c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
library(RPostgreSQL)
drv <- dbDriver("PostgreSQL")
dbCon <- dbConnect(drv, dbname="mlpdb", user="mlpdb_user", password="Serenitas1",
                   host="debian")

nameToBasketID <- function(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))
    return(as.integer(r))
}

cdslist <- function(indexname){
    basketid <- nameToBasketID(indexname)
    sqlstr <- "select * from CDS_Issuers where index_list @> '{%s}'"
    return( dbGetQuery(dbCon, 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(dbCon, 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 )
}