Skip to main content

Module bates

Module bates 

Source
Expand description

Bates stochastic-volatility jump-diffusion models: Heston dynamics plus a compound-Poisson jump in the log-price.

  • Bates (1996), BatesParams: lognormal (Merton) jump sizes — the classic SVJ model, adding the short-dated skew and smile that pure Heston cannot produce;
  • Bates double-exponential, BatesDoubleExpParams: Kou (2002) asymmetric double-exponential jump sizes — separate up/down tail decay rates, giving independent control of the two wings.

Both price semi-analytically through the characteristic function: the log-price CF is the Heston CF times an independent jump factor exp(lambda t (E[e^{iuY}] - 1) - iu lambda t kbar) with kbar = E[e^Y] - 1 the martingale compensator, so the P1/P2 machinery of heston is reused unchanged (the compensator keeps phi(-i) = forward exactly). With intensity = 0 both models collapse to Heston to machine precision (tested); with the vol-of-vol collapsed they reduce to Merton / Kou jump-diffusion, which the tests verify against independent oracles.

Re-exports§

pub use crate::equity::heston::HestonQuote;

Structs§

BatesDoubleExpFit
Calibration outcome for the double-exponential-jump Bates model.
BatesDoubleExpParams
Heston diffusion plus Kou double-exponential jumps.
BatesFit
Calibration outcome for the lognormal-jump Bates model.
BatesParams
Bates (1996): Heston diffusion plus lognormal jumps.
KouJumps
Kou (2002) double-exponential jumps: upward moves with probability p_up and decay eta_up, downward with decay eta_down — independent control of the two smile wings.
MertonJumps
Lognormal (Merton) jumps: ln(1 + J) ~ N(ln(1 + mean_jump) - jump_vol^2/2, jump_vol^2), arriving at intensity per year.

Functions§

bates_double_exp_price
Semi-analytic Bates double-exponential (Heston + Kou jumps) price of a European vanilla option.
bates_price
Semi-analytic Bates (SVJ) price of a European vanilla option.
calibrate
Calibrate all eight Bates parameters to European vanilla quotes — the same Levenberg-Marquardt-in-transform-space pattern as heston::calibrate. Short-dated quotes are what identify the jump parameters against the diffusion.
calibrate_double_exp
Calibrate all nine double-exponential Bates parameters to European vanilla quotes.