Expand description
Infinite-horizon Avellaneda-Stoikov market making in inventory space.
This is a validating instance of the ergodic stationary path
(crate::numeric::ergodic). It is deliberately not an
crate::numeric::finite_difference::elliptic::EllipticControlProblem:
the undiscounted market-making HJB is translation invariant and has no
unique solution of sup_u { f + L^u V } = 0. Its exact
T -> infinity limit is the principal eigenvector of the GLT operator.
§Problem and conditions
State: inventory q in Z. Control: bid/ask half-spreads
(delta_b, delta_a). Fill intensities are
lambda_b = a exp(-kappa delta_b)
lambda_a = a exp(-kappa delta_a)The finite-horizon CARA value reduces to theta(t, q); see
docs/src/reference/soc_exact.md.
§Exact solution
Let v_q = exp(kappa theta_q). The GLT substitution gives the linear
system
v_q_t = alpha q^2 v_q - eta (v_{q-1} + v_{q+1})
alpha = (kappa / 2) gamma sigma^2
eta = a (1 + gamma/kappa)^-(1 + kappa/gamma)As T -> infinity the solution concentrates on the principal (Perron)
eigenvector of the negated operator, assembled here as
A_qq = -alpha q^2, A_{q,q+1} = A_{q,q-1} = +etaThe eigenvector is normalized by theta(0) = 0:
theta(q) = (1/kappa) ln(v_q / v_0)Optimal stationary spreads are recovered as
delta_b = base + theta(q) - theta(q+1)
delta_a = base + theta(q) - theta(q-1)
base = (1/gamma) ln(1 + gamma/kappa)See crate::analytical::avellaneda::approximations::gueant::AvellanedaGueant
for the reference implementation used in tests.
Structs§
- Stationary
Avellaneda - Infinite-horizon Avellaneda-Stoikov market making model in inventory space.