abaquant.derivatives.comparison

Import path: abaquant.derivatives.comparison

Domain: Derivative pricing, simulation, calibration, diagnostics, and strategy analysis.

Purpose

Cross-model European option comparison.

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: compare_all_models — Price a vanilla option under several models using shared market inputs.

Detailed reference

Cross-model European option comparison.

Purpose

The module evaluates several pricing models with a shared market input set to support model-comparison workflows.

Conventions

Spot and strike share currency units; maturity is in years; rates, yields, and volatility are annualized decimals.

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 ] Cox, J. C., S. A. Ross, and M. Rubinstein (1979), “Option Pricing: A Simplified Approach”. [ 3 ] Heston, S. L. (1993), “A Closed-Form Solution for Options with Stochastic Volatility”. [ 4 ] Merton, R. C. (1976), “Option Pricing When Underlying Stock Returns Are Discontinuous”.

abaquant.derivatives.comparison.compare_all_models(S, K, T, r, sigma, q=0.0, heston_params=None, merton_params=None, crr_N=200, crr_american=False)

Price a vanilla option under several models using shared market inputs.

Parameters:
  • S (float) – Legacy formula notation for spot price, strike price, maturity in years, continuously compounded risk-free rate, and annualized decimal volatility. The canonical model constructors use descriptive names.

  • K (float) – Legacy formula notation for spot price, strike price, maturity in years, continuously compounded risk-free rate, and annualized decimal volatility. The canonical model constructors use descriptive names.

  • T (float) – Legacy formula notation for spot price, strike price, maturity in years, continuously compounded risk-free rate, and annualized decimal volatility. The canonical model constructors use descriptive names.

  • r (float) – Legacy formula notation for spot price, strike price, maturity in years, continuously compounded risk-free rate, and annualized decimal volatility. The canonical model constructors use descriptive names.

  • sigma (float) – Legacy formula notation for spot price, strike price, maturity in years, continuously compounded risk-free rate, and annualized decimal volatility. The canonical model constructors use descriptive names.

  • q (float, default=0.0) – Continuous annual dividend or carry yield in decimal units.

  • heston_params (mapping[str, float] or None, default=None) – Optional Heston parameters. Accepted legacy keys are "v0", "kappa", "theta", "xi", and "rho". When omitted, the comparison applies the module’s deterministic illustrative values.

  • merton_params (mapping[str, float] or None, default=None) – Optional jump-diffusion parameters. Accepted legacy keys are "lam", "mu_j", and "sigma_j".

  • crr_N (int, default=200) – Number of Cox–Ross–Rubinstein lattice steps.

  • crr_american (bool, default=False) – Whether the binomial price applies early-exercise logic.

Returns:

Mapping from model label to call and put values. The legacy result keys "BSM", "CRR", "Heston", and "Merton" are preserved for backward compatibility.

Return type:

dict[str, dict[str, float]]

Notes

This is a valuation comparison, not a calibration routine. Default Heston and Merton parameters are illustrative and should not be interpreted as market-calibrated estimates.