Zero curve given discount curve
[ZeroRates, CurveDates] = disc2zero(DiscRates, CurveDates, Settle,
Column vector of discount factors, as decimal fractions. In aggregate, the factors in DiscRates constitute a discount curve for the investment horizon represented by CurveDates.
Column vector of maturity dates (as serial date numbers) that correspond to the discount factors in DiscRates.
Serial date number that is the common settlement date for the discount rates in DiscRates.
(Optional) Output compounding. A scalar that sets the compounding frequency per year for annualizing the output zero rates. Allowed values are:
Semiannual compounding (default)
Compounding three times per year
(Optional) Day-count basis for annualizing the output zero rates.
For more information, see basis.
[ZeroRates, CurveDates] = disc2zero(DiscRates, CurveDates, Settle, Compounding, Basis) returns a zero curve given a discount curve and its maturity dates.
Column vector of decimal fractions. In aggregate, the rates in ZeroRates constitute a zero curve for the investment horizon represented by CurveDates. The zero rates are the yields to maturity on theoretical zero-coupon bonds.
Column vector of maturity dates (as serial date numbers) that correspond to the zero rates. This vector is the same as the input vector CurveDates.
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 = 0.0487 0.0510 0.0523 0.0524 0.0530 0.0526 0.0530 0.0532 0.0549 0.0536 CurveDates = 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.