diff options
| -rw-r--r-- | R/build_portfolios.R | 15 | ||||
| -rw-r--r-- | R/build_scenarios.R | 21 | ||||
| -rw-r--r-- | R/load_cf.R | 15 | ||||
| -rw-r--r-- | R/script_calibrate_tranches.R | 17 | ||||
| -rw-r--r-- | R/yieldcurve.R | 24 |
5 files changed, 28 insertions, 64 deletions
diff --git a/R/build_portfolios.R b/R/build_portfolios.R index 8652a016..e3e4fe4d 100644 --- a/R/build_portfolios.R +++ b/R/build_portfolios.R @@ -32,20 +32,7 @@ if(length(args) >= 1){ }
calibration.date <- addBusDay(workdate, -1)
-MarkitData <- getMarkitIRData(calibration.date)
-futurequotes <- read.csv(file.path(root.dir, "data", "Yield Curves",
- sprintf("futures-%s.csv", calibration.date)), header=F)
-if(isBusinessDay(calendar="UnitedStates",dates=as.Date(MarkitData$effectiveasof))){
- setEvaluationDate(addBusDay(tradedate=as.Date(MarkitData$effectiveasof),-1))
-}else{
- setEvaluationDate(as.Date(MarkitData$effectiveasof))
-}
-setCalendarContext("TARGET")
-L1m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/12)
-L2m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/6)
-L3m <- buildMarkitYC(MarkitData, futurequotes[,2])
-L6m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/2)
-L12m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1)
+exportYC(calibration.date)
global.params <- yaml.load_file(file.path(root.dir, "code", "R", "params.yml"))
diff --git a/R/build_scenarios.R b/R/build_scenarios.R index 1732f041..981e3ef7 100644 --- a/R/build_scenarios.R +++ b/R/build_scenarios.R @@ -41,26 +41,7 @@ load.index("hy21") calibration.date <- addBusDay(tradedate, -1)
settledate <- addBusDay(tradedate, 3)
-calibration <- read.table(file.path(root.dir, "Scenarios", "Calibration",
- paste0("calibration-", calibration.date,".csv")), sep=",", header=T)
-Z <- calibration$Z
-w <- calibration$w
-
-
-MarkitData <- getMarkitIRData(calibration.date)
-futurequotes <- read.csv(file.path(root.dir, "data", "Yield Curves",
- sprintf("futures-%s.csv", calibration.date)), header=F)
-if(isBusinessDay(calendar="UnitedStates",dates=as.Date(MarkitData$effectiveasof))){
- setEvaluationDate(addBusDay(tradedate=as.Date(MarkitData$effectiveasof),-1))
-}else{
- setEvaluationDate(as.Date(MarkitData$effectiveasof))
-}
-setCalendarContext("TARGET")
-L1m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/12)
-L2m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/6)
-L3m <- buildMarkitYC(MarkitData, futurequotes[,2])
-L6m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/2)
-L12m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1)
+exportYC(calibration.date)
Ngrid <- 201
support <- seq(0, 1, length = Ngrid)
diff --git a/R/load_cf.R b/R/load_cf.R index befdedde..abaf9ef1 100644 --- a/R/load_cf.R +++ b/R/load_cf.R @@ -27,20 +27,7 @@ source(file.path(root.dir, "code", "R", "interpweights.R")) load.index("hy21")
calibration.date <- addBusDay(tradedate, -1)
-MarkitData <- getMarkitIRData(calibration.date)
-futurequotes <- read.csv(file.path(root.dir, "data", "Yield Curves",
- sprintf("futures-%s.csv", calibration.date)), header=F)
-if(isBusinessDay(calendar="UnitedStates",dates=as.Date(MarkitData$effectiveasof))){
- setEvaluationDate(addBusDay(tradedate=as.Date(MarkitData$effectiveasof),-1))
-}else{
- setEvaluationDate(as.Date(MarkitData$effectiveasof))
-}
-setCalendarContext("TARGET")
-L1m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/12)
-L2m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/6)
-L3m <- buildMarkitYC(MarkitData, futurequotes[,2])
-L6m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/2)
-L12m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1)
+exportYC(calibration.date)
dm <- 0
sanitize.column <- function(vec){
diff --git a/R/script_calibrate_tranches.R b/R/script_calibrate_tranches.R index fe443b3d..63cf4986 100644 --- a/R/script_calibrate_tranches.R +++ b/R/script_calibrate_tranches.R @@ -23,22 +23,7 @@ if(length(args) >= 1){ tradedate <- Sys.Date()
}
-futurequotes <- read.csv(file.path(root.dir, "data", "Yield Curves",
- sprintf("futures-%s.csv", tradedate)), header=F)
-#retrieve yield curve data
-MarkitData <- getMarkitIRData(tradedate)
-L1m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/12)
-L2m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/6)
-L3m <- buildMarkitYC(MarkitData, futurequotes[,2])
-L6m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/2)
-
-if(isBusinessDay(calendar="UnitedStates",dates=as.Date(MarkitData$effectiveasof))){
- setEvaluationDate(addBusDay(tradedate=as.Date(MarkitData$effectiveasof),-1))
-}else{
- setEvaluationDate(as.Date(MarkitData$effectiveasof))
-}
-setCalendarContext("TARGET")
-
+exportYC(tradedate)
## calibrate HY21
## calibrate the single names curves
singlenames.data <- read.csv(file.path(root.dir, "Scenarios", "Calibration",
diff --git a/R/yieldcurve.R b/R/yieldcurve.R index 96729c25..ddde9ae3 100644 --- a/R/yieldcurve.R +++ b/R/yieldcurve.R @@ -88,3 +88,27 @@ buildMarkitYC <- function(MarkitData, futurequotes, dt=0.25){ YC.USD <- list(params=params, tsQuotes=tsQuotes)
return( YC.USD )
}
+
+exportYC <- function(tradedate=Sys.Date(), calibration.date=tradedate){
+ ## export the Yield Curve into the environment
+ require(RQuantLib)
+ futurequotes <- read.csv(file.path(root.dir, "data", "Yield Curves",
+ sprintf("futures-%s.csv", calibration.date)), header=F)
+ ##retrieve yield curve data
+ MarkitData <- getMarkitIRData(tradedate)
+ L1m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/12)
+ L2m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/6)
+ L3m <- buildMarkitYC(MarkitData, futurequotes[,2])
+ L6m <- buildMarkitYC(MarkitData, futurequotes[,2], dt = 1/2)
+
+ if(!isBusinessDay(calendar="UnitedStates/GovernmentBond",dates=as.Date(MarkitData$effectiveasof))){
+ setEvaluationDate(addBusDay(tradedate=as.Date(MarkitData$effectiveasof),-1))
+ }else{
+ setEvaluationDate(as.Date(MarkitData$effectiveasof))
+ }
+ setCalendarContext("TARGET")
+ assign("L1m", L1m, env = parent.env(environment()))
+ assign("L2m", L2m, env = parent.env(environment()))
+ assign("L3m", L3m, env = parent.env(environment()))
+ assign("L6m", L6m, env = parent.env(environment()))
+}
|
