Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

# cfdatesq

Quasi-coupon dates for fixed-income security

## Syntax

```QuasiCouponDates = cfdatesq(Settle,Maturity,Period,Basis,EndMonthRule,IssueDate,FirstCouponDate,LastCouponDate,PeriodsBeforeSettle,PeriodsAfterMaturity)
```

## 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/3603 = actual/3654 = 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, specified as a serial date number, date character vector, or datetime array, when a bond makes its first coupon payment. `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 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. `PeriodsBeforeSettle` (Optional) Number of quasi-coupon dates on or before settlement to include (non-negative integer); default is `0`. `PeriodsAfterMaturity` (Optional) Number of quasi-coupon dates after maturity to include (non-negative integer); default is `0`.

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.

Any input can contain multiple values, but if so, all other inputs must contain the same number of values or a single value that applies to all. For example, if `Maturity` contains N dates, then `Settle` must contain N dates or a single date.

## Description

```QuasiCouponDates = cfdatesq(Settle,Maturity,Period,Basis,EndMonthRule,IssueDate,FirstCouponDate,LastCouponDate, PeriodsBeforeSettle,PeriodsAfterMaturity)``` returns a matrix of quasi-coupon dates expressed in serial date format (default) or datetime format (if any inputs are in datetime format).

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. Quasi-coupon dates are determined regardless of whether the first or last coupon periods are normal, long, or short.

`QuasiCouponDates` has `NUMBONDS` rows and the number of columns is determined by the maximum number of quasi-coupon dates required to hold the bond portfolio. `NaN`s are padded for bonds which have less than the maximum number quasi-coupon dates. By default, quasi- coupon dates after settlement and on or preceding maturity are returned. If settlement occurs on maturity, and maturity is a quasi-coupon date, then the maturity date is returned.

If the date inputs for` Settle`, `Maturity`, `IssueDate`, `FirstCouponDate`, and `LastCouponDate` are either serial date numbers or date character vectors, then `QuasiCouponDates` is returned as a serial date number.

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

## Examples

```QuasiCouponDates = cfdatesq('14-Mar-1997', '30-Nov-1998', 2, 0, 1) ```
```QuasiCouponDates = 729541 729724 729906 730089```

If any of the inputs for `Settle`, `Maturity`, `IssueDate`, `FirstCouponDate`, or `LastCouponDate` are datetime arrays, then `CFlowDates` is returned as a datetime array. For example:

```QuasiCouponDates = cfdatesq('14-Mar-1997', datetime('30-Nov-1998','Locale','en_US'), 2, 0, 1) ```
```QuasiCouponDates = 31-May-1997 30-Nov-1997 31-May-1998 30-Nov-1998 ```