Free lesson · HFT & microstructure
Inventory-aware quoting and economic edge development
Open interactive lessonPractice calculationsExplore labs
Start with the idea
A market maker manages both quote attractiveness and inventory. A fill can improve revenue while making the portfolio less desirable. Inventory should therefore affect the marginal value of another buy or sell.
Symbols, units & horizon
- q: inventory in units of the asset
- m: current midpoint in currency/unit
- σ²: absolute price variance rate, currency²/unit²/time
- H: risk horizon in matching time units
- γ: risk penalty scaled so U is in currency
- U: marked utility approximation
- r_q: marginal reservation value per additional unit
- ∂: derivative holding m, variance and horizon fixed
When and why to use this
Use this marginal-value view to understand how a forecasting signal and inventory control enter different parts of a quoting policy.
Begin with a marked value and a quadratic inventory penalty over a chosen risk horizon. The marginal inventory penalty shifts the price at which an additional unit is attractive. This motivates a reservation price; it is not a universal optimal quote formula.
A long inventory tilts quotes downward to discourage more buys and encourage sales. Spread width also depends on arrival intensity, fees, volatility, minimum tick and adverse selection. The Avellaneda–Stoikov family formalises some of these trade-offs under stylised assumptions; calibrate and test the assumptions before adopting a closed-form rule.
Develop edge by isolating mechanisms: a better short-horizon fair-value estimate, better fill selection, better inventory hedging or lower latency at a justified cost. Ablate each component at matched inventory limits. Higher P&L caused only by taking larger directional risk is not improved liquidity provision.
Inventory-aware quoting and economic edge development
- Inventory value is qm. Under this toy model inventory variance over horizon H is q²σ²H.
- Subtract γ/2 times that variance as a risk penalty.
- Differentiate in q: derivative of qm is m and derivative of q²/2 is q. The resulting marginal value falls as long inventory grows.
m=100, γ=.1, q=5 and σ²H=.04 give r_q=100−.1×5×.04=99.98. Short inventory −5 instead gives 100.02. Quote placement still needs tick and execution rules.
Apply it in a strategy
- Start with an at-best or fixed-spread baseline and a hard inventory bound.
- Add a reservation-price skew, then separately add predictive features and fill filters.
- Compare net marked P&L, inventory variance, drawdown and hedge cost under changing flow regimes.
Research deliverable
Show a matched-risk ablation: baseline, inventory skew, alpha signal and combined policy, with separate spread and directional P&L.
Python implementation
Self-contained teaching example. Python 3.10+; dependencies and input conventions are shown in the code and notation. Run in your own Python environment.
def reservation_price(mid,inventory,risk_penalty,price_variance,horizon):
if min(risk_penalty,price_variance,horizon)<0: raise ValueError("Nonnegative risk inputs required")
return mid-risk_penalty*inventory*price_variance*horizon
print(reservation_price(100,5,.1,.04,1))Continue learning
High-Frequency Trading: Signals, Queues & Execution — all lessons- HFT economics and the information-to-fill timeline
- Order-book features: imbalance, microprice and event flow
- Volume clocks, trade imbalance and VPIN
- Queue position, fill probabilities and adverse selection
- Inventory-aware quoting and economic edge development
- Event-driven backtesting and order lifecycle correctness
- HFT research promotion, drift and operating limits
Quantitative finance and development glossary · Python resources and libraries · Research sources and limitations