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 (СИА)

  •  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 = ШИНА/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.0343
    0.0456

Первый элемент (.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