# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the page.

# optsensbysabr

Calculate option sensitivities using SABR model

## Syntax

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

## Description

example

````Sens = optsensbysabr(ZeroCurve,Alpha,Beta,Rho,Nu,Settle,ExerciseDate,ForwardValue,Strike,OptSpec)` returns the sensitivities of an option value by using the SABR stochastic volatility model. ```

example

````Sens = optsensbysabr(___,Name,Value)` adds optional name-value pair arguments. ```

## Examples

collapse all

Define the interest rate and the model parameters.

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

Define the `Settle`, `ExerciseDate`, and `OptSpec` for an interest-rate swaption.

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

Define the `RateSpec` for the interest-rate curve.

```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 ```

Calculate the `Delta` and `Vega` sensitivity values for the interest-rate swaption.

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

Define the interest rate and the model parameters.

```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; ```

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

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

Define the `RateSpec` for the interest-rate curve.

```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 ```

Calculate the `Delta` and `Vega` sensitivity values for the 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 ```

## Input Arguments

collapse all

Annualized interest-rate term structure for zero-coupon bonds, specified by using the `RateSpec` obtained from `intenvset` or an `IRDataCurve` with multiple rates using the `IRDataCurve` constructor.

Data Types: `struct`

Current SABR volatility, specified as a scalar.

Data Types: `double`

SABR CEV exponent, specified as a scalar.

Data Types: `double`

Correlation between forward value and volatility, specified as a scalar.

Data Types: `double`

Volatility of volatility, specified as a scalar.

Data Types: `double`

Settlement date, specified as a scalar using a serial nonnegative date number or date character vector.

Data Types: `double` | `char`

Option exercise date, specified as a scalar using a serial nonnegative date number or date character vector.

Data Types: `double` | `char`

Current forward value of the underlying asset, specified as a scalar or vector of size `NINST`-by-`1`.

Data Types: `double`

Option strike price values, specified as a scalar value or a vector of size `NINST`-by-`1`.

Data Types: `double`

Definition of option, specified as `'call'` or `'put'` using a character vector.

Data Types: `char`

### Name-Value Pair Arguments

Specify optional comma-separated pairs of `Name,Value` arguments. `Name` is the argument name and `Value` is the corresponding value. `Name` must appear inside single quotes (`' '`). You can specify several name and value pair arguments in any order as `Name1,Value1,...,NameN,ValueN`.

Example: `ModifiedSABRDelta = optsensbysabr(RateSpec,Alpha,Beta,Rho,Nu,Settle,ExerciseDate,ForwardValue,Strike,OptSpec,'OutSpec','ModifiedDelta')`

collapse all

Sensitivity outputs, specified by a `NOUT`- by-`1` or `1`-by-`NOUT` cell array of character vectors with possible values of `'Delta'`, `'Vega'`, `'ModifiedDelta'`, `'ModifiedVega'`, `'dSigmadF'`, and `'dSigmadAlpha'` where:

• `'Delta'` is SABR Delta by Hagan et al. (2002).

• `'Vega'` is SABR Vega by Hagan et al. (2002).

• `'ModifiedDelta'` SABR Delta modified by Bartlett (2006).

• `'ModifiedVega'` SABR Vega modified by Bartlett (2006).

• `'dSigmadF'` is the sensitivity of implied Black volatility with respect to the underlying current forward value, F.

• `'dSigmadAlpha'` is the sensitivity of implied Black volatility with respect to the `Alpha` parameter.

Example: `OutSpec = {'Delta','Vega','ModifiedDelta','ModifiedVega','dSigmadF','dSigmadAlpha'}`

Data Types: `char` | `cell`

Shift in decimals for the shifted SABR model (to be used with the Shifted Black model), specified using a scalar positive decimal value. Set this parameter to a positive shift in decimals to add a positive shift to `ForwardValue` and `Strike`, which effectively sets a negative lower bound for `ForwardValue` and `Strike`. For example, a `Shift` value of 0.01 is equal to a 1% shift.

Data Types: `double`

## Output Arguments

collapse all

Sensitivity values, returned as an `NINST`-by-`1` array as defined by `OutSpec`.

## Algorithms

In the SABR model, an option with value V is given by the modified Black formula B, where ${\sigma }_{B}$ is the SABR implied Black volatility.

`$V=B\left(F,K,T,{\sigma }_{B}\left(\alpha ,\beta ,\rho ,\nu ,F,K,T\right)\right)$`

The `Delta` and `Vega` sensitivities under the SABR model are expressed in terms of partial derivatives in the original paper by Hagan (2002).

Later, Bartlett (2006) made better use of the model dynamics by incorporating the correlated changes between F and α

where $\frac{\partial B}{\partial F}$ is the classic Black `Delta` and $\frac{\partial B}{\partial {\sigma }_{B}}$ is the classic Black `Vega`. The Black implied volatility ${\sigma }_{B}$ is computed internally by calling `blackvolbysabr`, while its partial derivatives $\frac{\partial {\sigma }_{B}}{\partial {F}_{}}$ and $\frac{\partial {\sigma }_{B}}{\partial \alpha }$ are computed using closed-form expressions by `optsensbysabr`.

## References

[1] Hagan, P. S., D. Kumar. A. S. Lesniewski, and D. E. Woodward. “Managing Smile Risk.” Wilmott Magazine, 2002.

[2] Bartlett, B. “Hedging under SABR Model.” Wilmott Magazine, 2006.