optsensbysabr

Вычислите чувствительность опции с помощью модели SABR

Описание

пример

Sens = optsensbysabr(ZeroCurve,Alpha,Beta,Rho,Nu,Settle,ExerciseDate,ForwardValue,Strike,OptSpec) возвращает чувствительности значения опции при помощи модели стохастической волатильности SABR.

пример

Sens = optsensbysabr(___,Name,Value) задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе.

Примеры

свернуть все

Определите процентную ставку и параметры модели.

SwapRate = 0.0357; 
Strike = 0.03; 
Alpha = 0.036; 
Beta = 0.5; 
Rho = -0.25; 
Nu = 0.35; 
Rates = 0.05;

Определите Settle, ExerciseDate, и OptSpec для процентного свопциона.

Settle = datenum('15-Sep-2013'); 
ExerciseDate = datenum('15-Sep-2015'); 
OptSpec = 'call';

Определите RateSpec для кривой процентной ставки.

RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, ...
'EndDates', ExerciseDate, 'Rates', Rates, 'Compounding', -1, 'Basis', 1)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9048
            Rates: 0.0500
         EndTimes: 2
       StartTimes: 0
         EndDates: 736222
       StartDates: 735492
    ValuationDate: 735492
            Basis: 1
     EndMonthRule: 1

Вычислим Delta и Vega значения чувствительности для процентного свопциона.

[SABRDelta, SABRVega] = optsensbysabr(RateSpec, Alpha, Beta, Rho, Nu, Settle, ...
ExerciseDate, SwapRate, Strike, OptSpec, 'OutSpec',  {'Delta', 'Vega'})
SABRDelta = 0.7025
SABRVega = 0.0772

Определите процентную ставку и параметры модели.

SwapRate = 0.0002;
Strike = -0.001;  % -0.1% strike.
Alpha = 0.01;
Beta = 0.5;
Rho = -0.1;
Nu = 0.15;
Shift = 0.005;  % 0.5 percent shift
Rates = 0.0002;

Определите Settle, ExerciseDate, и OptSpec для свопциона.

Settle = datenum('1-Mar-2016');
ExerciseDate = datenum('1-Mar-2017');
OptSpec = 'call';

Определите RateSpec для кривой процентной ставки.

RateSpec = intenvset('ValuationDate',Settle,'StartDates',Settle, ...
'EndDates',ExerciseDate,'Rates',Rates,'Compounding',-1,'Basis', 1)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9998
            Rates: 2.0000e-04
         EndTimes: 1
       StartTimes: 0
         EndDates: 736755
       StartDates: 736390
    ValuationDate: 736390
            Basis: 1
     EndMonthRule: 1

Вычислим Delta и Vega значения чувствительности для свопцирования.

[ShiftedSABRDelta,ShiftedSABRVega] = optsensbysabr(RateSpec, ...
Alpha,Beta,Rho,Nu,Settle,ExerciseDate,SwapRate,Strike,OptSpec, ...
'OutSpec',{'Delta','Vega'},'Shift',Shift)
ShiftedSABRDelta = 0.9628
ShiftedSABRVega = 0.0060

В этом примере показано, как использовать optsensbysabr вычислить чувствительности для процентного свопциона с помощью модели Normal для случая, когда Beta параметр is > 0 и где Beta = 0.

Для случая, когда Beta параметр is > 0, выберите модель Normal (Bachelier) подразумеваемой волатильности в optsensbysabr, задайте 'Model' Пара "имя-значение" с 'normal'.

% Define the interest rate and the model parameters.

SwapRate = 0.025;
Strike = 0.02;
Alpha = 0.044;
Beta = 0.5;
Rho = -0.21;
Nu = 0.31;
Rates = 0.028;

% Define the Settle, ExerciseDate, and OptSpec for the swaption.

Settle = datenum('7-Mar-2018');
ExerciseDate = datenum('7-Mar-2020');
OptSpec = 'call';

