Market Making 101: How to Get Paid for Being Patient
A practical tutorial on passive market making — the trading method where you never predict the market, never chase a chart, and earn your money from the width of the spread. Written for engineers and curious traders. Educational only; nothing here is financial advice.
1. The fruit stand#
Imagine a currency-exchange booth at an airport. It buys euros at 1.05 and sells them at 1.09. It has no opinion about where the euro is going. It doesn’t need one. It earns the gap — the spread — every time a traveller walks up from either direction.
That booth is a market maker. On an exchange, you are the booth: you place a bid (an offer to buy) slightly below the current price and an ask (an offer to sell) slightly above it, and you wait. When an impatient trader crosses the spread to trade with you, you earn roughly half the spread. When another impatient trader later crosses the other way, you earn the other half and you’re flat again. One full cycle — buy low at your bid, sell high at your ask — is called a round trip, and its gross profit is the spread itself.
That’s the entire business model. Everything else in this tutorial is about the four ways this simple idea goes wrong, and how disciplined makers survive them.
2. The first rule: never trust your own mirror#
The “current price” on the exchange where you quote is partly made of your own orders. If you place a bid and then compute the market’s midpoint, your bid has moved it. Price your next quote from that midpoint and you are now trading against your own reflection — a loop that has bankrupted more than one amateur bot.
Professional makers anchor to an external fair value: the same asset’s price on other, bigger venues where they are not quoting. Your home exchange tells you where you are; the outside world tells you what the thing is worth. Two consequences:
-
Never quote an instrument that trades nowhere else. With no external reference, a wide spread isn’t an opportunity — it’s the absence of anyone who knows the price. You’d be the only “expert” in the room, and the first informed trader who shows up will school you.
-
Always subtract your own resting orders from any view of the order book before making decisions from it.
3. The enemy: adverse selection#
Here is the uncomfortable truth that separates market making from free money:
The trader who chooses to trade with you knows something you might not.
If someone lifts your ask a second before the price jumps up, you sold exactly the wrong moment — to someone faster or better informed. This is adverse selection, and it is the tax every maker pays. Your business is profitable only if the spread you collect from uninformed flow (people who just want to buy or sell now) exceeds what the informed flow takes from you.
Because of this, the only honest scoreboard for a maker is not daily P&L — it is the markout: for every fill, compare your fill price to the fair value some fixed time later (say, 60 seconds).
-
Bought at 100.00, fair value a minute later 100.05 → +5 markout: the market came to you. Good fill.
-
Sold at 100.00, fair value a minute later 100.40 → −40 markout: you were picked off.
Average your markouts over many fills, with a confidence interval. That number is your edge. P&L on any given day is mostly noise — inventory luck riding market swings.
4. Inventory: the risk you’re actually carrying#
To sell, you must hold some of the asset. So a maker always carries inventory, and inventory silently converts you into a small directional trader whether you like it or not. Split every day’s result into two ledgers:
- Alpha — spread actually captured by making markets. This is the business.
- Beta — the mark-to-market swing of whatever inventory you held while the price moved. This is the weather.
A green trending day is, counterintuitively, a bad day at the office for a maker: your asks get lifted again and again while the price runs away above them (every sale instantly underwater versus the market), and your bids never fill. The holders celebrating that candle carry the mirror risk — they also eat the full red days. You chose a different trade: small, steady, direction-free. Respect the choice by managing inventory:
- Cap the position per instrument and in total.
-
Skew your quotes: when long, shade both quotes down so selling gets likelier and buying less likely; the reverse when short.
-
Give a stuck position an escape hatch: after enough time, exit at fair value rather than clinging to your entry price. A “never sell at a loss” rule is how makers become bag holders.
-
Stand aside during violent moves. If the price moved several times your spread within the hour, your spread does not pay for that risk. Pull quotes, let the storm pass, return when it calms. Missing a pump costs nothing; being the exit liquidity of one costs plenty.
5. The costs nobody mentions#
Run the arithmetic before you run a bot. All of these are per round trip:
| Cost | Where it hides |
|---|---|
| Maker fee | Many venues charge 10–25 bps at retail tiers — instantly fatal to a 5 bps spread. Some charge zero. This single number decides which venues are even playable. |
| Price rounding | If the venue settles to the nearest cent, a $50 order loses up to 2 cents per round trip = 4 bps. Tiny orders magnify this brutally; it may quietly be your largest cost. |
| Adverse selection | The markout tax from §3 — measurable only after the fact. |
| Rate limits | Venues cap orders per day. Your revenue is fills × size × edge, and fills can never exceed placements. A hard ceiling no cleverness lifts. |
Worked example. An altcoin quotes with a 100 bps spread. You quote both sides with $90 orders. Gross capture per round trip ≈ 100 bps ≈ $0.90. Costs: cent-rounding ≈ 2.2 bps ($0.02), fees 0, measured adverse selection say 30 bps ($0.27). Net ≈ $0.61 per round trip. At 3 round trips an hour, that’s ~$1.80/hour gross of inventory weather — honest, small, and real. Now redo it on a major coin with a 3 bps spread: capture $0.027, rounding $0.02, and any adverse selection at all puts you underwater. The wide, boring book beats the famous, tight one — provided the wide book still has an external reference and actual trades.
6. Choosing where and what to quote#
Score every candidate instrument on the same four questions:
-
Does it trade? A wide spread on a dead book earns nothing per hour. Rank by capture × trade rate, not by spread alone — ranking by spread alone systematically selects the deadest books on the venue.
-
Does it have an external price? No reference (on at least two other venues), no quote. Ever.
-
Does the spread clear your costs at your order size (fees + rounding + a margin for adverse selection)?
-
Is it currently calm enough? If its recent range dwarfs its spread, wait.
And crucially: calibrate every threshold to the instrument, not to the market’s celebrity. A “big move” on a 2 bps-spread major is 10 bps; on a 150 bps-spread altcoin, 10 bps is noise. Express your guards in units of that instrument’s own spread, or you will either strangle the wide books or sleepwalk through the tight ones.
7. Safety rails before strategy#
Build these before you build the clever parts; each exists because someone learned it the expensive way:
-
A kill switch with a hard equity floor that liquidates and halts — and test that it fires, not merely that it’s “armed”.
-
An independent watchdog on separate credentials that cancels all orders if your trader process dies. Test it by freezing the trader, not politely stopping it.
-
Post-only orders always — being rejected beats accidentally paying taker fees.
-
Halt on surprises: an order on the account your system didn’t place means your model of reality is wrong. Stop first, investigate second.
-
Guards that stand you down on stale data, missing references, wild volatility, or your own quote crossing your other quote. In every check, ask: can this go red? A monitor that cannot fail is decoration.
8. The scientific method (the actual secret)#
Most retail bots die of self-deception, not of markets. The antidote is boring:
- Record first. Capture the venue’s books and trades for days before risking a cent.
-
Replay offline. Drive your full strategy through the recorded data and watch which rule kills each quote. Every gate you discover offline is a day of live pain you skipped.
-
Go live embarrassingly small — an amount whose total loss you’d genuinely shrug at.
-
Judge only the markout at a pre-committed sample size. Per-fill noise is huge (standard deviations of ~10–50 bps are normal), so you need on the order of 200 fills for a confidence interval that means anything. Decide in advance: if the CI excludes zero, the edge is real; if it includes zero, stop — do not add parameters.
-
Never change the configuration mid-sample. Every parameter change starts a new experiment; mixing two experiments in one average tells you about neither. This is the discipline hardest to keep and most worth keeping.
-
Beware the check that cannot go green: point every test at a known positive before trusting its negative. A grep that finds nothing, a backtest that rejects nothing, and a scoreboard that never wins are all the same bug.
9. Honest expectations#
The arithmetic of this trade is: basis points × volume × capital. A small venue with thin books caps all three — you can prove an edge there, but not retire on it. Real market-making businesses run the same ~1 bp edge across many venues and many instruments, with inventory hedged elsewhere; they scale breadth, not bet size. On any single book, growing your orders eventually makes you the market — and the edge you measured while invisible does not survive your own visibility.
So the honest career path of this method: prove the edge tiny, scale to the venue’s natural ceiling, then widen to the next venue — and let confidence intervals, not green candles, tell you when each step is earned.
10. The one-paragraph summary#
Quote both sides around an externally-anchored fair value, on calm, genuinely-traded instruments whose spread clears your true costs at your size. Manage inventory with caps, skew and an escape hatch; stand aside in storms; wrap everything in rails that fail loudly. Measure yourself only by markout over a pre-committed number of fills, change nothing while the experiment runs, and obey the result — in both directions. You will never brag about a single trade again, and that is precisely the point: you’re not predicting the river, you’re charging a small toll on the bridge.
If a sentence in this post ever competes with a measurement, trust the measurement.