mafipy.function.sabr_implied_vol_hagan

mafipy.function.sabr_implied_vol_hagan(underlying, strike, maturity, alpha, beta, rho, nu)[source]

calculate implied volatility under SABR model.

\[\begin{split}\begin{eqnarray} \sigma_{B}(K, S; T) & \approx & \frac{ \alpha }{ (SK)^{(1-\beta)/2} \left( 1 + \frac{(1 - \beta)^{2}}{24}\log^{2} \frac{S}{K} + \frac{(1 - \beta)^{4}}{1920} \log^{4}\frac{S}{K} \right) } \left( \frac{z}{x(z)} \right) \\ & & \left[ 1 + \left( \frac{(1 - \beta)^{2}}{24} \frac{\alpha^{2}}{(SK)^{1-\beta}} + \frac{1}{4} \frac{\rho\beta\nu\alpha}{(SK)^{(1-\beta)/2}} + \frac{2 - 3\rho^{2}}{24}\nu^{2} \right) T \right], \\ z & := & \frac{\nu}{\alpha} (SK)^{(1-\beta)/2} \log\left( \frac{S}{K} \right), \\ x(z) & := & \log \left( \frac{ \sqrt{1 - 2\rho z + z^{2}} + z - \rho }{ 1 - \rho } \right) \end{eqnarray}\end{split}\]

where \(S\) is underlying, \(K\) is strike, \(T\) is maturity, \(\alpha\) is alpha, \(\beta\) is beta, \(\rho\) is rho, \(\nu\) is nu.

See Hagan, P. S., Kumar, D., Lesniewski, A. S., & Woodward, D. E. (2002). Managing smile risk. Wilmott Magazine, m, 84–108. Retrieved from http://www.math.columbia.edu/~lrb/sabrAll.pdf

Parameters:
  • underlying (float) –
  • strike (float) –
  • maturity (float) –
  • alpha (float) – alpha is \([0, 1]\).
  • beta (float) –
  • rho (float) – correlation of brownian motion. value is in \([-1, 1]\).
  • nu (float) – volatility of volatility. This must be greater than 0.
Returns:

implied volatility.

Return type:

float.