# zero2fwd

Forward curve given zero curve

## Syntax

```[ForwardRates, CurveDates] = zero2fwd(ZeroRates, CurveDates,Settle, Compounding, Basis)
```

## Arguments

 `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`. The first element pertains to forward rates from the settlement date to the first curve date. `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. `Compounding` (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: `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 to construct the input zero and output implied forward rate curves.0 = actual/actual (default)1 = 30/360 (SIA)2 = actual/3603 = actual/3654 = 30/360 (BMA)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/actual (ISDA)13 = BUS/252 For more information, see basis.

## Description

```[ForwardRates, CurveDates] = zero2fwd(ZeroRates, CurveDates, Settle, Compounding, Basis)``` returns an implied forward rate curve given a zero curve and its maturity dates.

 `ForwardRates` A `NUMBONDS`-by-1 vector of decimal fractions. In aggregate, the rates in `ForwardRates` constitute a forward curve over the dates in `CurveDates`. `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`.

## Examples

collapse all

### Compute an 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'); 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.