Next quasi-coupon date for fixed-income security

`NextQuasiCouponDate = cpndatenq(Settle, Maturity, Period, Basis,`

EndMonthRule, IssueDate, FirstCouponDate, LastCouponDate)

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

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

| (Optional) Coupons per year of the bond. A vector of
integers. Allowed values are |

| (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 |

| (Optional) End-of-month rule. A vector. This rule applies
only when |

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

| (Optional) Date when a bond makes its first coupon payment,
specified as a serial date number, date character vector, or datetime
array. |

| (Optional) Last coupon date of a bond before the maturity
date, specified as a serial date number, date character vector, or
datetime array. |

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. Fill unspecified entries in input
vectors with the value `NaN`

. Dates can be serial
date numbers or date character vectors.

```
NextQuasiCouponDate = cpndatenq(Settle, Maturity, Period,
Basis, EndMonthRule, IssueDate, FirstCouponDate, LastCouponDate)
```

determines
the next quasi coupon date for a portfolio of `NUMBONDS`

fixed
income securities whether or not the first or last coupon is normal,
short, or long. For zero coupon bonds `cpndatenq`

returns
quasi coupon dates as if the bond had a semiannual coupon structure.
Successive quasi coupon dates determine the length of the standard
coupon period for the fixed income security of interest and do not
necessarily coincide with actual coupon payment dates.

Outputs are `NUMBONDS`

-by-`1`

vectors.

If `Settle`

is a coupon date, this function
never returns the settlement date. It returns the quasi coupon date
strictly after settlement.

If all of the inputs for `Settle`

, `Maturity`

, `IssueDate`

, `FirstCouponDate`

,
and `LastCouponDate`

are either serial date numbers
or date character vectors, then `NextQuasiCouponDate`

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 inputs for `Settle`

, `Maturity`

, `IssueDate`

, `FirstCouponDate`

,
or `LastCouponDate`

are datetime arrays, then `NextQuasiCouponDate`

is
returned as a datetime array.

`accrfrac`

| `cfamounts`

| `cfdates`

| `cftimes`

| `cpncount`

| `cpndaten`

| `cpndatep`

| `cpndatepq`

| `cpndaysn`

| `cpndaysp`

| `cpnpersz`

| `datetime`

Was this topic helpful?