diff options
| -rw-r--r-- | R/build_portfolios.R | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/R/build_portfolios.R b/R/build_portfolios.R new file mode 100644 index 00000000..8a53c547 --- /dev/null +++ b/R/build_portfolios.R @@ -0,0 +1,78 @@ +library("RQuantLib")
+library("parallel")
+
+if(.Platform$OS.type == "unix"){
+ root.dir <- "/home/share/CorpCDOs"
+}else{
+ root.dir <- "//WDSENTINEL/share/CorpCDOs"
+}
+
+source(file.path(root.dir, "code", "R", "intex_deal_functions.R"))
+source(file.path(root.dir, "code", "R", "index_definitions.R"))
+
+workdate <- as.Date('2013-01-24')
+MarkitData <- getMarkitIRData(workdate)
+
+L1m <- buildMarkitYC(MarkitData, dt = 1/12)
+L2m <- buildMarkitYC(MarkitData, dt = 1/6)
+L3m <- buildMarkitYC(MarkitData)
+L6m <- buildMarkitYC(MarkitData, dt = 1/2)
+L12m <- buildMarkitYC(MarkitData, dt = 1)
+setEvaluationDate(as.Date(MarkitData$effectiveasof))
+
+bps <- 1e-4
+global.params <- list()
+global.params$recovery.assumptions <- list("Loan"=0.7,
+ "Senior Notes"=0.7,
+ "SecondLien"=0.3,
+ "Bond"=0.4,
+ "Mezzanine"=0.15,
+ "Adj_Covlite"=0.1,
+ "Credit Default Swap"=0)
+
+global.params$cdoprices <- list("Aaa"=90,
+ "Aa"=88,
+ "A"=80,
+ "Baa"=75,
+ "Ba"=70,
+ "B"=65,
+ "NR"=50)
+#reinvest in 7 years assets
+global.params$rollingmaturity <- 7 * 365
+global.params$defaultedlag <- 90
+global.params$defaultcorr <- 0.45
+global.params$defaultbondhazardrate <- 1500 * bps
+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))
+
+dealnames <- listdealnames()
+
+calibration.date <- Sys.Date()
+calibration.date <- '2013-01-24'
+cusipdata <- cusip.data()
+do <- function(deal.name){
+ deal.data <- getdealdata(deal.name, calibration.date)
+ if(deal.data$"Curr Collat Bal" < 1 ||is.na(deal.data$maturity)||deal.data$maturity<=today()+90){
+ return()
+ }
+ deal.portfolio <- buildSC.portfolio(deal.name, deal.data, cusipdata, global.params)
+ A <- SPmatrix2(deal.portfolio$SC, deal.data, freq="3 months")
+ S <- 1 - sapply(deal.portfolio$SC, attr, "recov")
+ deal.weights <- deal.portfolio$notional/sum(deal.portfolio$notional)
+ deal.dates <- getdealschedule(deal.data)
+ deal.spread <- portfoliospread(deal.portfolio, hy19$maturity)
+ save.dir <- file.path(root.dir, "Scenarios", paste("Portfolios", calibration.date, sep="_"))
+ if(!file.exists(save.dir)){
+ dir.create(save.dir)
+ }
+ save(deal.portfolio, A, S, deal.weights, deal.dates, deal.spread,
+ file=file.path(save.dir, paste0(deal.name, ".RData")))
+ cat(deal.name, "... done\n")
+}
+
+## build portfolio data
+for(deal.name in dealnames){
+ do(deal.name)
+}
|
