exponenta event banner

blackvolbyrebonato

Вычислить волатильность черного для рыночной модели LIBOR с использованием формулы Rebonato

Описание

пример

outVol = blackvolbyrebonato(ZeroCurve,VolFunc,CorrMat,ExerciseDate,Maturity) вычисляет волатильность черного для свопциона с использованием рыночной модели 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около-1 массив ячеек дескрипторов функций. Каждый дескриптор функции должен занимать время как вход и возвращать скалярную волатильность

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

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

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

Сроки выполнения свопциона, определенные NumSwaptionsоколо-1 вектор серийных номеров дат или векторы символов дат.

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

Сроки погашения свопа, указанные с помощью NumSwaptionsоколо-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около-1 вектор.

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

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

свернуть все

Черная волатильность, возвращаемая как вектор для указанных свопционов.

Алгоритмы

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

(startα, βLFM) 2=∑i,j=α+1βwi (0) wj (0) Fi (0) Fj (0), jSα, β (0) 2∫0Tασi (t)

где:

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

Ссылки

[1] Бриго, Д. и Ф. Меркурио. Модели процентных ставок - теория и практика. Springer Finance, 2006.

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