exponenta event banner

getForwardRates

Получить форвардные ставки для дат ввода для IRFunctionCurve

Синтаксис

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

Аргументы

CurveObj

Объект кривой процентной ставки, созданный с использованием IRFunctionCurve.

InpDates

Вектор входных дат в формате MATLAB ®. Даты ввода должны быть после даты расчета.

Compounding

(Необязательно) Скаляр, задающий частоту объединения в год для прямых скоростей:

  • −1 = Непрерывное компаундирование

  • 1 = Годовое суммирование

  • 2 = Полугодичное объединение (по умолчанию)

  • 3 = Три раза в год

  • 4 = Квартальное суммирование

  • 6 = Компаундирование раз в два месяца

  • 12 = Ежемесячное суммирование

Basis

(Необязательно) База подсчета дней для форвардных ставок:

  • 0 = факт/факт (по умолчанию)

  • 1 = 30/360 (SIA)

  • 2 = фактически/360

  • 3 = факт/365

  • 4 = 30/360 (BMA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (европейский)

  • 7 = факт/365 (японский)

  • 8 = факт/факт (ICMA)

  • 9 = факт/360 (ICMA)

  • 10 = факт/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = факт/365 (ISDA)

  • 13 = BUS/252

Дополнительные сведения см. в разделе Базис.

Описание

F = getForwardRates(CurveObj,InpDates,Name,Value) возвращает форвардные ставки для дат ввода. Необходимо ввести необязательные аргументы для Basis и Compounding как пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Примеры

свернуть все

В этом примере показано, как получить форвардные ставки для дат ввода для 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
      ⋮

В этом примере показано, как вычислить подразумеваемые 2-летние форвардные ставки за 1 год, 2 года, 5 лет и 10 лет из Settle с помощью getForwardRates способ.

Используйте следующие данные для IRFunctionCurve , который создается при использовании fitSvensson способ.

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);

Рассчитайте подразумеваемые 2-летние форвардные ставки за 1 год, 2 года, 5 лет и 10 лет от Settle дата.

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

Представлен в R2008b