% Define the RateSpec for the interest-rate curve.

RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, ...
    'EndDates', ExerciseDate, 'Rates', Rates, 'Compounding', -1, 'Basis', 1);

% Calculate the Delta and Vega sensitivity values for the swaption. Set the
% 'Model' name-value pair to 'normal' in order to select the Normal
% (Bachelier) implied volatility model.

[SABRDelta, SABRVega] = optsensbysabr(RateSpec, Alpha, Beta, Rho, Nu, ...
    Settle, ExerciseDate, SwapRate, Strike, OptSpec, ...
    'OutSpec',  {'Delta', 'Vega'}, 'Model', 'normal')
SABRDelta = 0.7171
SABRVega = 0.0686

Вычислите чувствительность для свопции с нормальной подразумеваемой волатильностью, используя нормальную модель SABR

Когда Beta параметр установлен в нуль, модель SABR становится моделью Normal SABR. Отрицательные процентные ставки допускаются, когда модель Normal SABR используется в комбинации с подразумеваемой волатильностью Normal (Bachelier). Чтобы выбрать модель волатильности Normal (Bachelier) в optsensbysabr, задайте значение 'Model', пару "имя-значение" к 'normal'.

% Define the interest rate and the model parameters. 

SwapRate = -0.00254;
Strike = -0.002;
Alpha = 0.0047;
Beta = 0;  % Set the Beta parameter to zero to use the Normal SABR model
Rho = -0.20;
Nu = 0.28;
Rates = 0.0001;

% Define the Settle, ExerciseDate, and OptSpec for the swaption.

Settle = datenum('11-Apr-2018');
ExerciseDate = datenum('11-Apr-2019');
OptSpec = 'call';

% Define the RateSpec for the interest-rate curve.

RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, ...
    'EndDates', ExerciseDate, 'Rates', Rates, 'Compounding', -1, 'Basis', 1);

% Calculate the Delta and Vega sensitivity values for the swaption. Set the
% 'Model' name-value pair to 'normal' in order to select the Normal
% (Bachelier) implied volatility model.

[SABRDelta, SABRVega] = optsensbysabr(RateSpec, Alpha, Beta, Rho, Nu, ...
    Settle, ExerciseDate, SwapRate, Strike, OptSpec, ...
    'OutSpec',  {'Delta', 'Vega'}, 'Model', 'normal')
SABRDelta = 0.4644
SABRVega = 0.3987

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

свернуть все

Годовая структура процентной ставки для облигаций с нулевым купоном, заданная при помощи RateSpec получен из intenvset или IRDataCurve с несколькими скоростями, используя IRDataCurve конструктор.

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

Текущая волатильность SABR, заданная в виде скалярного числа.

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

Экспонента SABR CEV, заданная в виде скалярного числа.

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

Корреляция между прямым значением и волатильностью, заданная в виде скалярного числа.

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

Волатильность волатильности, заданная как скалярное число.

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

Дата расчета, заданная как скаляр с использованием последовательного неотрицательного номера даты или вектора символов даты.

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

Дата упражнения опции, заданная в виде скаляра с использованием последовательного неотрицательного номера даты или вектора символов даты.

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

Текущее прямое значение базового актива, заданное в виде скалярного числа или вектора размера NINST-by- 1.

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

Опциональные значения ударной цены, заданные в виде скалярного числа или вектора размера NINST-by- 1.

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

Определение опции, заданное как 'call' или 'put' использование вектора символов.

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

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

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

Пример: ModifiedSABRDelta = optsensbysabr(RateSpec,Alpha,Beta,Rho,Nu,Settle,ExerciseDate,ForwardValue,Strike,OptSpec,'OutSpec','ModifiedDelta')

