Main Content

getForwardRates

Get forward rates for input dates for IRFunctionCurve

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 comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

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

For more information, see Basis.

Data Types: double

Output Arguments

collapse all

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.

Introduced in R2008b