# normalvolbysabr

Implied Normal (Bachelier) volatility by SABR model

## Syntax

``outVol = normalvolbysabr(Alpha,Beta,Rho,Nu,Settle,ExerciseDate,ForwardValue,Strike)``
``outVol = normalvolbysabr(___,Name,Value)``

## Description

example

````outVol = normalvolbysabr(Alpha,Beta,Rho,Nu,Settle,ExerciseDate,ForwardValue,Strike)` calculates the implied Normal (Bachelier) volatility by using the SABR stochastic volatility model.```

example

````outVol = normalvolbysabr(___,Name,Value)` specifies options using one or more name-value pair arguments in addition to the input arguments in the previous syntax.```

## Examples

collapse all

Define the model parameters and option data.

```ForwardValue = 0.0209; Strike = 0.02; Alpha = 0.041; Beta = 0.5; Rho = -0.2; Nu = 0.33; Settle = datenum('15-Feb-2018'); ExerciseDate = datenum('15-Feb-2020'); ```

Compute the Normal (Bachelier) volatility using the SABR model`.`

`ComputedVols = normalvolbysabr(Alpha,Beta,Rho,Nu,Settle,ExerciseDate,ForwardValue,Strike)`
```ComputedVols = 0.0059 ```

To use the Normal SABR model, set the `Beta` parameter to zero. Negative interest rates are allowed when the Normal SABR model is used in combination with Normal (Bachelier) implied volatility.

Define the model parameters and option data.

```ForwardValue = -0.00383; Strike = -0.003; Alpha = 0.007; Beta = 0; % Set the Beta parameter to zero to use the Normal SABR model Rho = -0.18; Nu = 0.29; Settle = datenum('17-Jan-2018'); ExerciseDate = datenum('17-Apr-2018');```

Compute the Normal (Bachelier) volatility using the Normal SABR model.

`ComputedVols = normalvolbysabr(Alpha,Beta,Rho,Nu,Settle,ExerciseDate,ForwardValue,Strike)`
```ComputedVols = 0.0070 ```

## Input Arguments

collapse all

Current SABR volatility, specified as a scalar numeric.

Data Types: `double`

SABR CEV exponent, specified as a scalar numeric.

Note

Set the `Beta` parameter to `0` to allow a negative `ForwardValue` and `Strike`.

Data Types: `double`

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

Data Types: `double`

Volatility of volatility, specified as a scalar numeric.

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 numeric or vector of size `NumVols`-by-`1`.

Data Types: `double`

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

Data Types: `double`

### 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 quotes. You can specify several name and value pair arguments in any order as `Name1,Value1,...,NameN,ValueN`.

Example: ```outVol = normalvolbysabr(Alpha,Beta,Rho,Nu,Settle,ExerciseDate,ForwardValue,Strike,'Basis',2)```

Day-count basis of the instrument, specified as the comma-separated pair consisting of `'Basis'` and a positive integer from the set `[1...13]`.

• 0 = actual/actual

• 1 = 30/360 (SIA)

• 2 = actual/360

• 3 = actual/365

• 4 = 30/360 (PSA)

• 5 = 30/360 (ISDA)

• 6 = 30/360 (European)

• 7 = actual/365 (Japanese)

• 8 = actual/actual (ICMA)

• 9 = actual/360 (ICMA)

• 10 = actual/365 (ICMA)

• 11 = 30/360E (ICMA)

• 12 = actual/365 (ISDA)

• 13 = BUS/252

Data Types: `double`

## Output Arguments

collapse all

Normal (Bachelier) volatility computed by the SABR model, returned as a scalar numeric or vector of size `NumVols`-by-`1`.

## Algorithms

The two general case algorithms for `normalvolbysabr` are not At-The-Money (ATM) and ATM.

For not ATM (FK):

For ATM (F = K):

`${\sigma }_{N,ATM}\left(\alpha ,\beta ,\rho ,\upsilon ,F,T\right)=\alpha {F}^{\beta }\left\{1+\left[\frac{\beta \left(\beta -2\right){\alpha }^{2}}{24{F}^{2-2\beta }}+\frac{\rho \beta \upsilon \alpha }{4{F}^{1-\beta }}+\frac{2-3{\rho }^{2}}{24}{\upsilon }^{2}\right]T\right\}$`

The special case for `normalvolbysabr` where β = 0 for not ATM (FK) is:

`$\begin{array}{l}{\sigma }_{N}\left(\alpha ,\rho ,\upsilon ,F,K,T\right)=\upsilon \frac{\left(F-K\right)}{\stackrel{\wedge }{x}\left(\zeta \right)}\left(1+\frac{2-3{\rho }^{2}}{24}{\upsilon }^{2}T\right)\\ \zeta =\frac{\upsilon }{\alpha }\left(F-K\right)\\ \stackrel{\wedge }{x}\left(\zeta \right)=\mathrm{ln}\left(\frac{\sqrt{1-2\rho \zeta +{\zeta }^{2}}+\zeta -\rho }{1-\rho }\right)\end{array}$`

For ATM (F = K):

`${\sigma }_{N,ATM}\left(\alpha ,\rho ,\upsilon ,T\right)=\alpha \left(1+\frac{2-3{\rho }^{2}}{24}{\upsilon }^{2}T\right)$`

The special case for `normalvolbysabr` where β = 1 for not ATM (FK) is:

`$\begin{array}{l}{\sigma }_{N}\left(\alpha ,\rho ,\upsilon ,F,K,T\right)=\upsilon \frac{\left(F-K\right)}{\stackrel{\wedge }{x}\left(\zeta \right)}\left\{1+\left[\frac{-{\alpha }^{2}}{24}+\frac{\rho \upsilon \alpha }{4}+\frac{2-3{\rho }^{2}}{24}{\upsilon }^{2}\right]T\right\}\\ \zeta =\frac{\upsilon }{\alpha }\mathrm{ln}\frac{F}{K}\\ \stackrel{\wedge }{x}\left(\zeta \right)=\mathrm{ln}\left(\frac{\sqrt{1-2\rho \zeta +{\zeta }^{2}}+\zeta -\rho }{1-\rho }\right)\end{array}$`

For ATM (F = K):

`${\sigma }_{N,ATM}\left(\alpha ,\rho ,\upsilon ,F,T\right)=\alpha F\left\{1+\left[\frac{-{\alpha }^{2}}{24}+\frac{\rho \upsilon \alpha }{4}+\frac{2-3{\rho }^{2}}{24}{\upsilon }^{2}\right]T\right\}$`

 Hagan, P. S., D. Kumar, A.S. Lesniewski, and D.E. Woodward. "Managing Smile Risk." Wilmott Magazine. September 2002, pp. 84–108.