Cash flow dates for fixed-income security
CFlowDates = cfdates(Settle,Maturity,Period,Basis,EndMonthRule,IssueDate,FirstCouponDate,LastCouponDate,StartDate)
| 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.
For more information, see Basis. |
| (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, specified as a serial date number, date
character vector, or datetime array, when a bond makes its first coupon
payment. |
| (Optional) Last coupon date of a bond before the maturity
date, specified as a serial date number, date character vector, or
datetime array. |
| (Optional) Date, specified as a serial date number, date
character vector, or datetime array, when a bond actually starts (the
date from which a bond cash flow is considered). To make an instrument
forward-starting, specify this date as a future date. If you do not
specify |
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.
CFlowDates = cfdates(Settle,Maturity,Period,Basis,EndMonthRule,IssueDate,FirstCouponDate,LastCouponDate,StartDate)
returns
a matrix of cash flow dates for a bond or set of bonds. cfdates
determines
all cash flow dates for a bond whether or not the coupon payment structure
is normal or the first and/or last coupon period is long or short.
CFlowDates
is an N-row matrix of serial date
numbers, padded with NaN
s as necessary to ensure
that all rows have the same number of elements. Use the function datestr
to convert serial date numbers
to formatted date character vectors.
If all of the inputs for Settle
, Maturity
, IssueDate
, FirstCouponDate
, LastCouponDate
,
and StartDate
are either serial date numbers or
date character vectors, then CFlowDates
is returned
as a serial date number.
If any of the inputs for Settle
, Maturity
, IssueDate
, FirstCouponDate
, LastCouponDate
,
or StartDate
are datetime arrays, then CFlowDates
is
returned as a datetime array.
Note
The cash flow flags for a portfolio of bonds were formerly available
as the cfdates
second output argument, CFlowFlags
.
You can now use cfamounts
to
get these flags. If you specify a CFlowFlags
argument, cfdates
displays
a message directing you to use cfamounts
.
CFlowDates = cfdates('14 Mar 1997', '30 Nov 1998', 2, 0, 1) CFlowDates = 729541 729724 729906 730089 datestr(CFlowDates)
ans = 31-May-1997 30-Nov-1997 31-May-1998 30-Nov-1998
If any of the inputs for Settle
, Maturity
, IssueDate
, FirstCouponDate
, LastCouponDate
,
or StartDate
are datetime arrays, then CFlowDates
is
returned as a datetime array. For example:
CFlowDates = cfdates('14-Mar-1997', datetime('30-Nov-1998','Locale','en_US'), 2, 0, 1)
CFlowDates = 31-May-1997 30-Nov-1997 31-May-1998 30-Nov-1998
Given three securities with different maturity dates and the same default arguments
Maturity = ['30-Sep-1997'; '31-Oct-1998'; '30-Nov-1998']; CFlowDates = cfdates('14-Mar-1997', Maturity)
CFlowDates = 729480 729663 NaN NaN 729510 729694 729875 730059 729541 729724 729906 730089
Look at the cash-flow dates for the last security.
datestr(CFlowDates(3,:))
ans = 31-May-1997 30-Nov-1997 31-May-1998 30-Nov-1998
accrfrac
| cfamounts
| cftimes
| cpncount
| cpndaten
| cpndatenq
| cpndatep
| cpndatepq
| cpndaysn
| cpndaysp
| cpnpersz
| datetime