aboutsummaryrefslogtreecommitdiffstats
path: root/R/build_portfolios.R
diff options
context:
space:
mode:
Diffstat (limited to 'R/build_portfolios.R')
-rw-r--r--R/build_portfolios.R17
1 files changed, 13 insertions, 4 deletions
diff --git a/R/build_portfolios.R b/R/build_portfolios.R
index 3a38b0bd..69c1e20b 100644
--- a/R/build_portfolios.R
+++ b/R/build_portfolios.R
@@ -13,7 +13,11 @@ source(file.path(root.dir, "code", "R", "intex_deal_functions.R"))
if(length(args) >=2){
dealnames <- args[2:length(args)]
}else{
- dealnames <- unique(dealnamefromcusip(read.table(file.path(root.dir, "scripts", "cusips_to_price.txt"))$V1))
+ data <- read.table(file.path(root.dir, "scripts", "cusips_to_price.txt"))
+ dealnames <- dealnamefromcusip(data$V1)
+ uniqdealnames <- unique(dealnames)
+ reinvflags <- data$V2[match(uniqdealnames, dealnames)]
+ dealnames <- uniqdealnames
unlink(file.path(root.dir, "scripts", "cusips_to_price.txt"))
}
@@ -62,12 +66,17 @@ global.params$defaultloanhazardrate <- 1500 * bps
global.params$alpha <- 0.25
global.params$beta <- 15
global.params$shape <- function(T)0.25+(1-exp(-T/5))
-
+global.params$reinvflag <- TRUE
cusipdata <- cusip.data()
currdealnames <- dbGetQuery(dbCon, "select updatedate, dealname from latest_deal_model_numbers")
## build portfolio data
+i <- 1
for(deal.name in dealnames){
+ if(exists("reinvflags")){
+ global.params$reinvflag <- !reinvflags[i]
+ }
+ i <- i+1
if(is.na(deal.name)){
next
}
@@ -76,7 +85,7 @@ for(deal.name in dealnames){
next
}
deal.portfolio <- buildSC.portfolio(deal.name, deal.data, cusipdata, global.params, workdate)
- A <- SPmatrix2(deal.portfolio$SC, deal.data, freq="3 months")
+ A <- SPmatrix2(deal.portfolio$SC, deal.data, freq="3 months", workdate)
S <- 1 - sapply(deal.portfolio$SC, attr, "recov")
deal.weights <- deal.portfolio$notional/sum(deal.portfolio$notional)
deal.dates <- getdealschedule(deal.data)
@@ -120,4 +129,4 @@ for(deal.name in dealnames){
}
}
-write.table(dealnames, file = file.path(root.dir, "scripts", "scenarios.txt"), row.names = F, col.names = F)
+write.table(data.frame(dealnames, as.integer(!reinvflags)), file = file.path(root.dir, "scripts", "scenarios.txt"), row.names = F, col.names = F)