optsensbysabr

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

Синтаксис

Sens = optsensbysabr(ZeroCurve,Alpha,Beta,Rho,Nu,Settle,ExerciseDate,ForwardValue,Strike,OptSpec)
Sens = optsensbysabr(___,Name,Value)

Описание

пример

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 для процентной ставки swaption.

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 для процентной ставки swaption.

[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 для swaption.

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 для swaption.

[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, чтобы вычислить чувствительность для процентной ставки swaption использование модели 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

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

Когда параметр Beta обнуляется, модель SABR становится моделью Normal SABR. Отрицательные процентные ставки позволены, когда модель Normal SABR используется в сочетании с Нормальной подразумеваемой волатильностью (Bachelier). Чтобы выбрать Нормальную модель подразумеваемой волатильности (Bachelier) в optsensbysabr, задайте 'Образцовую' пару "имя-значение" к '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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

  • 'Delta' является Delta SABR Хейганом и др. (2002).

  • 'Vega' является Вега SABR Хейганом и др. (2002).

  • 'ModifiedDelta' является Delta SABR, измененная Бартлеттом (2006).

  • 'ModifiedVega' является Вега SABR, измененный Бартлеттом (2006).

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

  • 'dSigmadAlpha' является чувствительностью подразумеваемой волатильности относительно параметра Alpha. Тип подразумеваемой волатильности зависит от Shift и Model.

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

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

Переключите десятичные числа на нижний регистр для переключенной модели SABR (чтобы использоваться с моделью Shifted 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', “сигма” является Подразумеваемой Нормальной энергозависимостью (Bachelier), и Shift должен быть нулем.

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

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

свернуть все

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

Алгоритмы

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

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

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

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

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

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

Измененный SABR Delta=BF+BσB(σBF+σBαρυFβ)

Измененный SABR Vega=BσB(σBα+σBFρFβυ)

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

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

Ссылки

[1] Хейган, P. S. Д. Кумар. А. С. Лесниевский и D. E. Лесничий. “Управляя риском улыбки”. Журнал Wilmott, 2002.

[2] Бартлетт, B. “Страхуясь в соответствии с моделью SABR”. Журнал Wilmott, 2006.

Введенный в R2014b

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