aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--R/load_cf.R18
1 files changed, 11 insertions, 7 deletions
diff --git a/R/load_cf.R b/R/load_cf.R
index 2bc37bc8..6d43a951 100644
--- a/R/load_cf.R
+++ b/R/load_cf.R
@@ -145,14 +145,18 @@ getdealcf <- function(params, workdate=Sys.Date()){
for(tranche in tranches){
cf <- cf+cfdata[[dealname]][[tranche]][,"Cashflow"]
}
- if(sqldata$"Principal Bal" < 0){
- cf <- cf-sqldata$"Principal Bal"
+ cf <- cf-min(sqldata$"Principal Bal", 0)
+ cfdata[[dealname]]$wapbasis <- (mean(cf)- mv)/mv
+ program <- tryCatch(KLfit(t(cf)/1e8, rep(1/n.scenarios, n.scenarios),
+ cfdata[[dealname]]$mv/1e8), error=function(e) e)
+ if(inherits(program, "error")){
+ cat("error computing the delta for deal:", dealname,"\n")
+ cfdata[[dealname]] <- NULL
+ next
+ }else{
+ cfdata[[dealname]]$weight <- program$weight
+ cat(dealname, "\n")
}
- cfdata[[dealname]]$wapbasis <- (mean(cf)- cfdata[[dealname]]$mv)/cfdata[[dealname]]$mv
- program <- KLfit(t(cf)/1e8, rep(1/n.scenarios, n.scenarios),
- cfdata[[dealname]]$mv/1e8)
- cfdata[[dealname]]$weight <- program$weight
- cat(dealname, "\n")
}
return( cfdata )
}