# getForwardRates

Get forward rates for input dates for `IRFunctionCurve`

## Syntax

``F = getForwardRates(CurveObj,InpDates)``
``F = getForwardRates(___,Name,Value)``

## Description

example

````F = getForwardRates(CurveObj,InpDates)` computes discount factors for input dates for an `IRFunctionCurve` object. `getForwardRates` returns discrete forward rates for the intervals input into this function. For example, running the following code:getForwardRates(irdc, {Date1, Date2, Date3}) gives three forwards rates and the three tenors are: ```[Settle, Date1]```, `[Date1, Date2]`, and ```[Date2, Date3]```.```

example

````F = getForwardRates(___,Name,Value)` adds optional name-value pair arguments. ```

## Examples

collapse all

This example shows how to get forward rates for input dates for an `IRFunctionCurve`.

```irfc = IRFunctionCurve('Forward',today,@(t) polyval([-0.0001 0.003 0.02],t)); getForwardRates(irfc, today+30:30:today+720)```
```ans = 24×1 0.0202 0.0205 0.0207 0.0210 0.0212 0.0215 0.0217 0.0219 0.0222 0.0224 ⋮ ```

This example shows how to compute the implied 2-year forward rates in 1 year, 2 years, 5 years, and 10 years from the `Settle` date by using the `getForwardRates` method.

Use the following data for an `IRFunctionCurve` object that is created when using the `fitSvensson` method.

```Settle = datenum('15-Apr-2014'); Maturity = datemnth(Settle,12*[1 2 3 5 7 10 20 30]'); CleanPrice = [100.1 100.1 100.2 99.0 101.8 99.2 101.7 100.2]'; CouponRate = [0.0200 0.0275 0.035 0.042 0.0475 0.0525 0.055 0.052]'; Instruments = [repmat(Settle,size(Maturity)) Maturity CleanPrice CouponRate]; SvenssonModel = IRFunctionCurve.fitSvensson('Zero',Settle,Instruments);```

Compute the implied 2-year forward rates in 1 year, 2 years, 5 years, and 10 years from the `Settle` date.

```IntervalMonth = 12.*2; % Interval months for 2-year forward rates FwdMonths = 12.*[1 2 5 10]'; % Starting in 1, 2, 5, and 10 years from Settle N = length(FwdMonths); FwdRates_2Y = zeros(N,1); for k = 1:N FwdDates = datemnth(SvenssonModel.Settle, [FwdMonths(k) FwdMonths(k)+IntervalMonth]); f = getForwardRates(SvenssonModel,FwdDates); FwdRates_2Y(k) = f(2); end [FwdMonths FwdRates_2Y]```
```ans = 4×2 12.0000 0.0418 24.0000 0.0504 60.0000 0.0620 120.0000 0.0629 ```

## Input Arguments

collapse all

Interest-rate curve object, specified by using `IRFunctionCurve`.

Data Types: `object`

Input dates, specified using MATLAB® date format. The input dates must be after the `Settle` date of `IRFunctionCurve`.

Data Types: `double`

### Name-Value Arguments

Specify optional pairs of arguments as `Name1=Value1,...,NameN=ValueN`, where `Name` is the argument name and `Value` is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose `Name` in quotes.

Example: ```F = getForwardRates(irfc, CurveSettle+30:30:CurveSettle+720)```

Compounding frequency per-year for forward rates, specified as the comma-separated pair consisting of `'Compounding'` and a scalar numeric using one of the supported values:

• `−1` = Continuous compounding

• `0` = Simple interest (no compounding)

• `1` = Annual compounding

• `2` = Semiannual compounding

• `3` = Compounding three times per year

• `4` = Quarterly compounding

• `6` = Bimonthly compounding

• `12` = Monthly compounding

Data Types: `double`

Day count basis for the forward rates, specified as the comma-separated pair consisting of `'Basis'` and a scalar integer.

• 0 — actual/actual

• 1 — 30/360 (SIA)

• 2 — actual/360

• 3 — actual/365

• 4 — 30/360 (PSA)

• 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/365 (ISDA)

• 13 — BUS/252

Data Types: `double`
Forward rates, returned as a vector. `getForwardRates` returns forward rates corresponding to the periodicity of the dates input to `getForwardRates`. For example, where the dates are monthly, monthly forward rates are returned. The first element of the output is the forward rate from the `Settle` to one month, the second element is the forward rate from one month to two months, and so on.