diff options
Diffstat (limited to 'R/cds_functions_generic.R')
| -rw-r--r-- | R/cds_functions_generic.R | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/R/cds_functions_generic.R b/R/cds_functions_generic.R index 32c52e51..ae557729 100644 --- a/R/cds_functions_generic.R +++ b/R/cds_functions_generic.R @@ -666,14 +666,14 @@ survivalProbability.exact <- function(credit.curve, date) { return( exp(as.numeric(logprob)) )
}
-SP <- function(sc){
+SP <- function(sc, startdate=Sys.Date()){
## computes the survival probability associated with the survival curve
- T <- c(0, yearFrac(Sys.Date(), sc@dates))
+ T <- c(0, yearFrac(startdate, sc@dates))
dT <- diff(T)
return( cumprod(exp(-sc@hazardrates * dT)) )
}
-SPmatrix <- function(portfolio, index){
+SPmatrix <- function(portfolio, n.dates){
## computes matrix of survival probability
## inputs:
## portfolio: portfolio of survival curves
@@ -682,10 +682,9 @@ SPmatrix <- function(portfolio, index){ ## matrix of survival probabilities of dimensions dim1 x dim2
## with dim1 number of issuers and dim2 number of dates in the
## coupon schedule of index
- cs <- couponSchedule(IMMDate(Sys.Date()), index$maturity, "Q", "FIXED", index$coupon)
- SP <- matrix(0, length(portfolio), length(cs$dates))
+ SP <- matrix(0, length(portfolio), n.dates)
for(i in 1:length(portfolio)){
- SP[i,] <- SP(portfolio[[i]]@curve)[1:length(cs$dates)]
+ SP[i,] <- SP(portfolio[[i]]@curve, portfolio[[i]]@startdate)[1:n.dates]
}
return( SP )
}
|
