coupon.dates {QuantBondCurves} | R 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")