diff options
Diffstat (limited to 'R/cds_functions_generic.R')
| -rw-r--r-- | R/cds_functions_generic.R | 17 |
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)
}
|
