blackvolbyrebonato

Вычислите Черную энергозависимость для Модели Рынка LIBOR использование формулы Rebonato

Синтаксис

outVol = blackvolbyrebonato(ZeroCurve,VolFunc,CorrMat,ExerciseDate,Maturity)
outVol = blackvolbyrebonato(___,Name,Value)

Описание

пример

outVol = blackvolbyrebonato(ZeroCurve,VolFunc,CorrMat,ExerciseDate,Maturity) вычисляет Черную энергозависимость для swaption использование Модели Рынка LIBOR.

пример

outVol = blackvolbyrebonato(___,Name,Value) добавляют дополнительные аргументы пары "имя-значение".

Примеры

свернуть все

Задайте входную зрелость и тенора для Модели рынка LIBOR (LMM), заданной массивом ячеек указателей на функцию энергозависимости и корреляционной матрицей для LMM.

Settle = datenum('11-Aug-2004');
  
% Zero Curve
CurveTimes = (1:10)';
CurveDates = daysadd(Settle,360*CurveTimes,1);
  
ZeroRates = [0.03 0.033 0.036 0.038 0.04 0.042 0.043 0.044 0.045 0.046]';
  
% Construct an IRCurve
irdc = IRDataCurve('Zero',Settle,CurveDates,ZeroRates);
  
LMMVolFunc = @(a,t) (a(1)*t + a(2)).*exp(-a(3)*t) + a(4);
LMMVolParams = [.3 -.02 .7 .14];
  
numRates = length(ZeroRates);
VolFunc(1:numRates-1) = {@(t) LMMVolFunc(LMMVolParams,t)};
  
Beta = .08;
CorrFunc = @(i,j,Beta) exp(-Beta*abs(i-j));
CorrMat = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),Beta);
  
ExerciseDate = datenum('11-Aug-2009');
Maturity = daysadd(ExerciseDate,360*[3;4],1);
  
Vol = blackvolbyrebonato(irdc,VolFunc,CorrMat,ExerciseDate,Maturity,'Period',1)
Vol = 2×1

    0.2210
    0.2079

Входные параметры

свернуть все

Кривая нулевой ширины для LiborMarketModel, заданное использование IRDataCurve или RateSpec.

Типы данных: struct

Указатель на функцию для энергозависимости, заданной NumRates-by-1 cell-массив указателей на функцию. Каждый указатель на функцию должен занять время как вход и возвратить скалярную энергозависимость

Типы данных: cell | function_handle

Корреляционная матрица, заданная NumRates-by-NumRates.

Типы данных: single | double

Swaption осуществляют даты, заданные NumSwaptions-by-1 вектор последовательных чисел даты или векторов символов даты.

Типы данных: single | double | char | cell

Подкачайте даты погашения, заданное использование NumSwaptions-by-1 вектор последовательных чисел даты или векторов символов даты.

Типы данных: single | double | char | cell

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: Vol = blackvolbyrebonato(irdc,VolFunc,CorrMat,ExerciseDate,Maturity,'Period',1)

Соединение частоты кривой и сброса swaptions, заданного как пара, разделенная запятой, состоящая из 'Period' и положительного целого числа для значений 1,2,4,6,12 в NumSwaptions-by-1 вектор.

Типы данных: single | double

Выходные аргументы

свернуть все

Черная энергозависимость, возвращенная как вектор для заданного swaptions.

Алгоритмы

Формула приближения Rebonato связывает Черную энергозависимость для европейского swaption, учитывая набор функций энергозависимости и корреляционной матрицы

(υα,βLFM)2=i,j=α+1βwi(0)wj(0)Fi(0)Fj(0)ρi,jSα,β(0)20Tασi(t)σj(t)dt

где:

wi(t)=τiP(t,Ti)k=α+1βτκP(t,tκ)

Ссылки

[1] Brigo, D. и Ф. Меркурио. Модели процентной ставки - теория и практика. Финансы Спрингера, 2006.

Введенный в R2013a