coupon.dates: Coupon date payments

View source: R/generalFunctions.R

coupon.datesR Documentation

Coupon date payments

Description

Function to calculate the upcoming coupon payment dates of a given asset, based on its payment frequency. The list of payment dates encompass the time period between the analysis date and the maturity of the asset.

Usage

coupon.dates(
  maturity,
  analysis.date = Sys.Date(),
  asset.type = "TES",
  freq = NULL,
  convention = "F",
  loc = "BOG",
  trade.date = NULL,
  coupon.schedule = "SF"
)

Arguments

maturity

Last day of the contract: YYYY-MM-DD. Alternatively, it can be a numeric value that represents the duration of the contract in years.

analysis.date

Date in which the asset is valued. By default, the current date.

asset.type

String that determines the asset type to value. See also 'Details'.

freq

Frequency of payments of a given asset in a year. For LIBOR and IBR the default frequency is four (quarterly payments). TES has a default frequency of one (annual payments).

convention

String that establishes if the effective dates are calculated using Following, Modified Following, Backward or Backward Following. See also 'Details'.

loc

String related to the location of the asset. It is used to calculate the effective dates, taking into account the business days of the given location. See also 'Details'.

trade.date

The date on which the transaction occurs. It is used to calculate maturity as a date, when given in years. Also required for non-trivial cases such as bonds with long first coupon.

coupon.schedule

String that establishes if a bond first coupon period is a long first coupon or a short first coupon. On the contrary, establishes if last coupon period is long last coupon or a short last coupon. See also 'Details'.

Details

asset.type makes reference to the following type of assets:

  • "TES" for Colombian Treasury Bonds (default).

  • "FixedIncome" for assets that are indexed to a fixed income with different frequency of payments.

  • "IBR" for bonds and assets indexed to 3M IBR rate.

  • "IBRSwaps" for swaps indexed to IBR rate.

  • "LIBOR" for bonds and assets indexed to 3M LIBOR.

  • "UVRSwaps" for cross-currency swaps indexed to UVR-IBR rate.

  • "LIBORSwaps" for Interest Rate Swaps (IRS) indexed to 3M LIBOR.

loc makes reference to the following locations:

  • "BOG" for colombian issued assets and national business days (default).

  • "LDN" for business days of London.

  • "NY" for business days of New York

  • "NYLDN" for the intersection of business days in New York and London.

  • "BOGNY" for the intersection of business days in Bogota and New York.

convention makes reference to the following type of business day conventions:

  • "F" for Following business day convention.

  • "MF" for Modified Following business day convention.

  • "B" for Backward business day convention.

  • "MB" for Modified Backward business day convention.

coupon.schedule makes reference to the following type of coupon payment schedule of a bond:

  • "LF" for Long First coupon payment.

  • "LL" for Long Last coupon payment.

  • "SF" for Short First coupon payment.

  • "SL" for Short Last coupon payment.

Value

Upcoming coupon dates and dates of payment according to business day conventions.

Note

If only maturity is given, function assumes that the coupon payments have already started. If maturity and trade.date are included, coupon dates are calculated from trade.date to maturity. If by doing so, trade.date doesn't converge to maturity, month remainder is adjusted according to coupon.schedule. For LIBOR assets, function adds 2 business days to trade.date.

Examples

coupon.dates("2028-04-03")
coupon.dates(maturity = 2, analysis.date = "2021-10-01")
coupon.dates(maturity = "2029-10-01", asset.type = "FixedIncome", freq = 2, convention = "MB")
coupon.dates(maturity = "2028-02-29", analysis.date = "2022-07-29", trade.date = "2022-07-29",
             asset.type = "TES", coupon.schedule = "SF")
coupon.dates(maturity = "2025-11-30", analysis.date = "2022-03-01", trade.date = "2021-05-31",
             asset.type = "IBR", loc = "NY", convention = "F")

QuantBondCurves documentation built on April 4, 2025, 5:11 a.m.