aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--R/cds_functions_generic.R2
1 files changed, 2 insertions, 0 deletions
diff --git a/R/cds_functions_generic.R b/R/cds_functions_generic.R
index acae13eb..671d1c0f 100644
--- a/R/cds_functions_generic.R
+++ b/R/cds_functions_generic.R
@@ -56,6 +56,7 @@ setMethod("couponleg", signature("data.frame", "defaultcurve"),
function(cs, sc, startdate=Sys.Date() + 1, accruedondefault=TRUE){
stopifnot(class(startdate)=="Date")
stopifnot(is.logical(accruedondefault))
+ cs <- cs[cs$dates>=startdate,]
x1T <- yearFrac(startdate, sc@dates)
x2T <- yearFrac(startdate, cs$dates)
dT <- diff(c(0, yearFrac(startdate, cs$dates)))
@@ -233,6 +234,7 @@ setMethod("defaultleg", signature("data.frame", "defaultcurve", "numeric"),
## Computes the pv of the default leg of a cds based on a given
## coupon schedule, hazard rate curve, and recovery.
function(cs, sc, recovery, startdate=Sys.Date()+1){
+ cs <- cs[cs$dates>=startdate,]
T <- yearFrac(startdate, cs$dates)
x1T <- yearFrac(startdate, sc@dates)
hfun <- approxfun(x1T, sc@hazardrates, method="constant", rule=2)