Zero curve given forward curve
[ZeroRates, CurveDates] = fwd2zero(ForwardRates, CurveDates,
Settle, Compounding, Basis)
A number of bonds (NUMBONDS)-by-1 vector of annualized implied forward rates, as 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.
A NUMBONDS-by-1 vector of maturity dates (as serial date numbers) that correspond to the forward rates.
A serial date number that is the common settlement date for the forward rates.
(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) Output day-count basis for annualizing the output zero rates.
For more information, see basis.
[ZeroRates, CurveDates] = fwd2zero(ForwardRates, CurveDates, Settle, Compounding, Basis) returns a zero curve given an implied forward rate curve and its maturity dates.
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.
A NUMBONDS-by-1 vector of maturity dates (as serial date numbers) that correspond to the zero rates in ZeroRates. This vector is the same as the input vector CurveDates.
Given an implied forward rate curve over a set of maturity dates, a settlement date, and a compounding rate, compute the zero curve.
ForwardRates = [0.0469 0.0519 0.0549 0.0535 0.0558 0.0508 0.0560 0.0545 0.0615 0.0486]; 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 = 1;
Execute the function
[ZeroRates, CurveDates] = fwd2zero(ForwardRates, CurveDates,... Settle, Compounding)
which returns the zero curve ZeroRates at the maturity dates CurveDates.
ZeroRates = 0.0469 0.0515 0.0531 0.0532 0.0538 0.0532 0.0536 0.0539 0.0556 0.0543 CurveDates = 730796 730831 730866 730887 730914 730943 730971 731027 731098 731167
For readability, ForwardRates and ZeroRates are shown here only to the basis point. However, MATLAB® software computed them at full precision. If you enter ForwardRates as shown, ZeroRates may differ due to rounding.