| Financial Toolbox™ | ![]() |
[DiscRates, CurveDates] = zero2disc(ZeroRates, CurveDates, Settle, Compounding, Basis)
ZeroRates | Number of bonds (NUMBONDS) by 1 vector of annualized zero rates, as decimal fractions. In aggregate, the rates constitute an implied zero curve for the investment horizon represented by CurveDates. | |
CurveDates | NUMBONDS-by-1 vector of maturity dates (as serial date numbers) that correspond to the zero rates. | |
Settle | Serial date number that is the common settlement date for the zero rates; that is, the settlement date for the bonds from which the zero curve was bootstrapped. | |
Compounding | (Optional) Scalar that indicates the compounding frequency per year used for annualizing the input zero rates in ZeroRates. Allowed values are: | |
1 | Annual compounding | |
2 | Semiannual compounding (default) | |
3 | Compounding three times per year | |
4 | Quarterly compounding | |
6 | Bimonthly compounding | |
12 | Monthly compounding | |
365 | Daily compounding | |
-1 | Continuous compounding | |
Basis | (Optional) Day-count basis used for annualizing the input zero rates.
| |
[DiscRates, CurveDates] = zero2disc(ZeroRates, CurveDates, Settle, Compounding, Basis) returns a discount curve given a zero curve and its maturity dates.
DiscRates | A NUMBONDS-by-1 vector of discount factors, as decimal fractions. In aggregate, the factors in constitute a discount curve for the investment horizon represented by CurveDates. |
CurveDates | A NUMBONDS-by-1 vector of maturity dates (as serial date numbers) that correspond to the discount rates. This vector is the same as the input vector CurveDates. |
Given a zero curve over a set of maturity dates and a settlement date
ZeroRates = [0.0464
0.0509
0.0524
0.0525
0.0531
0.0525
0.0530
0.0531
0.0549
0.0536];
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');
The zero curve was compounded daily on an actual/365 basis.
InputCompounding = 365; InputBasis = 3;
Execute the function
[DiscRates, CurveDates] = zero2disc(ZeroRates, CurveDates,... Settle, Compounding, Basis)
which returns the discount curve DiscRates at the maturity dates CurveDates.
DiscRates =
0.9996
0.9947
0.9896
0.9866
0.9826
0.9787
0.9745
0.9665
0.9552
0.9466
CurveDates =
730796
730831
730866
730887
730914
730943
730971
731027
731098
731167
For readability, ZeroRates and DiscRates are shown here only to the basis point. However, MATLAB® software computed them at full precision. If you enter ZeroRates as shown, DiscRates may differ due to rounding.
disc2zero and other functions for Term Structure of Interest Rates
![]() | zbtyield | zero2fwd | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |