blackvolbyrebonato

Вычислите волатильность черного для модели рынка LIBOR с помощью формулы Ребонато

Описание

пример

outVol = blackvolbyrebonato(ZeroCurve,VolFunc,CorrMat,ExerciseDate,Maturity) вычисляет волатильность черного для свопциона с помощью модели рынка LIBOR.

пример

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

Примеры

свернуть все

Задайте срок и тенор входа для модели рынка LIBOR (LMM), заданные cell-массивом указателей на функцию волатильности, и матрицы корреляции для 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

Даты упражнений с подкреплением, заданные NumSwaptions-by- 1 вектор серийных номеров дат или векторов символов дат.

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

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

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

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

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

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

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

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

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

свернуть все

Волатильность черного цвета, возвращенная как вектор для заданных свопций.

Алгоритмы

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

(υα,β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] Бриго, Д. и Ф. Меркурио. Модели процентных ставок - теория и практика. Springer Finance, 2006.

Введенный в R2013a
Для просмотра документации необходимо авторизоваться на сайте