Generate a date schedule from effective_date to termination_date. This code was derived from the Quantlib method Schedule::Schedule. This can be used to generate the cash flow, fixing and projection dates of an interest rate swap according to certain conventions.

generate_schedule(effective_date, termination_date, tenor,
  calendar = EmptyCalendar(), bdc = "u", stub = "short_front",
  eom_rule = FALSE, first_date = effective_date,
  last_date = termination_date)

Arguments

effective_date

the date at which the schedule begins. For example, the effective date of a swap. This should be POSIXct.

termination_date

the date at which the schedule ends. For example, the termination date of a swap. This should be POSIXct.

tenor

the frequency of the events for which dates are generated. For example, month(3) reflects events that occur quarterly. Should be an atomic Period-class of length one

calendar

a Calendar

bdc

a string representing one of the following business day conventions: "u", "f", "mf", "p", "mp", "ms" (unadjusted, following, modified following, preceding, modified preceding and modified succeeding, resp.)

stub

a string representing one of the following stub types: "short_front", "short_back", "long_front", "long_back".

eom_rule

a logical value defining whether the end-to-end convention applies.

first_date

date of first payment for example. This defaults to effective_date as is usually the case

last_date

date of last payment for example. This defaults to termination_date as is usually the case

Value

an Interval vector

See also

Other calendar methods: adjust, is_good, is_valid_bdc, is, locale, shift, tz

Examples

library (lubridate) effective_date <- ymd('20120103') termination_date <- ymd('20121203') tenor <- months(3) stub <- 'short_front' bdc <- 'mf' calendar <- AUSYCalendar() eom_rule <- FALSE generate_schedule(effective_date, termination_date, tenor, calendar, bdc, stub, eom_rule)
#> [1] 2012-01-03 UTC--2012-03-05 UTC 2012-03-05 UTC--2012-06-04 UTC #> [3] 2012-06-04 UTC--2012-09-03 UTC 2012-09-03 UTC--2012-12-03 UTC