aboutsummaryrefslogtreecommitdiffstats
path: root/R/load_cf.R
diff options
context:
space:
mode:
Diffstat (limited to 'R/load_cf.R')
-rw-r--r--R/load_cf.R8
1 files changed, 5 insertions, 3 deletions
diff --git a/R/load_cf.R b/R/load_cf.R
index 1eaa492b..a2b6a2b8 100644
--- a/R/load_cf.R
+++ b/R/load_cf.R
@@ -91,9 +91,11 @@ getdealcf <- function(dealnames, zipfiles, tradedate=Sys.Date()){
for(dealname in keys(dealnames)){
zip <- zipfiles[dealnames[[dealname]]]
dealdata <- getdealdata(dealname, tradedate)
- if(dealdata$"Deal Next Pay Date">tradedate+90){
+ if(dealdata$"Deal Next Pay Date">tradedate){
## some new issue deals have next pay date too far back in the future
- dealdata$"Deal Next Pay Date" <- seq(dealdata$"Deal Next Pay Date", length=2, by="-3 months")[2]
+ n.quarters <- as.numeric(dealdata$"Deal Next Pay Date" - tradedate)%/%90+1
+ dealdata$"Deal Next Pay Date" <- seq(dealdata$"Deal Next Pay Date", length=n.quarters,
+ by="-3 months")[n.quarters]
}
alldates <- getdealschedule(dealdata, "1 month")
config <- getconfig(dealname, tradedate)
@@ -130,7 +132,7 @@ getdealcf <- function(dealnames, zipfiles, tradedate=Sys.Date()){
data <- data[-c(1,2),]
data[,Date:=as.Date(Date, "%b %d, %Y")]
data <- data.table(Date=data[,Date], data[,lapply(.SD, sanitize.column),.SDcols=2:4],key="Date")
- r[i,] <- as.numeric(df[data, nomatch=NA][,list(sum(Cashflow*Discounts),
+ r[i,] <- as.numeric(df[data, roll=TRUE][,list(sum(Cashflow*Discounts),
sum(Principal*Discounts),
sum(Interest*Discounts))])
}