aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--R/zerorecovery_index.R11
1 files changed, 6 insertions, 5 deletions
diff --git a/R/zerorecovery_index.R b/R/zerorecovery_index.R
index b4d75800..897a55c7 100644
--- a/R/zerorecovery_index.R
+++ b/R/zerorecovery_index.R
@@ -7,13 +7,13 @@ source(file.path(code.dir, "R", "creditIndex.R"))
source(file.path(code.dir, "R", "tranche_functions.R"))
-zerorecov.pv <- function(portfolio, tradedate=Sys.Date()) {
+zerorecov.pv <- function(portfolio, cs, tradedate=Sys.Date()) {
startdate <- tradedate + 1
zerorecov.portfolio <- lapply(portfolio, function(x) {x@recovery=0;return(x)})
pl.list <- vapply(zerorecov.portfolio, function(x) {
- pl <- defaultleg(index$cs, x@curve, x@recovery, startdate, TRUE)
+ pl <- defaultleg(cs, x@curve, x@recovery, startdate, TRUE)
if(is.na(pl)) {
- print("couldn't compute single name protection leg for", x@issuer))
+ cat("couldn't compute single name protection leg for", x@issuer, "\n")
return( NA )
}
return( pl )
@@ -22,9 +22,10 @@ zerorecov.pv <- function(portfolio, tradedate=Sys.Date()) {
}
delta <- function(index, tradedate=Sys.Date()) {
- old.pv.zerorecov <- zerorecov.pv(index$portfolio, tradedate)
+ old.pv.zerorecov <- zerorecov.pv(index$portfolio, index$cs, tradedate)
old.pv.index <- indexpv(index, tradedate=tradedate)$bp
- new.pv.zerorecov <- zerorecov.pv(tweakportfolio(index$portfolio, 0.01), tradedate)
+ new.pv.zerorecov <- zerorecov.pv(tweakportfolio(index$portfolio, 0.01),
+ index$cs, tradedate)
new.pv.index <- indexpv(index, 0.01, tradedate=tradedate)$bp
return( -(new.pv.zerorecov-old.pv.zerorecov) / (new.pv.index - old.pv.index) )
}