abaquant.derivatives.numerics.implied_volatility¶
Import path: abaquant.derivatives.numerics.implied_volatility
Domain: Derivative pricing, simulation, calibration, diagnostics, and strategy analysis.
Purpose¶
Implied-volatility inversion routines.
When to use it¶
Use this package when valuing contingent claims, calculating Greeks, building option strategies, simulating stochastic processes, or fitting models to market observations.
Public objects¶
function:
implied_volatility_black_scholes— Invert a Black–Scholes–Merton premium for implied volatility.function:
implied_normal_volatility— Invert a Bachelier premium for normal implied volatility.
Detailed reference¶
Implied-volatility inversion routines.
Purpose¶
The module solves Black–Scholes–Merton and Bachelier inverse-pricing problems from a supplied market option premium.
Conventions¶
Returned implied volatilities are annualized decimal values. Inputs must be compatible with the numerical model and no-arbitrage bounds.
References
[ 1 ] Black, F., and M. Scholes (1973), “The Pricing of Options and Corporate Liabilities”; Merton, R. C. (1973), “Theory of Rational Option Pricing”. [ 2 ] Bachelier, L. (1900), “Theorie de la Speculation”.
- abaquant.derivatives.numerics.implied_volatility.implied_volatility_black_scholes(market_price, S, K, T, r, q=0.0, option_type='call', tol=1e-6, max_iter=200)¶
Invert a Black–Scholes–Merton premium for implied volatility.
- Parameters:
market_price (float) – Observed option premium in the same currency units as spot and strike.
S (float) – Current underlying spot price in currency units.
K (float) – Option strike price in the same currency units as the underlying.
T (float) – Time to maturity in years.
r (float) – Continuously compounded risk-free annual rate in decimal units.
q (float, default=0.0) – Continuous dividend or carry yield in decimal annual units.
option_type (str, default='call') – Option type label, normally
"call"or"put".tol (float, default=1e-06) – Numerical convergence tolerance.
max_iter (int, default=200) – Maximum numerical-optimizer or root-finder iterations.
- Returns:
Computed implied volatility black scholes as a dimensionless decimal quantity.
- Return type:
float
Notes
Model inputs are interpreted according to the module-level rate, maturity, and volatility conventions. Numerical outputs depend on the validity of those assumptions.
- abaquant.derivatives.numerics.implied_volatility.implied_normal_volatility(market_price, S, K, T, r, q=0.0, option_type='call', tol=1e-8)¶
Invert a Bachelier premium for normal implied volatility.
- Parameters:
market_price (float) – Observed option premium in the same currency units as spot and strike.
S (float) – Current underlying spot price in currency units.
K (float) – Option strike price in the same currency units as the underlying.
T (float) – Time to maturity in years.
r (float) – Continuously compounded risk-free annual rate in decimal units.
q (float, default=0.0) – Continuous dividend or carry yield in decimal annual units.
option_type (str, default='call') – Option type label, normally
"call"or"put".tol (float, default=1e-08) – Numerical convergence tolerance.
- Returns:
Computed implied normal volatility as a dimensionless decimal quantity.
- Return type:
float
Notes
Model inputs are interpreted according to the module-level rate, maturity, and volatility conventions. Numerical outputs depend on the validity of those assumptions.