Выходы чувствительности, заданные как разделенная разделенными запятой парами, состоящая из 'OutSpec' и NOUT- by- 1 или 1-by- NOUT массив ячеек из векторов символов с возможными значениями 'Delta', 'Vega', 'ModifiedDelta', 'ModifiedVega', 'dSigmadF', и 'dSigmadAlpha' где:

  • 'Delta' является дельтой SABR Hagan et al. (2002).

  • 'Vega' является SABR Vega Hagan et al. (2002).

  • 'ModifiedDelta' - дельта SABR, модифицированная Bartlett (2006).

  • 'ModifiedVega' SABR Vega модифицирована Bartlett (2006).

  • 'dSigmadF' - чувствительность подразумеваемой волатильности относительно базового значения тока вперед, F. Подразумеваемый тип волатильности зависит от Shift и Model.

  • 'dSigmadAlpha' - чувствительность подразумеваемой волатильности по отношению к Alpha параметр. Подразумеваемый тип волатильности зависит от Shift и Model.

Пример: OutSpec = {'Delta','Vega','ModifiedDelta','ModifiedVega','dSigmadF','dSigmadAlpha'}

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

Сдвиг десятичных чисел для сдвинутой модели SABR (для использования с моделью Shitted Black), заданный как разделенная разделенными запятой парами, состоящая из 'Shift' и скаляр положительное десятичное значение. Установите этот параметр положительный сдвиг десятичных чисел, чтобы добавить положительный сдвиг к ForwardValue и Strike, который эффективно устанавливает отрицательную нижнюю границу для ForwardValue и Strike. Для примера, a Shift значение 0.01 равен 1% положительному сдвигу.

Примечание

Если на Model установлено в 'normal', а Shift параметр должен быть 0.

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

Модель, используемая подразумеваемой сигмой волатильности, заданная как разделенная разделенными запятой парами, состоящая из 'Model' и вектор символов со значением 'lognormal' или 'normal', или строка со значением "lognormal" или "normal".

Примечание

Настройка для Model влияет на интерпретацию подразумеваемой волатильности «сигма». В зависимости от настройки Model, «сигма» имеет следующие толкования:

  • Если Model является 'lognormal' (по умолчанию), «sigma» может быть либо Подразумеваемой Черной (без сдвига), либо Подразумеваемой Сдвинутой Черной Волатильностью.

  • Если Model является 'normal', «sigma» является подразумеваемой нормальной (холостяцкой) волатильностью и Shift должно быть нулем.

Типы данных: char | string

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

свернуть все

Значения чувствительности, возвращенные как NINST-by- 1 массив, заданный как OutSpec.

Алгоритмы

В модели SABR опция со V значений определяется измененной формулой Black B, где σB является SABR подразумеваемой черной волатильностью.

V=B(F,K,T,σB(α,β,ρ,ν,F,K,T))

The Delta и Vega чувствительности в модели SABR выражены в терминах частных производных в исходной статье Hagan (2002).

SABR Delta=VF=BF+BσBσBF

SABR Vega=Vα=BσBσBα

Позже Бартлетт (2006) лучше использовал динамику модели, включив коррелированные изменения между F и α

Modified SABR Delta=BF+BσB(σBF+σBαρυFβ)

Modified SABR Vega=BσB(σBα+σBFρFβυ)

где BF является классическим Черным Delta и BσB является классическим Черным Vega. Черная подразумеваемая волатильность σB вычисляется внутренне по вызову blackvolbysabr, в то время как его частные производные σBF и σBα вычисляются с помощью выражений закрытой формы по optsensbysabr.

Подобные выражения применяются к подразумеваемой волатильности Normal, N. Для получения дополнительной информации см.normalvolbysabr.

Ссылки

[1] Хаган, П. С., Д. Кумар. А. С. Лесневского, и Д. Е. Вудворда. «Управление риском улыбки». Wilmott Magazine, 2002.

[2] Bartlett, B. «Хеджирование под моделью SABR». Wilmott Magazine, 2006.

Введенный в R2014b