fwd2zero
Zero curve given forward 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 new optional name-value pair inputs:
InputCompounding, InputBasis,
OutputCompounding, and
OutputBasis.
Syntax
Description
[
returns a zero curve given an implied forward rate curve and its maturity dates. If
both inputs for ZeroRates,CurveDates] = fwd2zero(ForwardRates,CurveDates,Settle)CurveDates and Settle are
strings or date character vectors, CurveDates is returned as
serial date numbers. However, if either of the inputs for
CurveDates and Settle are a datetime
array, CurveDates is returned as a datetime array.
[
adds optional name-value pair argumentsZeroRates,CurveDates] = fwd2zero(___,Name,Value)
Examples
This example shows how to use datetime inputs compute the zero curve, given an implied forward rate curve over a set of maturity dates, a settlement date, and a compounding rate.
ForwardRates = [0.0469
0.0519
0.0549
0.0535
0.0558
0.0508
0.0560
0.0545
0.0615
0.0486];
CurveDates = [datetime(2000,11,6)
datetime(2000,12,11)
datetime(2001,1,15)
datetime(2001,2,5)
datetime(2001,3,4)
datetime(2001,4,2)
datetime(2001,4,30)
datetime(2001,6,25)
datetime(2001,9,4)
datetime(2001,11,12)];
Settle = datetime(2000,11,3);
InputCompounding = 1;
InputBasis = 2;
OutputCompounding = 1;
OutputBasis = 2;
[ZeroRates, CurveDates] = fwd2zero(ForwardRates, CurveDates,...
Settle,'InputCompounding',1,'InputBasis',2,'OutputCompounding',1,'OutputBasis',2)ZeroRates = 10×1
0.0469
0.0515
0.0531
0.0532
0.0538
0.0532
0.0536
0.0539
0.0556
0.0543
CurveDates = 10×1 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
Annualized implied forward rates, specified as a
(NUMBONDS)-by-1 vector using
decimal fractions. In aggregate, the rates in
ForwardRates constitute an implied forward curve
for the investment horizon represented by
CurveDates. The first element pertains to
forward rates from the settlement date to the first curve date.
Data Types: double
Maturity dates, specified as a
NUMBONDS-by-1 vector using a
datetime array, string array, or date character vectors, that correspond to
the ForwardRates.
To support existing code, fwd2zero also
accepts serial date numbers as inputs, but they are not recommended.
Data Types: datetime | string | char
Common settlement date for ForwardRates,
specified as scalar datetime, string, or date character vector.
To support existing code, fwd2zero also
accepts serial date numbers as inputs, but they are not recommended.
Data Types: datetime | string | 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] =
fwd2zero(ForwardRates,CurveDates,Settle,'InputCompounding',3,'InputBasis',5,'OutputCompounding',4,'OutputBasis',5)
Compounding frequency of input forward rates, specified with allowed values:
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
Note
If InputCompounding is not specified,
then InputCompounding is assigned the
value specified for OutputCompounding.
If either InputCompounding or
OutputCompounding are not
specified, the default is 2
Data Types: double
Day count basis of input forward 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.
Note
If InputBasis is not specified, then
InputBasis is assigned the value
specified for OutputBasis. If either
InputBasis or
Outputbasis are not specified, the
default is 0 (actual/actual) for both.
Data Types: double
Compounding frequency of output zero rates, specified with the allowed values:
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
Note
If OutputCompounding is not specified,
then OutputCompounding is assigned the
value specified for InputCompounding.
If either InputCompounding or
OutputCompounding are not specified,
the default is 2 (semiannual) for
both.
Data Types: double
Day count basis of 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.
Note
If OutputBasis is not specified, then
OutputBasis is assigned the value
specified for InputBasis. If either
InputBasis or
OutputBasis are not specified, the
default is 0 (actual/actual) for both.
Data Types: double
Output Arguments
Zero curve for the investment horizon represented by
CurveDates, returned as a
NUMBONDS-by-1 vector of
decimal fractions. In aggregate, the rates in
ZeroRates constitute a zero curve for the
investment horizon represented by
CurveDates.
Maturity dates that correspond to the ZeroRates,
returned as a NUMBONDS-by-1 vector
of maturity dates that correspond to the zero rates in
ZeroRates. This vector is the same as the input
vector CurveDates, but is sorted by ascending
maturity.
If both inputs for CurveDates and
Settle are strings or date character vectors,
CurveDates is returned as serial date numbers. Use
the function datetime to convert serial
date numbers to formatted datetime arrays. However, if either of the inputs
for CurveDates and Settle are a
datetime array, CurveDates is returned as a datetime
array.
Version History
Introduced before R2006aAlthough fwd2zero supports serial date numbers,
datetime values are recommended instead. The
datetime data type provides flexible date and time
formats, storage out to nanosecond precision, and properties to account for time
zones and daylight saving time.
To convert serial date numbers or text to datetime values, use the datetime function. For example:
t = datetime(738427.656845093,"ConvertFrom","datenum"); y = year(t)
y =
2021
There are no plans to remove support for serial date number inputs.
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.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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)