exponenta event banner

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 параметр имеет значение > 0 и где Beta = 0.

Для случая, когда Beta параметр имеет значение > 0, выберите модель нормальной волатильности (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 используется в сочетании с нормальной волатильностью (Bachelier). Чтобы выбрать модель нормальной волатильности (Bachelier) в optsensbysabrукажите для пары имя-значение «Модель» значение «обычный».

% 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около-1.

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

Значения цены страйка опциона, указанные как скалярное число или вектор размера NINSTоколо-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около-1 или 1около-NOUT массив ячеек символьных векторов с возможными значениями 'Delta', 'Vega', 'ModifiedDelta', 'ModifiedVega', 'dSigmadF', и 'dSigmadAlpha' где:

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

  • 'Vega' SABR Vega, Hagan et al. (2002).

  • 'ModifiedDelta' SABR Delta модифицирована Бартлеттом (2006).

  • 'ModifiedVega' SABR Vega модифицирована Бартлеттом (2006).

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

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

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

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

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

Примечание

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

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

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

Примечание

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

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

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

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

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

свернуть все

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

Алгоритмы

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

V = B (F, K, T,

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

SABR Delta=∂V∂F=∂B∂F+∂B∂σB∂σB∂F

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

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

Модифицированный SABR Delta=∂B∂F+∂B∂σB (∂σB∂F+∂σB∂αρυFβ)

Модифицированный SABR Vega=∂B∂σB (∂σB∂α+∂σB∂FρFβυ)

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

Аналогичные выражения относятся к подразумеваемой Нормальной волатильности (Normal volatility (Нормальная волатильность) "( Дополнительные сведения см. в разделе normalvolbysabr.

Ссылки

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

[2] Бартлетт, Б. «Хеджирование по модели SABR». Журнал Wilmott, 2006.

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