aboutsummaryrefslogtreecommitdiffstats
path: root/R
diff options
context:
space:
mode:
Diffstat (limited to 'R')
-rw-r--r--R/cds_functions_generic.R10
1 files changed, 4 insertions, 6 deletions
diff --git a/R/cds_functions_generic.R b/R/cds_functions_generic.R
index ae557729..92fae5a7 100644
--- a/R/cds_functions_generic.R
+++ b/R/cds_functions_generic.R
@@ -543,16 +543,14 @@ tweakportfolio <- function(portfolio, epsilon, multiplicative=TRUE){
return( r )
}
-indexpv <- function(portfolio, index, epsilon=0, tradedate=Sys.Date(), clean=TRUE){
+indexpv <- function(index, epsilon=0, tradedate=Sys.Date(), clean=TRUE){
## computes the intrinsic price of a portfolio of cds
- cs <- couponSchedule(IMMDate(tradedate), index$maturity, "Q", "FIXED", index$coupon, tradedate,
- IMMDate(tradedate, "prev"))
if(epsilon!=0){
- portfolio <- tweakportfolio(portfolio, epsilon)
+ portfolio <- tweakportfolio(index$portfolio, epsilon)
}
startdate <- tradedate + 1
- cl.list <- unlist(lapply(portfolio, function(x){couponleg(cs, x@curve, startdate)}))
- pl.list <- unlist(lapply(portfolio, function(x){defaultleg(cs, x@curve, x@recovery, startdate)}))
+ cl.list <- unlist(lapply(index$portfolio, function(x){couponleg(index$cs, x@curve, startdate)}))
+ pl.list <- unlist(lapply(index$portfolio, function(x){defaultleg(index$cs, x@curve, x@recovery, startdate)}))
accrued <- cdsAccrued(tradedate, index$coupon)
r <- list(cl = mean(cl.list) - accrued, pl = mean(pl.list), bp = 1+mean(cl.list-pl.list))
if(clean){