OUTCRY
4 of 4 runs leftEnter arcade

← Guide BookPlay it

Finance Lab · Market Maker

Market Maker Strategy Guide

Quote bid and ask around a random-walking fair value for 10 rounds, computing Avellaneda-Stoikov reservation prices while informed flow tries to pick you off.

Market Maker in play on Outcry
Market Maker, in play.

What is market making?

A market maker is a participant who continuously quotes both a price to buy (the bid) and a price to sell (the ask) for an asset, standing ready to trade either side on demand. Instead of trying to predict which way the price will move, a market maker profits from the gap between the two quotes, the bid-ask spread, collected over a large number of trades in both directions. It is a different business from directional trading; the goal is to trade often and stay close to flat.

The spread compensates the market maker for two distinct risks. The first is adverse selection: some counterparties trade because they know something the market maker does not, such as news about to move the price. Trading with a better-informed counterparty is, on average, a losing trade for the market maker, so the spread has to be wide enough that the profits from uninformed, ordinary flow outweigh the losses from occasionally trading with someone who knew better. This idea - that the spread functions as insurance against informed trading - is a foundational result in market microstructure economics.

The second risk is inventory risk: every filled order leaves the market maker holding a position, long or short, that is now exposed to the market moving against it before it can be unwound. A market maker manages this by skewing quotes - making it cheaper to trade in the direction that reduces the position and more expensive to trade in the direction that grows it - and by widening the spread when uncertainty or remaining time to unwind is high. Formal models such as Avellaneda-Stoikov make this precise, deriving an optimal quote center and spread width as functions of current inventory, volatility, and time remaining.

Because someone has to be willing to trade immediately, in either direction, at a fair price for markets to function at all, market making is what supplies liquidity to everyone else - it is why an ordinary buyer or seller can execute a trade right now instead of waiting for a matching counterparty to show up. Modern electronic market making, done by specialized trading firms across virtually every liquid market, is the direct descendant of this same function, now automated and run at high speed but governed by the same tradeoff between spread income, adverse selection, and inventory risk.

How it works

You pick a stake ($5 to $50 per tick of P&L against a $100 bankroll) and make markets for 10 rounds around a fair value that starts at 100. Each round a hidden truth is generated before you act: with probability 0.35 the flow is informed - it already knows fair value is about to move 2 ticks in its favour - and otherwise it is noise flow with a random 1-tick background move. When a round is informed, there is a 55% chance you are shown a tip (informed BUYING or SELLING likely); otherwise the round reads quiet.

Each round has two checkpoints before your quote goes out. First you compute the Avellaneda-Stoikov reservation price r = fair - q x gamma x sigma^2 x (T - t), with gamma = 1, sigma = 1.5, your current inventory q, and T - t the fraction of the session remaining; you type r and the game checks it to within 0.15 ticks, then reveals the optimal spread delta = gamma sigma^2 (T - t) + (2/gamma) ln(1 + gamma/kappa) with kappa = 1, and sets your half-spread and skew from the model. Second, you answer one quiz question drawn from a bank tied to the live round - expected value per fill or per round, the adverse-selection breakeven, which way to skew on a signal or an inventory position, flatten cost, put-call parity, straddle pricing, or hedging cost.

Then the quote resolves. Wider half-spreads fill less often (fill probability is 1 - 0.2 per tick of half-spread beyond 1, floored at 20%). If filled, a buy-side counterparty lifts your ask at fair + half + skew (you go short one unit) or a seller hits your bid at fair - half + skew (you go long one). Fair value then moves by the round's truth, inventory is marked to market every round, and at the end - or earlier, via the flatten-and-cash-out button - remaining inventory is closed at a cost of 0.5 ticks per unit.

How scoring works

Your P&L in ticks is cash plus inventory marked at fair (cash starts at 0), minus the 0.5-tick-per-unit flatten cost at settlement. Dollar P&L is ticks times your chosen stake, the session banner shows profit or loss against the $100 bankroll, and the leaderboard records your dollar P&L rounded to the nearest dollar - profit, not final bankroll.

The reservation-price and quiz answers gate the round's flow (you must answer to proceed) but are checked for learning; the game's P&L comes from the quotes themselves.

Adverse selection sets the floor under your spread

Every fill is a trade against someone who chose to trade with you, and 35% of the time that someone knows the price is about to move 2 ticks their way. Your expected P&L per fill is half-spread + skew - P(informed) x informed move = half + skew - 0.7 ticks. So 0.7 ticks is the breakeven half-spread against informed flow alone: quote tighter with no skew and each fill loses money on average.

This is the Glosten-Milgrom insight in miniature - the bid-ask spread is the insurance premium a market maker charges for trading with potentially better-informed counterparties. The noise trades at your spread pay for the informed trades that run you over, and the spread must be wide enough for the arithmetic to net positive.

There is a trade-off on the other side: each tick of half-spread costs 20 points of fill probability. Expected P&L per round is P(fill) x (half + skew - 0.7), and with the game's numbers that expression rewards a moderate spread over an ultra-wide one - a quote that never fills earns nothing, and the model's own delta already balances edge per fill against fill frequency plus inventory risk.

The Avellaneda-Stoikov quote: inventory moves your centre, time shrinks it

The reservation price r = s - q gamma sigma^2 (T - t) is the price at which you would be indifferent to buying or selling given the inventory you hold. Flat (q = 0): r equals fair, no lean. Long one unit early in the session (q = +1, T - t = 1, gamma = 1, sigma = 1.5): r = fair - 2.25, a hefty downward lean - your whole quote slides down so selling becomes easy and buying becomes unattractive, working you back toward flat. Short inventory mirrors it upward.

