Docs / nablatensor-quant / com.nablatensor.quant.analytic
final class
MertonJumpDiffusion
Merton's (1976) jump-diffusion price for a European option: a diffusion with volatility sigma plus a compound-Poisson jump component of intensity lambda whose multiplicative jump size is lognormal, ln Y ~ N(muJ, deltaJ^2).
The price is the Poisson-weighted average of Black-Scholes prices, one per possible number of jumps to expiry:
kappa = exp(muJ + deltaJ^2 / 2) - 1 (expected relative jump size)
lambda' = lambda (1 + kappa)
sigma_n = sqrt(sigma^2 + n deltaJ^2 / T)
r_n = r - lambda kappa + n ln(1 + kappa) / T
price = sum_n e^{-lambda' T} (lambda' T)^n / n! * BSM(S, K, T, r_n, sigma_n)
The series is truncated once the cumulative Poisson weight is within 1e-14 of one (and at n = 256 as a hard stop). As lambda -> 0 only the n = 0 term survives and the price collapses to GeneralizedBsm with q = 0.
This is the analytic oracle the MertonJumpModel Monte-Carlo step block (feature F7) is validated against.
Methods
Bare price — the truncated Poisson series.