zero2fwd
Forward curve given zero 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
, andOutputBasis
.
Syntax
Description
[
returns an implied forward rate curve given a zero curve and its maturity dates. If either input forForwardRates
,CurveDates
] = zero2fwd(ZeroRates
,CurveDates
,Settle
)CurveDates
orSettle
is a datetime array,CurveDates
is returned as a datetime array. Otherwise,CurveDates
作为一个串行返回日期号码。ForwardRates
is the same for any of these input data types.
[
adds optional name-value pair argumentsForwardRates
,CurveDates
] = zero2fwd(___,Name,Value
)
Examples
计算一个Implied Forward Rate Curve Given a Zero Curve and Maturity Dates
Given a zero curve over a set of maturity dates, a settlement date, and a compounding rate, compute the forward rate curve.
ZeroRates = [0.0458 0.0502 0.0518 0.0519 0.0524 0.0519 0.0523 0.0525 0.0541 0.0529]; 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'); InputCompounding = 1; InputBasis = 2; OutputCompounding = 1; OutputBasis = 2;
Execute the functionzero2fwd
to return the forward rate curveForwardRates
at the maturity datesCurveDates
.
[ForwardRates, CurveDates] = zero2fwd(ZeroRates, CurveDates,...Settle,“InputCompounding”,1,'InputBasis',2,'OutputCompounding',1,'OutputBasis',2)
ForwardRates =10×10.0458 0.0506 0.0535 0.0522 0.0541 0.0498 0.0544 0.0531 0.0594 0.0476
CurveDates =10×1730796 730831 730866 730887 730914 730943 730971 731027 731098 731167
计算一个Implied Forward Rate Curve Given a Zero Curve and Maturity Dates Using datetime Inputs
Given a zero curve over a set of maturity dates, a settlement date, and a compounding rate, usedatetime
compute the forward rate curve.
ZeroRates = [0.0458 0.0502 0.0518 0.0519 0.0524 0.0519 0.0523 0.0525 0.0541 0.0529]; 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'); InputCompounding = 1; InputBasis = 2; OutputCompounding = 1; OutputBasis = 2; CurveDates = datetime(CurveDates,'ConvertFrom','datenum','Locale','en_US'); Settle = datetime(Settle,'ConvertFrom','datenum','Locale','en_US'); [ForwardRates, CurveDates] = zero2fwd(ZeroRates, CurveDates,...Settle,“InputCompounding”,1,'InputBasis',2,'OutputCompounding',1,'OutputBasis',2)
ForwardRates =10×10.0458 0.0506 0.0535 0.0522 0.0541 0.0498 0.0544 0.0531 0.0594 0.0476
CurveDates =10x1 datetime06-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
ZeroRates
—Annualized zero rates
decimal fraction
Annualized zero rates, specified as aNUMBONDS
-by-1
vector using decimal fractions. In aggregate, the rates constitute an implied zero curve for the investment horizon represented byCurveDates
. The first element pertains to forward rates from the settlement date to the first curve date.
Data Types:double
CurveDates
—Maturity dates
serial date number|date character vector|datetime
Maturity dates, specified as aNUMBONDS
-by-1
vector using serial date numbers, date character vectors, or datetime arrays, that correspond to theZeroRates
.
Data Types:double
|datetime
|char
Settle
—Common settlement date forZeroRates
serial date number|date character vector|datetime
Common settlement date for inputZeroRates
, specified as serial date numbers, date character vectors, or datetime arrays.
Data Types:double
|datetime
|char
Name-Value Arguments
Specify optional pairs of arguments asName1=Value1,...,NameN=ValueN
, whereName
is the argument name andValue
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 encloseName
in quotes.
Example:[ForwardRates,CurveDates] = zero2fwd(ZeroRates,CurveDates,Settle,'InputCompounding',3,'InputBasis',5,'OutputCompounding',4,'OutputBasis',5)
InputCompounding
—Compounding frequency of input zero rates
2
(default) |numeric values:0
,1
,2
,3
,4
,6
,12
,365
,-1
Compounding frequency of input zero rates, specified as the comma-separated pair consisting of“InputCompounding”
and 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
IfInputCompounding
is not specified, thenInputCompounding
is assigned the value specified forOutputCompounding
. If eitherInputCompounding
orOutputCompounding
are not specified, the default is2
(semiannual) for both.
Data Types:double
InputBasis
—Day-count basis of input zero rates
0
(default) |numeric values:0
,1
,2
,3
,4
,6
,7
,8
,9
,10
,11
,12
,13
Day count basis of input zero rates, specified as the comma-separated pair consisting of'InputBasis'
and allowed values:
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, seeBasis.
Note
IfInputBasis
is not specified, thenInputBasis
is assigned the value specified forOutputBasis
. If eitherInputBasis
orOutputbasis
are not specified, the default is0
(actual/actual) for both.
Data Types:double
OutputCompounding
—Compounding frequency of output forward rates
2
(default) |numeric values:0
,1
,2
,3
,4
,6
,12
,365
,-1
Compounding frequency of output forward rates, specified as the comma-separated pair consisting of'OutputCompounding'
and 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
IfOutputCompounding
is not specified, thenOutputCompounding
is assigned the value specified forInputCompounding
. If eitherInputCompounding
orOutputCompounding
are not specified, the default is2
(semiannual) for both.
Data Types:double
OutputBasis
—Day-count basis of output forward rates
0
(default) |numeric values:0
,1
,2
,3
,4
,6
,7
,8
,9
,10
,11
,12
,13
Day count basis of output forward rates, specified as the comma-separated pair consisting of'OutputBasis'
and allowed values:
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, seeBasis.
Note
IfOutputBasis
is not specified, thenOutputBasis
is assigned the value specified forInputBasis
. If eitherInputBasis
orOutputBasis
are not specified, the default is0
(actual/actual) for both.
Data Types:double
Output Arguments
ForwardRates
— Forward curve for investment horizon represented byCurveDates
numeric
Forward curve for the investment horizon represented byCurveDates
, returned as aNUMBONDS
-by-1
vector of decimal fractions. In aggregate, the rates inForwardRates
constitute a forward curve over the dates inCurveDates
.ForwardRates
are ordered by ascending maturity.
CurveDates
— Maturity dates that correspond toForwardRates
serial date number | date character vector | datetime
Maturity dates that correspond to theForwardRates
, returned as aNUMBONDS
-by-1
vector of maturity dates that correspond to theForwardRates
.
ForwardRates
are expressed as serial date numbers (default) or datetimes (ifCurveDates
orSettle
are datetime arrays), representing the maturity dates for each rate inForwardRates
. These dates are the same dates as those associated with the inputZeroRates
, but are ordered by ascending maturity.
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)