diff options
Diffstat (limited to 'R/cds_functions_generic.R')
| -rw-r--r-- | R/cds_functions_generic.R | 10 |
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){
|
