diff options
| -rw-r--r-- | R/cds_functions_generic.R | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/R/cds_functions_generic.R b/R/cds_functions_generic.R index 615403fa..f9a88207 100644 --- a/R/cds_functions_generic.R +++ b/R/cds_functions_generic.R @@ -481,7 +481,7 @@ bondhazardrate.shaped <- function(collateral, shape, R=0.4, alpha=0.25, beta=15) counter <- 0
if(collateral$price<1){
cat("price is too low\n")
- h <- 1e6
+ sc <- new("shapedcurve", h=1e6, shape=shape, alpha=alpha, beta=beta)
return( shapedtodpc(cs, sc) )
}
@@ -555,7 +555,11 @@ portfoliospread <- function(portfolio, maturity){ d[i] <- 0
## Svec[i] <- 0
}else{
- d[i] <- cdsduration(portfolio$SC[[i]]@curve, maturityvec[i])
+ if(portfolio$SC[[i]]@curve@hazardrates[1]>10){
+ d[i] <- 0
+ }else{
+ d[i] <- cdsduration(portfolio$SC[[i]]@curve, maturityvec[i])
+ }
S <- S + d[i] * portfolio$notional[i] *
cdsspread(portfolio$SC[[i]]@curve, maturityvec[i], portfolio$SC[[i]]@recovery)
## Svec[i] <- cdsspread(portfolio$SC[[i]]@curve, maturityvec[i], portfolio$SC[[i]]@recovery)
|
