solver
The optimization layer: it solves Hamilton-Jacobi-Bellman (HJB) equations for optimal-control problems, with a focus on market making.
This page indexes the implementations against their canonical mathematics. Per the ownership rule, exact solutions and mathematical background live in the mathematical reference, not here: solver pages document implementation (contracts, configuration, usage) and link back to the reference for the mathematics they realize. The single exception is the neural theory section, which carries its own method theory.
Implementation-to-solution index
Each exact solution is stated once in the reference; the table maps the code that realizes it to that statement. The stochastic-optimal-control closed forms are on the SOC page; the pure PDE benchmarks (parabolic and elliptic) are on the PDE page. The SOC models without a closed form (Heston, Hawkes, and their combinations) are stated on SOC Models Without Exact Solutions.
Analytical solutions
| Implementation | Solves | Canonical result |
|---|---|---|
AvellanedaExact | AS HJB (\(\mu=0\), \(\xi=0\), constant \(\sigma\)) | matrix exponential (finite horizon) |
AvellanedaDriftExact | AS HJB + price drift (\(\mu\neq 0\)) | drift extension |
AvellanedaImpactExact | AS HJB + permanent impact (\(\xi\neq 0\)) | impact extension |
AvellanedaGueant | AS HJB, infinite horizon | stationary limit |
AvellanedaStoikovApprox | AS HJB near maturity | matrix-exponential small-\(\tau\) limit |
StationaryAvellaneda | AS HJB, infinite horizon (eigenpair) | Perron-Frobenius |
Optimal-control models (ControlProblem<N>)
| Model | State | Canonical result |
|---|---|---|
AvellanedaStoikov | \((q)\) | reduced PDE |
AvellanedaDrift | \((q)\) | drift extension |
AvellanedaImpact | \((q)\) | impact extension |
AvellanedaHawkes | \((q,\lambda)\) | Hawkes extension |
BilateralHawkes | \((q,\lambda^a,\lambda^b)\) | Hawkes extension |
BilateralHawkesOFI | \((q,\lambda^a,\lambda^b)\) | order-flow imbalance |
Heston | \((q,\nu)\) | Heston extension |
HestonHawkes | \((q,\nu,\lambda)\) | Heston + Hawkes |
AmericanPut | \((S)\) | American put |
Merton | \((x)\) | Merton portfolio |
MertonJump | \((x)\) | Merton, deterministic jumps |
MertonJumpLognormal | \((x)\) | Merton, log-normal jumps |
LqRegulator | \((x \in \mathbb{R}^n)\) | LQ regulator |
LqRegulatorJump | \((x)\) | LQ with Poisson jumps |
Numerical solvers
- Finite Difference — policy iteration on a grid, validated against the exact solutions above under grid refinement.
- PDE Solving Methods — the transport/source contract and dimension kinds.
- Elliptic PDE Solving Methods — the stationary path; its benchmark exact solutions are on the PDE page.
- BSDE Solver — least-squares Monte Carlo.
- N-Dimensional Models — the
ControlProblem<N>contract. - Economic Invariants — qualitative sign/ordering/symmetry checks.
Analytical solutions
The closed-form Avellaneda-Stoikov quotes are the reservation price and half-spread
\[r(s,q,t) = s - q\gamma\sigma^2(T-t), \qquad \delta(t) = \frac{\gamma\sigma^2(T-t)}{2} + \frac{1}{\gamma}\ln\Big(1 + \frac{\gamma}{k}\Big),\]
the small-\(\tau\) (near-maturity) limit of the exact solution in
the SOC page. They serve two purposes:
validating the numerical solvers, and driving the engine
AvellanedaStoikovStrategy. The exact (matrix-exponential) form is
AvellanedaExact.
Neural methods
The neural_solver package implements GPU-native BSDE and HJB methods in JAX
and is validated against the analytical and numerical references above. See
Neural Methods.