Each piece of the formula is intuition you should be able to narrate. q scales the lean because more inventory means more risk to unwind. sigma^2 scales it because inventory in a jumpier asset is more dangerous per round held. (T - t) scales it because risk is proportional to remaining holding time - by the last round there is almost no time for a position to hurt you, so the lean vanishes. The optimal spread has the same time-decaying inventory term plus a floor, (2/gamma) ln(1 + gamma/kappa), that compensates execution and adverse-selection risk and never decays - the spread shrinks toward the floor as the horizon approaches, never to zero.

For the typed check each round, the fast mental routine is: gamma sigma^2 = 2.25, so r = fair - 2.25 x q x (T - t). With q = -2 in round 6 of 10 (T - t = 0.5): r = fair + 2.25, done. Getting this reflexive is the point - the game is drilling the closed-form quote model interviews name.

Read the signal, respect the base rates

The tip structure is a small Bayes exercise. Signals only ever come from informed rounds (55% of them tip their hand), so a BUY or SELL tip is fully reliable about direction: informed flow is coming and fair value will move 2 ticks that way. The model quote does not see the signal, so the signal is your context for interpreting fills - a fill against a tip is expensive, and the quiz's signal-skew question teaches the defence: on a BUY lean, shift both prices up, so an informed buyer who lifts your ask pays closer to where price is going, and your lowered-attractiveness bid keeps you from buying into a rally.

A quiet round is not a safe round. No signal means either noise (probability 0.65) or informed-but-undetected (0.35 x 0.45 = 0.1575), so about one quiet round in five is still informed. That residual 0.7-tick expected adverse-selection cost is what the spread's floor term covers.

Inventory management is the other half. Mark-to-market P&L hides the exit cost: every unit you carry to settlement costs 0.5 ticks to flatten. The reservation-price lean works positions off automatically, but watch the round track - a run of same-side fills means you are accumulating, and the flatten-and-cash-out option is there for sessions where the P&L is good and the inventory has piled up.

A worked example

  1. Round 4 of 10, fair value = 101, and you're long 2 units from earlier fills:

    fair=101,q=+2,γ=1,σ=1.5\text{fair}=101,\quad q=+2,\quad \gamma=1,\quad \sigma=1.5
  2. Time remaining in the 10-round session:

    T−t=1−310=0.70T-t = 1-\frac{3}{10}=0.70
  3. The Avellaneda-Stoikov reservation price:

    r=fair−qγσ2(T−t)=101−2(1)(1.5)2(0.70)=101−3.15=97.85r = \text{fair} - q\gamma\sigma^2(T-t) = 101 - 2(1)(1.5)^2(0.70) = 101-3.15 = 97.85
  4. The optimal spread, and the resulting half-spread:

    δ=γσ2(T−t)+2γln⁡ ⁣(1+γκ)=2.25(0.70)+2ln⁡2=1.575+1.386=2.96,half=1.48\delta = \gamma\sigma^2(T-t) + \frac{2}{\gamma}\ln\!\left(1+\frac{\gamma}{\kappa}\right) = 2.25(0.70)+2\ln 2 = 1.575+1.386 = 2.96, \qquad \text{half}=1.48
  5. Bid and ask sit around the reservation price, both below fair because the model is trying to sell your long position:

    bid=97.85−1.48=96.37,ask=97.85+1.48=99.33\text{bid} = 97.85-1.48=96.37, \qquad \text{ask}=97.85+1.48=99.33
  6. Quiz check - expected P&L per fill, with skew = r - fair = -3.15 and 35% informed flow moving 2 ticks:

    half+skew−0.35(2)=1.48−3.15−0.70=−2.37 ticks\text{half}+\text{skew}-0.35(2) = 1.48-3.15-0.70=-2.37 \text{ ticks}
  7. The round resolves: a counterparty lifts your ask at 99.33, taking you from +2 to +1 units, while the truth turns out to be noise and fair drifts down:

    q:+2→+1,fair:101→100q: +2 \to +1, \qquad \text{fair}: 101 \to 100

Common mistakes

• Ignoring adverse selection when judging a fill. With 35% informed flow moving 2 ticks, a fill is worth half + skew - 0.7 in expectation - a tight quote can fill often and still bleed.

• Fumbling the reservation-price sign. Long inventory pushes r below fair (you want to sell), short pushes it above. Writing r = fair + q... instead of minus is the classic slip the typed check catches.

• Forgetting (T - t) in the formula. The lean and the inventory part of the spread both decay linearly toward the horizon; using the round-1 lean in round 9 badly over-skews.

• Treating mark-to-market as banked P&L. Every unit held at the end costs 0.5 ticks to flatten, so a green MTM with a big position overstates what you will settle at.

• Reading a quiet signal as 'no informed flow'. Undetected informed rounds are about 16% of all rounds - the spread floor exists because the tip only fires 55% of the time.

Why interviews test this

Market-making interviews at trading firms lean on this material. 'Make me a market' questions test whether you widen for uncertainty and skew for inventory; adverse-selection questions ('why is there a bid-ask spread?', 'what happens if you quote too tight?') are the breakeven arithmetic this game's quiz drills; and Avellaneda-Stoikov is the model quant-trading and e-trading desks name when they ask how optimal quotes should respond to inventory, volatility, and time to close.

The quiz bank doubles as flash cards for adjacent staples - put-call parity (c - p = S - K, so at-the-money call equals put), straddle pricing as call plus put, and the fact that hedging costs eat into captured edge. Being able to compute r and delta mentally, and to explain each term's economics, is a strong signal in any options or delta-one market-making interview.

Play Market Maker on Outcry

Market Maker is free to play on Outcry, in the Finance Lab section, and every run is timed and scored. Read the guide once, then play Market Maker and check your score against the strategy above. The guide book has a written guide for every other game, and the practice hub and mock assessments put the same skills under a real screen's clock.