aboutsummaryrefslogtreecommitdiffstats
path: root/R/cds_functions_generic.R
diff options
context:
space:
mode:
Diffstat (limited to 'R/cds_functions_generic.R')
-rw-r--r--R/cds_functions_generic.R17
1 files changed, 10 insertions, 7 deletions
diff --git a/R/cds_functions_generic.R b/R/cds_functions_generic.R
index 073075de..f642ebb5 100644
--- a/R/cds_functions_generic.R
+++ b/R/cds_functions_generic.R
@@ -724,17 +724,20 @@ getdealschedule <- function(dealdata, freq="1 month", lag=0, adjust=FALSE){
if(is.null(dealdata$"Pay Day")||(abs(as.numeric(dealdata$"Deal Next Pay Date"- dealdata$"Pay Day") - 90)>10)){
dealdata$"Pay Day" <- seq(dealdata$"Deal Next Pay Date", length=2, by="-3 months")[2]
}
- sched <- seq(dealdata$"Pay Day", dealdata$"maturity" + lag, by=freq)
+ n <- if(freq == "1 month") 1 else 3
+ sched <- dealdata$"Pay Day"
+ i <- 1
+ bdc <- if(adjust) 0 else 4
+ nextdate <- advance(calendar = "UnitedStates", dates=dealdata$"Pay Day", n*i, 2, bdc=bdc)
+ while(nextdate<= dealdata$"maturity" + lag){
+ sched <- c(sched, nextdate)
+ i <- i+1
+ nextdate <- advance(calendar = "UnitedStates", dates=dealdata$"Pay Day", n*i, 2, bdc=bdc)
+ }
##always add the maturity
if(sched[length(sched)] < dealdata$maturity){
sched <- c(sched, dealdata$maturity)
}
- if(adjust){
- calstring <- "UnitedStates"
- ## never adjust the maturity
- sched <- c(adjust(calstring, sched[-length(sched)]), sched[length(sched)])
- base::names(sched) <- NULL
- }
return(sched)
}