aboutsummaryrefslogtreecommitdiffstats
path: root/R
diff options
context:
space:
mode:
Diffstat (limited to 'R')
-rw-r--r--R/calibrate_tranches_BC.R12
1 files changed, 9 insertions, 3 deletions
diff --git a/R/calibrate_tranches_BC.R b/R/calibrate_tranches_BC.R
index 07cb4d99..7b863e40 100644
--- a/R/calibrate_tranches_BC.R
+++ b/R/calibrate_tranches_BC.R
@@ -118,7 +118,9 @@ for(i in seq_along(runs$name)){
##preallocate all the risk matrices
indexEL <- rep(0, length(bus.dates))
indexTheta <- rep(0, length(bus.dates))
+ indexBasis <- rep(0, length(bus.dates))
deltas <- matrix(0, length(bus.dates), n.tranches)
+ forward.deltas <- matrix(0, length(bus.dates), n.tranches)
gammas <- matrix(0, length(bus.dates), n.tranches)
thetas <- matrix(0, length(bus.dates), n.tranches)
rhos <- matrix(0, length(bus.dates), n.tranches)
@@ -134,6 +136,7 @@ for(i in seq_along(runs$name)){
## calibrate the single names curves
index <- set.singlenamesdata(index, tradedate)
index <- set.tranchedata(index, tradedate)
+ indexBasis[i] <- index$basis
indexEL[i] <- EL(index)
indexTheta[i] <- index$theta <- indextheta(index, tradedate)
## calibrate the tranches using base correlation
@@ -143,25 +146,28 @@ for(i in seq_along(runs$name)){
gammas[i,] <- index$gammas
index<- c(index, BCtranche.theta(index, method="TLP"))
thetas[i,] <- index$thetas
+ forward.deltas[i,] <- index$forward.deltas
rhos[i,] <- index$rho[-1]
corr01[i,] <- index$corr01 <- BCtranche.corr01(index)
temp <- BCtranche.pv(index, protection=TRUE)
- durations[i,] <- index$tranche.durations <- (temp$cl-cdsAccrued(tradedate, index$tranche.running))/index$tranche.running
+ durations[i,] <- index$tranche.durations <-
+ (temp$cl-cdsAccrued(tradedate, index$tranche.running))/index$tranche.running
ELmat[i,] <- index$tranche.EL <- -temp$pl*diff(index$K)
save(index, file=file.path(root.dir, "Tranche_data", "Objects",
paste0(paste(index.name, tenor, as.character(tradedate), sep="_"),".RData")))
cat("done\n")
}
- risk.numbers <- data.frame(deltas, gammas, thetas, rhos, corr01, durations, ELmat)
+ risk.numbers <- data.frame(deltas, forward.deltas, gammas, thetas, rhos, corr01, durations, ELmat)
colnames(risk.numbers) <- c(paste(tranche.names, "Model Delta"),
+ paste(tranche.names, "Forward Deltas"),
paste(tranche.names, "Gamma"),
paste(tranche.names, "Theta"),
paste(Attach, "Corr"),
paste(tranche.names, "Corr01"),
paste(tranche.names, "Dur"),
paste(tranche.names, "EL"))
- data <- cbind(bus.dates, quotes, indexEL, indexTheta, risk.numbers)
+ data <- cbind(bus.dates, quotes, indexBasis, indexEL, indexTheta, risk.numbers)
colnames(data)[1] <- "date"
write.table(data, file=file.path(root.dir,"Tranche_data","Runs", paste(index.name,tenor,"csv",sep=".")),