Pyramid Quote Lab

A market maker posts stacked buy and sell orders around the price and earns the gap. Move the sliders to see how quote width, ladder depth and risk aversion change fills, inventory and profit. Volatility is calibrated to Liquid's live NASDAQ‑100 reading (ATR 83.34 pts/hour at 30,911). Prices are simulated.

Final P&L–
Fills–
Max |inventory|–
Avg half‑spread (pts)–

Time paused (not quoting): –. Grey bands on the charts below mark volatility storms.

The quote pyramid

A 5‑minute window. Each line is one resting order level; triangles are fills.

Mid priceAsk ladder / we soldBid ladder / we bought

Inventory and quote skew

When the bot is short, it moves quotes up to buy back. When it is long, it moves them down to sell.

Inventory (units)Skew: reservation − mid (pts)

Running profit and loss

Cash plus inventory valued at the mid price, over two simulated hours.

Profit vs quote width

Press “Run width sweep” to average 5 seeds at each width with the current settings.

Profit surface

Average final P&L over a grid of two settings, 3 random runs per point. A broad plateau suggests a real edge; a lone spike is probably luck. Drag to rotate.

Out-of-sample test data

Your chosen settings (4× width, 7 levels, taper 0.6, γ 0.54) run on 50 price paths this page never uses (seeds 1000–1049). Every run is listed below. Click a column header to sort.

Model: stationary Avellaneda‑Stoikov. Reservation price r = mid − q·γ·σ²/κ; half‑spread δ = γσ²/(2κ) + (1/γ)·ln(1+γ/κ), with κ = 1.5 and σ the rolling 5‑minute volatility. Fills come from price moving through a quote (informed flow) or from random arrivals at rate A·e^(−κ·distance). Latency and queue position are not modelled.