Affine Jump-Diffusion Models

Affine jump-diffusions combine mean-reverting diffusive factors with discontinuous shocks while retaining exponentially affine conditional transforms. That tractability is their core advantage: the same architecture can describe an asset, stochastic variance, rates, default intensity, or several correlated factors, and still yield fast characteristic-function pricing for many European claims.

“Affine” does not mean linear sample paths. It means that conditional log transforms are exponential-affine in the state. This restriction is powerful but constrains how state variables may enter drift, covariance, and jump intensity. The resulting model is a compromise between realistic dynamics and a pricing engine that can be calibrated daily.

State dynamics and transform property

Let Xt be a Markov state in an admissible domain. An affine jump-diffusion has an infinitesimal generator whose drift, covariance matrix, and jump compensator are affine functions of Xt. Its conditional transform takes the form:

E[exp(u' X_T) | F_t] =
exp(A(T-t,u) + B(T-t,u)' X_t)

The functions A and B solve generalized Riccati ordinary differential equations. Instead of solving a high-dimensional PDE at every strike, solve those ODEs for transform arguments and invert the characteristic function.

Design choiceBenefitCost
CIR-like variancepositive mean reversionboundary behavior
Correlated returns/varianceleverage skewtransform branch care
State-independent jumpssimple event tailslimited clustering
State-dependent intensitystress-responsive jumpsharder admissibility

The familiar Heston model is affine without jumps. Adding compound Poisson log-price jumps, or variance jumps, often preserves affinity if jump transform terms enter correctly.

A Heston-style jump specification

A representative risk-neutral model is:

d log S_t = (r-q-0.5 v_t-lambda kappa_J)dt
            + sqrt(v_t)dW_t^S + J dN_t
dv_t = kappa(theta-v_t)dt + xi sqrt(v_t)dW_t^v
d<W^S,W^v>_t = rho dt

Nt is Poisson with intensity lambda, J is a log jump, and kappaJ = E[exp(J)-1]. The compensator prevents expected jumps from changing the risk-neutral forward. Omitting it can still generate a visually reasonable smile while violating put-call parity through the wrong forward.

def jump_compensated_drift(r, q, jump_intensity, exp_jump_minus_one):
    return r - q - jump_intensity * exp_jump_minus_one

Variance positivity needs more than a code comment. The Feller condition 2kappatheta >= xi**2 is sufficient for strict positivity in the diffusion-only CIR process, but calibration can violate it and still be usable with a scheme designed for the boundary. Naive Euler steps that allow negative variance are not acceptable.

Riccati equations are a numerical model component

For each complex transform argument, the Riccati system has terms from drift, covariance, and jumps. Closed-form formulae exist for common Heston jumps, but branch choices in complex logarithms and square roots can introduce discontinuities in the characteristic function. Prefer a tested “continuous branch” implementation or integrate the Riccati ODE robustly; compare both on a regression grid.

ValidationWhat it protects
phi(0)=1transform normalization
forward from phi(-i)martingale consistency
quadrature vs FFTgrid aliasing
simulation spot checktransform implementation
parameter perturbationscalibration stability

Price errors at a few basis points can become large delta or vega errors near short maturities. Report convergence of prices and Greeks in integration cutoff, node count, and ODE tolerance.

Calibration: fit the information content

Calibrate to mid or executable option prices with weights reflecting bid-ask spreads and vega. Include the equity forward and dividend curve, not just implied volatilities. A model that ignores a discrete dividend may twist jump intensity or variance parameters to repair an input-data error. Use constraints that enforce admissibility and economically sensible scales, but avoid over-constraining to a preferred story.

Jumps usually explain short-maturity wings and event dates; stochastic variance explains term-structure persistence. These effects can be weakly identified when only a few strikes trade. Use parameter regularization across dates, retain previous solutions as optimizer starts, and monitor parameter moves relative to quote changes.

Use in risk systems

Affine models excel for vanilla books and scenario grids because transforms are fast. They are less effortless for barriers, cliquets, and American claims, where simulation or a PIDE is needed. Exact or high-quality variance sampling, jump timing, and conditional path construction become material. For American products, connect the pricing engine to American options and early exercise, not a European calibration routine.

Compare the base diffusion against Heston stochastic volatility and simple discontinuities against jump-diffusion models. The extra jump layer earns its complexity only when it improves hedging or event-risk management after costs.

Key takeaways

  • Affinity delivers exponential-affine transforms through Riccati equations.
  • Jump compensators and variance-boundary schemes are essential, not implementation details.
  • Fast Fourier prices require independent numerical and martingale checks.
  • Jumps and stochastic variance can be poorly identified from a sparse surface.
  • Choose affine jump models for tractable dynamic risk, then evaluate their hedge outcomes.
#affine jump diffusion #stochastic volatility #option pricing #characteristic functions