aboutsummaryrefslogtreecommitdiffstats
path: root/R/intex_deal_functions.R
diff options
context:
space:
mode:
Diffstat (limited to 'R/intex_deal_functions.R')
-rw-r--r--R/intex_deal_functions.R10
1 files changed, 5 insertions, 5 deletions
diff --git a/R/intex_deal_functions.R b/R/intex_deal_functions.R
index 5ca6d6aa..d24dd007 100644
--- a/R/intex_deal_functions.R
+++ b/R/intex_deal_functions.R
@@ -187,7 +187,6 @@ buildSC.matured <- function(SC, line.item, reinvdate, dealmaturity, global.param
}
buildSC <- function(line.item, reinvdate, dealmaturity, global.params, startdate){
- ## cat(line.item$issuername, "\n")
if(!is.na(line.item$iscdo) && line.item$iscdo && is.na(line.item$price)){
##we have prices for some cdos e.g. 210795PS3
if(line.item$orig_moody == "NA" || length(line.item$orig_moody)==0){
@@ -207,9 +206,9 @@ buildSC <- function(line.item, reinvdate, dealmaturity, global.params, startdate
line.item$currentbalance <- line.item$currentbalance * line.item$price/100
}
line.item$price <- 100
-
+ SC@recovery <- 0.7
SC@startdate <- startdate + global.params$defaultedlag
- if(!is.na(reinvdate) && SC@startdate<reinvdate && global.params$reinvflag){
+ if(global.params$reinvflag){#we reinvest recovery assets
line.item$maturity <- min(dealmaturity, SC@startdate + global.params$rollingmaturity)
line.item$nextpaydate <- SC@startdate
## automatic reinvest
@@ -259,14 +258,15 @@ buildSC.portfolio <- function(dealname, dealdata, cusipdata, global.params, star
## replace the cdo fields by bloomberg data
collatdata[cusipdata[collatdata$cusip],
`:=`(maturity=i.maturity, fixedorfloat=i.fixedorfloat,
- spread=i.spread, grosscoupon=i.grosscoupon, orig_moody=i.orig_moody)]
+ spread=i.spread, grosscoupon=i.grosscoupon, orig_moody=i.orig_moody, iscdo=TRUE)]
portfolio <- foreach(line.item = iter(collatdata, by='row')) %:% {
when( !is.na(line.item$maturity) && line.item$currentbalance > 1
&& line.item$assettype!="Equity") } %dopar% {
buildSC(line.item, dealdata$"Reinv End Date", dealdata$maturity, global.params, startdate)
}
- missingpricenotional <- sum(collatdata[is.na(price) & maturity>startdate,currentbalance])
+ missingpricenotional <- sum(collatdata[is.na(price) & maturity>startdate &
+ (is.na(iscdo)|!iscdo), currentbalance])
cdonotional <- sum(collatdata[iscdo==TRUE,currentbalance])
collatbalance <- sum(collatdata[,currentbalance])