diff options
Diffstat (limited to 'R/calibrate_tranches_MF.R')
| -rw-r--r-- | R/calibrate_tranches_MF.R | 94 |
1 files changed, 44 insertions, 50 deletions
diff --git a/R/calibrate_tranches_MF.R b/R/calibrate_tranches_MF.R index badfba76..aa2c49bf 100644 --- a/R/calibrate_tranches_MF.R +++ b/R/calibrate_tranches_MF.R @@ -1,50 +1,44 @@ -#!/usr/bin/Rscript
-require(methods)
-library(logging)
-
-args <- commandArgs(trailingOnly=TRUE)
-
-if(.Platform$OS.type == "unix"){
- root.dir <- "/home/share/CorpCDOs"
-}else{
- root.dir <- "//WDSENTINEL/share/CorpCDOs"
-}
-
-basicConfig()
-removeHandler('basic.stdout')
-addHandler(writeToFile, file=file.path(root.dir, "logs", "calibrate_tranches_MF.log"))
-##options(warn=2)
-code.dir <- if(Sys.getenv("CODE_DIR")!="") Sys.getenv("CODE_DIR") else root.dir
-
-source(file.path(code.dir, "code", "R", "yieldcurve.R"))
-source(file.path(code.dir, "code", "R", "optimization.R"))
-source(file.path(code.dir, "code", "R", "calibration.R"), chdir=TRUE)
-source(file.path(code.dir, "code", "R", "serenitasdb.R"))
-source(file.path(code.dir, "code", "R", "creditIndex.R"))
-source(file.path(code.dir, "code", "R", "tranche_functions.R"))
-
-##figure out the tradedate
-if(length(args) >= 1){
- tradedate <- as.Date(args[1])
-}else{
- tradedate <- addBusDay(Sys.Date(), -1)
-}
-
-exportYC(tradedate)
-## calibrate HY25
-## calibrate the single names curves
-index <- creditIndex("hy27", "5yr")
-index <- set.index.desc(index, tradedate)
-index <- set.singlenamesdata(index, tradedate)
-## load tranche data
-index <- set.tranchedata(index, tradedate)
-##calibrate by modifying the factor distribution
-index$w.mod <- build.MFdist(index)
-dist <- MFlossdist(index)
-write.table(data.frame(Z=index$Z, w=index$w.mod),
- file=file.path(root.dir, "Scenarios", "Calibration",
- paste0("calibration-", tradedate, ".csv")),
- col.names=T, row.names=F, sep=",")
-
-save(index, dist, file = file.path(root.dir, "Scenarios", "Calibration",
- paste0("marketdata-", tradedate, ".RData")), compress="xz")
+#!/usr/bin/Rscript +require(methods) +library(logging) + +args <- commandArgs(trailingOnly=TRUE) + +basicConfig() +removeHandler('basic.stdout') +addHandler(writeToFile, file=file.path(Sys.getenv("LOG_DIR"), "calibrate_tranches_MF.log")) +##options(warn=2) +code.dir <- Sys.getenv("CODE_DIR") +data.dir <- file.path(Sys.getenv("DATA_DIR"), "..", "Scenarios", "Calibration") +source(file.path(code.dir, "R", "yieldcurve.R")) +source(file.path(code.dir, "R", "optimization.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")) +source(file.path(code.dir, "R", "tranche_functions.R")) + +##figure out the tradedate +if(length(args) >= 1){ + tradedate <- as.Date(args[1]) +}else{ + tradedate <- addBusDay(Sys.Date(), -1) +} + +exportYC(tradedate) +## calibrate HY25 +## calibrate the single names curves +index <- creditIndex("hy27", "5yr") +index <- set.index.desc(index, tradedate) +index <- set.singlenamesdata(index, tradedate) +## load tranche data +index <- set.tranchedata(index, tradedate) +##calibrate by modifying the factor distribution +index$w.mod <- build.MFdist(index) +dist <- MFlossdist(index) +write.table(data.frame(Z=index$Z, w=index$w.mod), + file=file.path(data.dir, + paste0("calibration-", tradedate, ".csv")), + col.names=T, row.names=F, sep=",") + +save(index, dist, file = file.path(data.dir, + paste0("marketdata-", tradedate, ".RData")), compress="xz") |
