exponenta event banner

getForwardRates

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

Класс

@IRDataCurve

Синтаксис

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

Аргументы

CurveObj

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

InpDates

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

Compounding

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

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

  • 0 = Простой процент (без компаундирования)

  • 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) возвращает форвардные ставки для дат ввода. getForwardRates возвращает дискретные форвардные скорости для интервалов, введенных в этот метод. Например, запуск следующего кода:

getForwardRates(irdc, {Date1, Date2, Date3}) 
дает три форвардных ставки и три тенора: [Settle, Date1], [Date1, Date2], и [Date2, Date3].

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

getForwardRates метод возвращает форвардные ставки, соответствующие периодичности ввода дат в getForwardRates. Например, когда даты являются месячными, возвращаются месячные форвардные ставки. Первый элемент выходного сигнала - прямая скорость от Settle до одного месяца, второй элемент - форвардная ставка от одного месяца до двух месяцев и так далее.

Примеры

свернуть все

В этом примере показано, как получить форвардные ставки для дат ввода для IRDataCurve.

CurveSettle = datenum('2-Mar-2016');
Data = [2.09 2.47 2.71 3.12 3.43 3.85 4.57 4.58]/100;
Dates = datemnth(CurveSettle,12*[1 2 3 5 7 10 20 30]);
irdc = IRDataCurve('Zero',CurveSettle,Dates,Data);
getForwardRates(irdc, CurveSettle+30:30:CurveSettle+720)
ans = 24×1

    0.0174
    0.0180
    0.0187
    0.0193
    0.0199
    0.0205
    0.0212
    0.0218
    0.0224
    0.0230
      ⋮

Использовать getForwardRates для вычисления скорости пересылки из Settle срок до 5 лет с 1 марта 2017 года и затем форвардная ставка на период с 5 лет до 10 лет с 1 марта 2017 года.

Data = [2.09 2.47 2.71 3.12 3.43 3.85 4.57 4.58]/100;
Dates = daysadd(736755,[360 2*360 3*360 5*360 7*360 10*360 20*360 30*360],1);
irdc = IRDataCurve('Zero',today,Dates,Data);
getForwardRates(irdc,datemnth(irdc.Settle,12*[5 10]))
ans = 2×1

    0.0373
    0.0457

Первый элемент (.0312) - форвардная ставка от Settle к 5 годам с 1 марта 2017 года. Вторая ставка (0.0458) - форвардная ставка за период с 5 лет до 10 лет с 1 марта 2017 года, другими словами, 5-летняя форвардная ставка за 5 лет с 1 марта 2017 года.

Используйте следующие данные для создания IRDataCurve объект:

Data = [0.1 0.30 0.70 1.05 1.45 1.71 2.12 2.43 2.85 3.57]/100;
Settle = datenum('08-Aug-2016'); % Today's date
Dates = datemnth(Settle,[3 6 9 12*[1 2 3 5 7 10 20]]);
irdc = IRDataCurve('Zero',Settle,Dates,Data)
irdc = 
			 Type: Zero
		   Settle: 736550 (08-Aug-2016)
	  Compounding: 2
			Basis: 0 (actual/actual)
	 InterpMethod: linear
			Dates: [10x1 double]
			 Data: [10x1 double]

Рассчитайте подразумеваемые 6-месячные форвардные ставки в течение 1 месяца, 2 месяцев и 3 месяцев с Settle дата.

IntervalMonth = 6; % Interval for 6 month forward rates
FwdMonths = [1 2 3]'; % Starting in 1, 2, and 3 months from Settle
N = length(FwdMonths);
FwdRates_6M = zeros(N,1);

for k = 1:N
    FwdDates = datemnth(irdc.Settle, [FwdMonths(k) FwdMonths(k)+IntervalMonth]);
    f = getForwardRates(irdc,FwdDates);
    FwdRates_6M(k) = f(2);
end

[FwdMonths FwdRates_6M]
ans = 3×2

    1.0000    0.0050
    2.0000    0.0074
    3.0000    0.0101

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