aboutsummaryrefslogtreecommitdiffstats
path: root/R/thetas-correct.R
diff options
context:
space:
mode:
Diffstat (limited to 'R/thetas-correct.R')
-rw-r--r--R/thetas-correct.R66
1 files changed, 0 insertions, 66 deletions
diff --git a/R/thetas-correct.R b/R/thetas-correct.R
deleted file mode 100644
index 03314340..00000000
--- a/R/thetas-correct.R
+++ /dev/null
@@ -1,66 +0,0 @@
-library(dplyr)
-library(lazyeval)
-library(logging)
-basicConfig()
-
-code.dir <- "~/projects/code/"
-source(file.path(code.dir, "R", "yieldcurve.R"))
-source(file.path(code.dir, "R", "calibration.R"), chdir=TRUE)
-source(file.path(code.dir, "R", "serenitasdb.R"))
-source(file.path(code.dir, "R", "creditIndex.R"))
-
-data.src <- src_postgres("serenitasdb", "debian", 5432, "serenitas_user")
-
-index.closeprice <- function(index=c("IG", "HY", "EU", "XO"), series) {
- index <- match.arg(index)
- index.quotes <- tbl(data.src, "index_quotes")
- df <- index.quotes %>% filter_(lazyeval::interp(~series == s, s=series)) %>%
- filter_(interp(~index == i, i=index)) %>%
- arrange(date)
- df <- df %>% select(date, tenor, closeprice) %>%
- rename(price=closeprice) %>%
- mutate(price=price/100) %>% collect()
- return( df )
-}
-
-get.maturities <- function(index=c("IG", "HY", "EU", "XO"), series) {
- index <- match.arg(index)
- df <- tbl(data.src, "index_maturity")
- df <- df %>% filter_(lazyeval::interp(~series == s, s=series)) %>%
- filter_(interp(~index == i, i=index)) %>%
- select(tenor, maturity, coupon) %>%
- rename(spread=coupon) %>% mutate(spread=spread*1e-4) %>%
- arrange(maturity) %>% collect()
- return( df )
-}
-
-maturities <- get.maturities("IG", 26)
-quotes <- index.closeprice("IG", 26)
-index <- creditIndex("IG26", "10yr")
-sqlstr <- paste("UPDATE index_quotes SET duration2=$1, theta2=$2",
- "WHERE date=$3 AND index=$4 AND series=$5 AND tenor=$6")
-
-for(i in seq_along(quotes$date %>% unique())) {
- tradedate <- quotes$date[i]
- exportYC(tradedate, "USD")
- index <- set.index.desc(index, tradedate)
- index <- set.singlenamesdata(index, tradedate)
- index$cs <- couponSchedule(IMMDate(tradedate, noadj=TRUE),
- index$maturity, "Q", "FIXED", 1,
- 0, tradedate, IMMDate(tradedate, "prev"))
- index$quotes <- quotes %>% filter(date == tradedate) %>%
- left_join(maturities) %>% arrange(maturity)
- tweak <- tweakcurves(index, tradedate)
- index$portfolio <- NULL
- index <- c(index, tweak)
- theta <- numeric(length(index$maturities))
- duration <- numeric(length(index$maturities))
- for(j in seq_along(maturities$maturity)) {
- maturity <- maturities$maturity[j]
- theta <- index %>% indextheta(tradedate=tradedate, maturity=maturity)
- duration <- index %>% indexduration(tradedate=tradedate, maturity=maturity)
- dbSendQuery(serenitasdb, sqlstr,
- params = list(duration, theta, tradedate,
- "IG", 26, maturities$tenor[j]))
- }
-}