diff options
Diffstat (limited to 'R')
| -rw-r--r-- | R/load_cf.R | 105 |
1 files changed, 73 insertions, 32 deletions
diff --git a/R/load_cf.R b/R/load_cf.R index 0172bca5..30966c90 100644 --- a/R/load_cf.R +++ b/R/load_cf.R @@ -1,40 +1,81 @@ -root.dir <- "//WDSENTINEL/share/CorpCDOs"
+if(.Platform$OS.type == "unix"){
+ root.dir <- "/home/share/CorpCDOs"
+}else{
+ root.dir <- "//WDSENTINEL/share/CorpCDOs"
+}
+source(file.path(root.dir, "code", "R", "yieldcurve.R"))
+workdate <- as.Date("2013-01-22")
+
+MarkitData <- getMarkitIRData(as.Date(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))
-workdate <- "2013-01-09"
sanitize.column <- function(vec){
- vec <- gsub(",", "", vec)
- index <- grep("\\(", vec)
- for(l in index){
- vec[l] <- substr(vec[l], 2, nchar(vec[l])-1)
- }
- return( as.numeric(vec) )
+ vec <- gsub(",", "", vec)
+ index <- grep("\\(", vec)
+ for(l in index){
+ vec[l] <- -as.numeric(substr(vec[l], 2, nchar(vec[l])-1))
+ }
+ return( as.numeric(vec) )
}
fields <- c("Cashflow", "Principal", "Interest")
-dealnames <- c("abcl071")
-tranches <- c("", "COLLAT_REINVEST", "COLLAT_INITIAL")
-for(dealname in dealnames){
- r <- matrix(0, n.scenarios, 3)
- for(tranche in tranches){
- for(i in 1:n.scenarios){
- if(tranche == ""){
- filename <- paste0(paste(toupper(dealname), "CF", paste0("Scen", i), sep="-"), ".txt")
- }else{
- filename <- paste0(paste(toupper(dealname), tranche, "CF", paste0("Scen", i), sep="-"), ".txt")
- }
+tranches <- c("COLLAT_REINVEST", "COLLAT_INITIAL")
+n.scenarios <- 100
+cfdata <- list()
+dealnames <- list.files(file.path(root.dir, "Scenarios", paste0("Intex curves_", workdate), "csv"), "*.RData")
+dealnames <- sapply(strsplit(dealnames, "\\."), function(x) x[1])
+flag <- FALSE
- data <- read.table(file.path(root.dir, "Scenarios", paste0("Prices_", workdate), filename), sep="\t", header=T)
- data <- data[-(1:2),1:4]
- data$Date <- as.Date(data$Date, "%b %d, %Y")
- data <- data[data$Date>=today(),]
- DC <- DiscountCurve(L3m$params, L3m$tsQuotes, yearFrac(L3m$params$tradeDate, data$Date))
- pv <- c()
- for(field in fields){
- data[,field] <- sanitize.column(data[,field])
- pv <- c(pv, crossprod(DC$discounts, data[,field]))
- }
- r[i,] <- pv
- }
+for(dealname in dealnames){
+ cfdata[[dealname]] <- list()
+ r <- matrix(0, n.scenarios, 3)
+ colnames(r) <- fields
+ sqlstring <- sprintf("select marketvalue from latest_deal_model_numbers where dealname='%s'", dealname)
+ mv <- dbGetQuery(dbCon, sqlstring)$marketvalue
+ sqlstring <- sprintf("select \"Curr Collat Bal\" from latest_clo_universe where dealname='%s'", dealname)
+ currbal <- dbGetQuery(dbCon, sqlstring)$"Curr Collat Bal"
+ cfdata[[dealname]]$mv <- mv
+ cfdata[[dealname]]$currbal <- currbal
+ for(tranche in tranches){
+ for(i in 1:n.scenarios){
+ filename <- paste0(paste(toupper(dealname), tranche, "CF", paste0("Scen", i), sep="-"), ".txt")
+ data <- read.table(file.path(root.dir, "Scenarios", paste0("Prices_", workdate), filename),
+ sep="\t", header=T)
+ data <- data[-(1:2),1:4]
+ data$Date <- as.Date(data$Date, "%b %d, %Y")
+ if(any(is.na(data$Date))){
+ sprintf("file: %s is messed up", filename)
+ flag <- TRUE
+ break
+ }
+ data <- data[data$Date >= today(),]
+ DC <- DiscountCurve(L3m$params, L3m$tsQuotes, yearFrac(L3m$params$tradeDate, data$Date))
+ pv <- c()
+ for(field in fields){
+ data[,field] <- sanitize.column(data[,field])
+ pv <- c(pv, crossprod(DC$discounts, data[,field]))
+ }
+ r[i,] <- pv
}
- colnames(r) <- fields
+ if(flag){
+ cfdata[[dealname]] <- NULL
+ flag <- FALSE
+ break
+ }else{
+ cfdata[[dealname]][[tranche]]<- r
+ }
+ }
+}
+
+
+r <- c()
+for(dealname in dealnames){
+ r <- rbind(r, c(cfdata[[dealname]]$mv, cfdata[[dealname]]$currbal, apply(cfdata[[dealname]]$COLLAT_REINVEST, 2, mean)[1], apply(cfdata[[dealname]]$COLLAT_INITIAL, 2, mean)[1]))
}
+colnames(r) <- c("mv", "currbal", "Reinvest", "Initial")
+rownames(r) <- dealnames
|
