disc2zero
Zero curve given discount curve
In R2017b, the specification of optional input arguments has changed. While the
previous ordered inputs syntax is still supported, it may no longer be supported in
a future release. Use the optional name-value pair inputs:
Compounding
and Basis
.
Syntax
Description
[
returns a zero curve given a discount curve and its maturity dates. If either
inputs for ZeroRates
,CurveDates
] = disc2zero(DiscRates
,CurveDates
,Settle
)CurveDates
or Settle
are
datetime arrays, the output CurveDates
is returned as
datetime arrays.
[
adds optional name-value pair argumentsZeroRates
,CurveDates
] = disc2zero(___,Name,Value
)
Examples
Determine the Zero Curve Given a Discount Curve and Maturity Dates
Given the following discount factors DiscRates
over a set of maturity dates CurveDates
, and a settlement date Settle
:
DiscRates = [0.9996 0.9947 0.9896 0.9866 0.9826 0.9786 0.9745 0.9665 0.9552 0.9466]; CurveDates = [datenum('06-Nov-2000') datenum('11-Dec-2000') datenum('15-Jan-2001') datenum('05-Feb-2001') datenum('04-Mar-2001') datenum('02-Apr-2001') datenum('30-Apr-2001') datenum('25-Jun-2001') datenum('04-Sep-2001') datenum('12-Nov-2001')]; Settle = datenum('03-Nov-2000');
Set daily compounding for the output zero curve, on an actual/365 basis.
Compounding = 365; Basis = 3;
Execute the function disc2zero
which returns the zero curve ZeroRates
at the maturity dates CurveDates
.
[ZeroRates, CurveDates] = disc2zero(DiscRates, CurveDates,... Settle, Compounding, Basis)
ZeroRates = 10×1
0.0487
0.0510
0.0523
0.0524
0.0530
0.0526
0.0530
0.0532
0.0549
0.0536
CurveDates = 10×1
730796
730831
730866
730887
730914
730943
730971
731027
731098
731167
For readability, DiscRates
and ZeroRates
are shown here only to the basis point. However, MATLAB® software computed them at full precision. If you enter DiscRates
as shown, ZeroRates
may differ due to rounding.
Determine the Zero Curve Given a Discount Curve and Maturity Dates Using datetime Inputs
Given the following discount factors, DiscRates
, over a set of maturity dates, CurveDates
, and a settlement date, Settle
, use datetime
inputs to return the zero curve, ZeroRates
, at the maturity dates, CurveDates
.
DiscRates = [0.9996 0.9947 0.9896 0.9866 0.9826 0.9786 0.9745 0.9665 0.9552 0.9466]; CurveDates = [datenum('06-Nov-2000') datenum('11-Dec-2000') datenum('15-Jan-2001') datenum('05-Feb-2001') datenum('04-Mar-2001') datenum('02-Apr-2001') datenum('30-Apr-2001') datenum('25-Jun-2001') datenum('04-Sep-2001') datenum('12-Nov-2001')]; Settle = datenum('03-Nov-2000'); Compounding = 365; Basis = 3; CurveDates = datetime(CurveDates,'ConvertFrom','datenum','Locale','en_US'); Settle = datetime(Settle,'ConvertFrom','datenum','Locale','en_US'); [ZeroRates, CurveDates] = disc2zero(DiscRates, CurveDates,... Settle, Compounding, Basis)
ZeroRates = 10×1
0.0487
0.0510
0.0523
0.0524
0.0530
0.0526
0.0530
0.0532
0.0549
0.0536
CurveDates = 10x1 datetime
06-Nov-2000
11-Dec-2000
15-Jan-2001
05-Feb-2001
04-Mar-2001
02-Apr-2001
30-Apr-2001
25-Jun-2001
04-Sep-2001
12-Nov-2001
Input Arguments
DiscRates
— Discount factors
decimal fraction
Discount factors, specified as a column vector of decimal fractions.
In aggregate, the factors in DiscRates
constitute a
discount curve for the investment horizon represented by
CurveDates
.
Data Types: double
CurveDates
— Maturity dates
serial date number | date character vector | datetime
Maturity dates that correspond to the discount factors in
DiscRates
, specified as a column vector using
serial date numbers, date character vectors, or datetime arrays.
Data Types: double
| datetime
| char
Settle
— Common settlement date for discount rates in DiscRates
serial date number | date character vector | datetime
Common settlement date for the discount rates in
DiscRates
, specified as serial date numbers,
date character vectors, or datetime arrays.
Data Types: double
| datetime
| char
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: [ZeroRates,CurveDates] =
disc2zero(DiscRates,CurveDates,Settle,'Compounding',6,'Basis',9)
Compounding
— Rate at which output zero rates are compounded when annualized
2
(default) | numeric values: 0
,1
,
2
, 3
,
4
, 6
, 12
,
365
, -1
Rate at which the output zero rates are compounded when annualized, specified as a numeric value. Allowed values are:
0
— Simple interest (no compounding)1
— Annual compounding2
— Semiannual compounding (default)3
— Compounding three times per year4
— Quarterly compounding6
— Bimonthly compounding12
— Monthly compounding365
— Daily compounding-1
— Continuous compounding
Data Types: double
Basis
— Day-count basis used for annualizing output zero rates
0
(default) | numeric values: 0
,1
,
2
, 3
,
4
, 6
, 7
,
8
, 9
,
10
, 11
,
12
, 13
Day-count basis used for annualizing the output zero rates, specified as a numeric value. Allowed values are:
0 = actual/actual
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.
Data Types: double
Output Arguments
ZeroRates
— Zero curve for investment horizon represented by CurveDates
numeric
Zero curve for the investment horizon represented by
CurveDates
, returned as a column vector of
decimal fractions. The zero rates are the yields to maturity on
theoretical zero-coupon bonds.
CurveDates
— Maturity dates that correspond to ZeroRates
serial date number | date character vector | datetime
Version History
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)