cpndaysn

Number of days to next coupon date

Syntax

``NumDaysNext = cpndaysn(Settle,Maturity)``
``NumDaysNext = cpndaysn(___,Period,Basis,EndMonthRule,IssueDate,FirstCouponDate,LastCouponDate)``

Description

example

````NumDaysNext = cpndaysn(Settle,Maturity)` returns the number of days from the settlement date to the next coupon date for a bond or set of bonds. For zero coupon bonds coupon dates are computed as if the bonds have a semiannual coupon structure. `NumDaysNext` returns a `NUMBONDS`-by-`1` vector containing the number of days to the next coupon date.Required input arguments must be number of bonds, `NUMBONDS`-by-`1` or `1`-by-`NUMBONDS`, conforming vectors or scalars.```

example

````NumDaysNext = cpndaysn(___,Period,Basis,EndMonthRule,IssueDate,FirstCouponDate,LastCouponDate)` returns the number of days from the settlement date to the next coupon date for a bond or set of bonds using optional input arguments. Optional input arguments must be either `NUMBONDS`-by-`1` or `1`-by-`NUMBONDS` conforming vectors, scalars, or empty matrices.```

Examples

collapse all

Determine the `NumDaysNext` when using datetimes for input arguments.

`NumDaysNext = cpndaysn(datetime(2000,9,14) , datetime(2001,6,30), 2, 0, 0)`
```NumDaysNext = 107 ```

Determine the `NumDaysNext` when using character vectors for input arguments and the optional argument for `EndMonthRule`.

`NumDaysNext = cpndaysn('14-Sep-2000', '30-Jun-2001', 2, 0, 1)`
```NumDaysNext = 108 ```

Determine the `NumDaysNext` when using a datetime array for `Maturity`.

```Maturity = [datetime(2001,4,30) ; datetime(2001,5,31) ; datetime(2001,6,30)]; NumDaysNext = cpndaysn(datetime(2000,9,14), Maturity)```
```NumDaysNext = 3×1 47 77 108 ```

Input Arguments

collapse all

Settlement date, specified as a `NUMBONDS`-by-`1` vector using a datetime array, string array, or date character vectors. `Settle` must be earlier than `Maturity`.

To support existing code, `cpndaysn` also accepts serial date numbers as inputs, but they are not recommended.

Data Types: `char` | `string` | `datetime`

Maturity date, specified as a `NUMBONDS`-by-`1` vector using a datetime array, string array, or date character vectors.

To support existing code, `cpndaysn` also accepts serial date numbers as inputs, but they are not recommended.

Data Types: `char` | `string` | `datetime`

Coupons per year of the bond, specified as a vector of positive integers from the set `[1,2,3,4,6,12]`.

Data Types: `single` | `double`

Day-count basis of the instrument, specified as an integer with a value of `0` through `13` or an `N`-by-`1` vector of integers with values of `0` through `13`.

• 0 = actual/actual (default)

• 1 = 30/360 (SIA)

• 2 = actual/360

• 3 = actual/365

• 4 = 30/360 (BMA)

• 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

Data Types: `single` | `double`

End-of-month rule flag for month having 30 or fewer days, specified as a nonnegative integer [`0`, `1`] using an `N`-by-`1` vector of values. 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, meaning that a bond’s coupon payment date is always the last actual day of the month.

Data Types: `logical`

Bond issue date, specified as a `NUMBONDS`-by-`1` vector using a datetime array, string array, or date character vectors.

To support existing code, `cpndaysn` also accepts serial date numbers as inputs, but they are not recommended.

Data Types: `char` | `string` | `datetime`

Date when a bond makes its first coupon payment, specified as a `NUMBONDS`-by-`1` vector using a datetime array, string array, or date character vectors.

`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.

To support existing code, `cpndaysn` also accepts serial date numbers as inputs, but they are not recommended.

Data Types: `char` | `string` | `datetime`

Last coupon date of a bond before maturity date, specified as a `NUMBONDS`-by-`1` vector using a datetime array, string array, or date character vectors.

`LastCouponDate` is used when a 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.

To support existing code, `cpndaysn` also accepts serial date numbers as inputs, but they are not recommended.

Data Types: `char` | `string` | `datetime`

Output Arguments

collapse all

Number of days from settlement date to next coupon date, returned as an `NUMBONDS`-by-`1` vector. For zero coupon bonds coupon dates are computed as if the bonds have a semiannual coupon structure.

Version History

Introduced before R2006a

expand all