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.