Documentation

cpndaten

Next coupon date for fixed-income security

Syntax

NextCouponDate = cpndaten(Settle, Maturity, Period, Basis,
EndMonthRule, IssueDate, FirstCouponDate, LastCouponDate)

Arguments

Settle

Settlement date. A vector of serial date numbers, date character vectors, or datetime arrays. Settle must be earlier than Maturity.

Maturity

Maturity date. A vector of serial date numbers, date character vectors, or datetime arrays.

Period

(Optional) Coupons per year of the bond. A vector of integers. Allowed values are 0, 1, 2 (default), 3, 4, 6, and 12.

Basis

(Optional) Day-count basis of the instrument. A vector of integers.

  • 0 = actual/actual (default)

  • 1 = 30/360 (SIA)

  • 2 = actual/360

  • 3 = actual/365

  • 4 = 30/360 (PSA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (European)

  • 7 = actual/365 (Japanese)

  • 8 = actual/actual (ICMA)

  • 9 = actual/360 (ICMA)

  • 10 = actual/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = actual/365 (ISDA)

  • 13 = BUS/252

For more information, see basis.

EndMonthRule

(Optional) End-of-month rule. A vector. This rule applies only when Maturity is an end-of-month date for a month having 30 or fewer days. 0 = ignore rule, meaning that a bond's coupon payment date is always the same numerical day of the month. 1 = set rule on (default), meaning that a bond's coupon payment date is always the last actual day of the month.

IssueDate

(Optional) Date, specified as a serial date number, date character vector, or datetime array, when a bond was issued.

FirstCouponDate

(Optional) Date when a bond makes its first coupon payment, specified as a serial date number, date character vector, or datetime array. FirstCouponDate is used when a bond has an irregular first coupon period. When FirstCouponDate and LastCouponDate are both specified, FirstCouponDate takes precedence in determining the coupon payment structure. If you do not specify a FirstCouponDate, the cash flow payment dates are determined from other inputs.

LastCouponDate

(Optional) Last coupon date of a bond before the maturity date, specified as a serial date number, date character vector, or datetime array. LastCouponDate is used when bond has an irregular last coupon period. In the absence of a specified FirstCouponDate, a specified LastCouponDate determines the coupon structure of the bond. The coupon structure of a bond is truncated at the LastCouponDate, regardless of where it falls, and is followed only by the bond's maturity cash flow date. If you do not specify a LastCouponDate, the cash flow payment dates are determined from other inputs.

Required arguments must be number of bonds, NUMBONDS)-by-1 or 1-by-NUMBONDS, conforming vectors or scalars. Optional arguments must be either NUMBONDS-by-1 or 1-by-NUMBONDS conforming vectors, scalars, or empty matrices.

Description

NextCouponDate = cpndaten(Settle, Maturity, Period, Basis, EndMonthRule, IssueDate, FirstCouponDate, LastCouponDate) returns the next coupon date after the settlement date. This function finds the next coupon date whether or not the coupon structure is synchronized with the maturity date.

If all of the inputs for Settle, Maturity, IssueDate, FirstCouponDate, and LastCouponDate are either serial date numbers or date character vectors, then NextCouponDate is returned as a serial date number. The function datestr converts a serial date number to a formatted date character vector.

If any of the of the inputs for Settle, Maturity, IssueDate, FirstCouponDate, or LastCouponDate are datetime arrays, then NextCouponDate is returned as a datetime array.

Examples

NextCouponDate = cpndaten('14-Mar-1997', '30-Nov-2000', 2, 0, 0);
datestr(NextCouponDate)
ans =

30-May-1997
NextCouponDate = cpndaten('14-Mar-1997', datetime('30-Nov-2000','Locale','en_US'), 2, 0, 0)
NextCouponDate = 

   30-May-1997
NextCouponDate = cpndaten('14-Mar-1997', '30-Nov-2000', 2, 0, 1);
datestr(NextCouponDate)
ans =

31-May-1997
Maturity = ['30-Sep-2000'; '31-Oct-2000'; '30-Nov-2000'];
NextCouponDate = cpndaten('14-Mar-1997', Maturity);
datestr(NextCouponDate)
ans =

31-Mar-1997
30-Apr-1997
31-May-1997

Related Examples

Introduced before R2006a

Was this topic helpful?