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.