Eigenliquidity Cross-Impact + MPC Slippage Controller Playbook
TL;DR
If you execute a correlated basket using independent single-name slippage models, you systematically underprice tail cost.
A practical upgrade is:
- Model cross-impact in a no-dynamic-arbitrage-consistent matrix form,
- Diagonalize into eigen-liquidity modes (risk factors you actually push),
- Run a constrained MPC controller that minimizes expected impact + risk + completion penalty under live participation/latency constraints.
This turns execution from “name-by-name urgency heuristics” into a state-aware portfolio control problem.
1) Why this matters
Real execution flow is coupled:
- trading AAPL moves MSFT/QQQ microprices,
- index/factor modes propagate costs across names,
- urgency in one leg can damage markout in the rest.
Common failure pattern in production:
- per-symbol models look calibrated,
- basket-level q95/q99 slippage still explodes during factor-driven moves.
Root cause: the controller optimizes per name, while the market charges by shared liquidity modes.
2) Core modeling frame
Let:
- (x_t \in \mathbb{R}^N): residual shares to execute (signed),
- (u_t \in \mathbb{R}^N): child trade vector at step (t),
- (\Sigma_t): intraday covariance estimate,
- (\Lambda_t): cross-impact matrix (instantaneous + transient components).
Inventory dynamics:
[ x_{t+1} = x_t - u_t ]
One-step cost (simplified):
[ \mathcal{L}t(u_t)=u_t^\top \Lambda_t u_t + \gamma,x{t+1}^\top \Sigma_t x_{t+1} + \eta,|x_{t+1}|_1 ]
where:
- first term = impact cost,
- second = risk of carrying residual inventory,
- third = completion pressure / deadline penalty.
3) No-arbitrage sanity constraints for cross-impact
Before optimization, reject unstable impact estimates.
Practical constraints (from no-dynamic-arbitrage literature):
- impact operator should be approximately symmetric in cross terms (after fee/spread frictions),
- odd/monotone response to signed flow,
- positive semidefinite quadratic form for round-trip non-negativity.
Engineering rule:
- fit raw (\hat\Lambda),
- project to nearest PSD symmetric matrix under shrinkage,
- log projection distance as model-health telemetry.
If projection distance spikes, drop to safer execution mode.
4) Eigenliquidity decomposition (the useful basis)
Directly optimizing in name space is noisy and unstable.
Use covariance eigenbasis:
[ \Sigma_t = V_t D_t V_t^\top ]
Rotate residual and trade vectors:
[ \tilde{x}_t = V_t^\top x_t,\quad \tilde{u}_t = V_t^\top u_t ]
In this basis, the dominant few modes capture most risk and cross-impact pressure (market mode, sector modes, etc.).
Benefits:
- dimensionality reduction,
- smoother control in stressed regimes,
- interpretable routing: “you are over-pushing mode 1 (market beta), reduce synchronous aggression.”
5) State-dependent impact kernel
Static (\Lambda) is not enough. Use regime-conditioned impact:
[ \Lambda_t = \Lambda(z_t) ]
with regime features (z_t):
- spread percentile,
- depth elasticity,
- cancellation burst intensity,
- microprice drift,
- auction/session proximity,
- venue health / latency jitter.
A simple deployable variant:
- 3-state HMM or threshold state machine:
CALM / TILTED / STRESSED, - separate (\Lambda^{(s)}), participation caps, and urgency penalties per state.
6) MPC controller (receding horizon)
At each decision step, solve over horizon (H):
[ \min_{u_{t:t+H-1}} \sum_{k=t}^{t+H-1} \mathcal{L}k(u_k) + \rho,|x{t+H}|_2^2 ]
subject to hard constraints:
- side consistency (no unintended sign flip),
- per-name and portfolio participation caps,
- child notional limits,
- venue throttles / order-rate limits,
- completion constraint by deadline.
Execute only the first action (u_t^*), observe new state, then re-solve.
Why MPC over one-shot schedule:
- naturally handles updated features/regimes,
- handles positivity and rate constraints cleanly,
- avoids oscillation from naive post-hoc clipping.
7) Control-state mapping (operator-friendly)
GREEN
- near-benchmark participation,
- cross-mode coupling stable,
- allow passive skew.
AMBER
- rising mode concentration + impact drift,
- tighten per-mode caps,
- shorten passive timeout, increase staggering.
RED
- stressed liquidity + elevated model projection distance,
- hard cap on dominant-mode aggression,
- prioritize completion feasibility over alpha finesse.
SAFE
- data quality or exchange instability,
- minimal probing only or temporary pause,
- deterministic fallback schedule.
8) Calibration workflow
- Data contract (decision-level):
- full basket intent,
- synchronized order book/prints snapshots,
- child-level fills/cancels/latency,
- markouts by horizon.
- Estimate intraday (\Sigma_t) (robust rolling + shrinkage).
- Estimate raw cross-impact matrix from signed flow-response pairs.
- Enforce PSD/symmetry projection and store diagnostics.
- Fit state-conditioned (\Lambda^{(s)}) and transient decay parameters.
- Backtest with chronological replay:
- baseline schedule vs eigen-MPC,
- compare mean, q90, q95, q99 shortfall + completion risk.
9) Production metrics that actually catch failure early
mode_concentration: share of planned flow in top-k eigen modes,impact_projection_distance: raw vs PSD-projected (\Lambda) gap,cross_impact_residual: realized - predicted cross-name move,tail_budget_burn: cumulative realized slippage / allowed tail budget,completion_risk_nowcast: probability of deadline miss,controller_flip_rate: state changes per hour (anti-chatter signal).
Trigger policy examples:
- high projection distance + high flip rate → freeze adaptation speed,
- tail-budget burn > threshold → AMBER→RED escalation,
- completion-risk spike near close → controlled aggression ramp.
10) Minimal implementation blueprint
Runtime loop (every (\Delta t))
- Ingest basket residuals + microstructure features.
- Update regime (z_t), (\Sigma_t), and (\Lambda_t).
- Rotate to eigen basis; compute mode-wise pressure.
- Solve constrained MPC (QP/NLP depending on kernel choice).
- Emit first-slice orders with venue-aware throttles.
- Persist full decision tuple for TCA + retraining.
Decision tuple schema (must-log)
- timestamp, basket id, residual vector,
- regime/state and confidence,
- (\Sigma_t), (\Lambda_t) diagnostics,
- planned vs clipped action,
- rejected constraints and reason codes,
- realized slippage/fill/markout outcomes.
11) Common mistakes
- Cross-impact estimated on unsynchronized clocks → fake lead/lag.
- No PSD projection → optimizer exploits impossible arbitrage geometry.
- Controller ignores venue throttles → simulated optimal, live rejected.
- Single global participation cap only → dominant factor mode still over-traded.
- No fallback policy when features are stale or feed gaps appear.
12) Where this helps most
High ROI contexts:
- index/sector baskets,
- rebalance windows,
- close-auction residual handling,
- correlated stat-arb unwinds,
- stress sessions where factor moves dominate name-specific alpha.
Lower ROI:
- tiny single-name flow with weak cross-coupling,
- ultra-short pure MM loops with negligible inventory horizon.
Closing
Single-name execution logic breaks when liquidity is priced in shared factors.
Eigenliquidity + MPC gives a deployable path to:
- respect cross-impact structure,
- control tail slippage under constraints,
- keep completion probability sane near deadlines.
In short: optimize what the market actually charges you for—modes, not symbols.
References
- Gatheral, J. (2010). No-Dynamic-Arbitrage and Market Impact. Quantitative Finance 10(7), 749–759. https://doi.org/10.1080/14697680903373692
- Schneider, M., & Lillo, F. (2017/2019). Cross-impact and no-dynamic-arbitrage. arXiv:1612.07742. https://arxiv.org/abs/1612.07742
- Mastromatteo, I., Benzaquen, M., Eisler, Z., & Bouchaud, J.-P. (2017). Trading Lightly: Cross-Impact and Optimal Portfolio Execution. arXiv:1702.03838. https://arxiv.org/abs/1702.03838
- Benzaquen, M., Donier, J., & Bouchaud, J.-P. (2020). How to build a cross-impact model from first principles. arXiv:2004.01624. https://arxiv.org/abs/2004.01624
- Clinet, S., Perreton, J.-F., & Reydellet, S. (2021). Optimal trading: a model predictive control approach. arXiv:2110.11008. https://arxiv.org/abs/2110.11008
- Cartea, Á., Jaimungal, S., & Penalva, J. (2015). Algorithmic and High-Frequency Trading. Cambridge University Press.
- Obizhaeva, A., & Wang, J. (2013). Optimal Trading Strategy and Supply/Demand Dynamics. Journal of Financial Markets, 16(1), 1–32. https://doi.org/10.1016/j.finmar.2012.09.001