diff options
| -rw-r--r-- | R/zerorecovery_index.R | 11 |
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) ) } |
