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.

The 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