aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--R/build_scenarios.R22
1 files changed, 12 insertions, 10 deletions
diff --git a/R/build_scenarios.R b/R/build_scenarios.R
index 5b339222..6e007341 100644
--- a/R/build_scenarios.R
+++ b/R/build_scenarios.R
@@ -93,7 +93,7 @@ compute.reinvprices <- function(df, forwards, cdrmonthly, recoverymonthly,
recov %*% laggeddf
}else{
recov <- -t(apply(cbind(1, currbalance), 1, diff)) *
- recoverymonthly[,index]
+ recoverymonthly[,index]
fixedcl <- as.numeric(currbalance*fixedcoupon*currdf)
floatcl <- as.numeric(currbalance*floatcoupon*currdf)
pl <- as.numeric(currbalance * currdf + recov * laggeddf)
@@ -112,12 +112,15 @@ w <- calibration$w
Ngrid <- 201
MarkitData <- getMarkitIRData(calibration.date)
-L1m <- buildMarkitYC(MarkitData, dt = 1/12)
-L2m <- buildMarkitYC(MarkitData, dt = 1/6)
-L3m <- buildMarkitYC(MarkitData)
-L6m <- buildMarkitYC(MarkitData, dt = 1/2)
-L12m <- buildMarkitYC(MarkitData, dt = 1)
+futurequotes <- read.csv(file.path(root.dir, "data", "Yield Curves",
+ sprintf("futures-%s.csv", calibration.date)), header=F)
setEvaluationDate(as.Date(MarkitData$effectiveasof))
+setCalendarContext("UnitedStates/GovernmentBond")
+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)
support <- seq(0, 1, length = Ngrid)
recoverylag <- 90 ##days
@@ -130,7 +133,6 @@ reinvlag <- 3 ##months
n.scenarios <- 100
recov.adj <- 1
-
for(j in seq_along(dealnames)){
load(file.path(root.dir, "Scenarios", paste("Portfolios", workdate, sep="_"),
paste(dealnames[j], "RData", sep=".")))
@@ -229,7 +231,7 @@ for(j in seq_along(dealnames)){
coupon <- reinvfixed
}
##reinvest tweak
- coupon <- coupon-0.0075
+ coupon <- coupon-0.01
reinvprices[[assetname]] <- foreach(date = iter(deal.datesmonthly), .combine=c) %dopar% {
100 * forwardportfolioprice(deal.portfolio, date,
@@ -290,11 +292,11 @@ for(j in seq_along(dealnames)){
row.names=F, col.names=F, sep=",", na="NaN")
write.table(reinvprices, file = file.path(save.dir, paste0(dealnames[j], "-reinvprices.csv")),
row.names=F, col.names=T, sep=",")
-
+
configfile <- file.path(save.dir, paste0(dealnames[j], ".config"))
config <- list(rollingmat = as.integer(rollingmaturity),
reinvflag = reinvflags[j])
- cat(as.yaml(config), file=configfile)
+ cat(as.yaml(config), file = configfile)
save(scenariosd, scenariosr, dist.joint, file=file.path(save.dir, paste0(dealnames[j], ".RData")),
compress="xz")