Trading Dev AcademyFree quant education

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.

U(q)=qm−γ2q2σ2H,rq=∂U∂q=m−γqσ2H
Model assumptions, derivation and arithmetic

Inventory-aware quoting and economic edge development

  1. Inventory value is qm. Under this toy model inventory variance over horizon H is q²σ²H.
  2. Subtract γ/2 times that variance as a risk penalty.
  3. Differentiate in q: derivative of qm is m and derivative of q²/2 is q. The resulting marginal value falls as long inventory grows.
Work it by hand

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
  1. HFT economics and the information-to-fill timeline
  2. Order-book features: imbalance, microprice and event flow
  3. Volume clocks, trade imbalance and VPIN
  4. Queue position, fill probabilities and adverse selection
  5. Inventory-aware quoting and economic edge development
  6. Event-driven backtesting and order lifecycle correctness
  7. HFT research promotion, drift and operating limits

Quantitative finance and development glossary · Python resources and libraries · Research sources and limitations