Forward curve given zero curve
[ForwardRates, CurveDates] = zero2fwd(ZeroRates, CurveDates,
Settle, Compounding, Basis)
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. The first element pertains to forward rates from the settlement date to the first curve date.
NUMBONDS-by-1 vector of maturity dates (as serial date numbers) that correspond to the zero rates.
Serial date number that is the common settlement date for the zero rates.
(Optional) Scalar that sets the compounding frequency per year used to annualize the input zero rates and the output implied forward rates. Allowed values are:
Semiannual compounding (default)
Compounding three times per year
(Optional) Day-count basis used to construct the input zero and output implied forward rate curves.
For more information, see basis.
[ForwardRates, CurveDates] = zero2fwd(ZeroRates, CurveDates, Settle, Compounding, Basis) returns an implied forward rate curve given a zero curve and its maturity dates.
A NUMBONDS-by-1 vector of decimal fractions. In aggregate, the rates in ForwardRates constitute a forward curve over the dates in CurveDates.
A NUMBONDS-by-1 vector of maturity dates (as serial date numbers) that correspond to the forward rates in. This vector is the same as the input vector CurveDates.
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'); Compounding = 1;
Execute the function zero2fwd to return the forward rate curve ForwardRates at the maturity dates CurveDates.
[ForwardRates, CurveDates] = zero2fwd(ZeroRates, CurveDates,... Settle, Compounding)
ForwardRates = 0.0458 0.0506 0.0535 0.0522 0.0541 0.0498 0.0544 0.0531 0.0594 0.0476 CurveDates = 730796 730831 730866 730887 730914 730943 730971 731027 731098 731167
For readability, ZeroRates and ForwardRates are shown here only to the basis point. However, MATLAB® software computed them at full precision. If you enter ZeroRates as shown, ForwardRates may differ due to rounding.