1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
root.dir <- "//WDSENTINEL/share/CorpCDOs"
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) )
}
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")
}
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
}
}
colnames(r) <- fields
}
|