Skip to content
← Writing

Quoting the thin leg: a maker study

Oct 13, 2026 · 10 min readTradingLatency

The previous post ended with the taker side of the thin-pair triangle closed: the signal is a resting limit order's remainder, far from fair value, and a crowd takes it at the match plus one millisecond, 0.6 ms before the public feed delivers it. The obvious reply is to switch sides. Instead of racing to hit the sloppy quote, be the quote, but a sensible one: price the thin pair from its liquid USDT twin, sit a few basis points off fair, collect the spread, and hedge each fill on the liquid pair. A maker does not need to see the market first. It learns about its own fill from its own execution report, and that report, plausibly, arrives about as early as anything the crowd sees.

Whether that works is not a latency question. It is a question about what the fills are worth, and the fills are in the recording. So I replayed a hypothetical quoter over the same two hours, 36 thin pairs, and counted.

−451 USD/h
net at 15 bps edge, 36 pairs, 1 s hedge
1–7 bps
edge actually captured per fill
2 of 36
pairs positive at 1 s

The model

For each thin pair, base against TRY, USDC, THB or EUR, the fair price is the mid of the base's USDT pair times the USDT price in the quote currency, from USDT/TRY, USDC/USDT, EUR/USDT, or ETH/THB over ETH/USDT for the THB pairs. Thin pairs trade at persistent offsets from that number, so the fair is centred on an exponential moving average, 120-second time constant, of the pair's own deviation from it; without that, a naive fair quotes straight into a standing basis and fills constantly on nothing.

The quoter posts a bid at fair less X and an ask at fair plus X, rounded away from fair to the tick, for X in 10, 15, 20, 30, 40 and 60 bps. It re-quotes whenever the reference moves, and the new quote goes live 1.5 ms after the reference update reaches the process: the measured receipt latency plus half an order round trip. Fills come from the trade stream. A trade event on the thin pair is one aggressor's sweep; prints strictly through the quote fill it, prints exactly at the quote fill it only for the volume beyond the displayed size at that level, because the quoter is last in the queue. Fills are capped at 200 USD per quote.

Per fill, the accounting is: edge captured against the true fair at the moment of the match, on exchange time, not against the stale fair the quote was built from; minus 15 bps, a 7.5 bps maker fee and a 7.5 bps taker fee on the hedge; minus the move of the true fair against the position over the next 1.5 ms, 10 ms, 100 ms and 1 second, the window in which the hedge gets done. The last term is adverse selection, and the four horizons are there so nobody can say the hedge was assumed too slow.

Two things in this model flatter the quoter. The hedge executes at the liquid pair's mid, with no spread and no size limit. And the 200 USD cap means a fill never eats a sweep's full depth. If this model says no, a real quoter says no louder.

Results

−600−400−2000102030405060quoted edge X, bps from fairnet USD / h, 36 pairs
hedged within 1.5 mshedged within 1 s
Hover the chart to read every line at one x.
Net result of quoting 36 thin pairs, USD per hour, against the quoted edge, for four quoting delays and two hedge horizons — 2 h, Tokyo, 2026-10-12
edge Xfills / hquoted USD / hnet USD / h, hedged in 1.5 msnet USD / h, hedged in 1 spairs positive at 1 s
10 bps2,579327 k−502−7181 of 36
15 bps1,543211 k−273−4512
20 bps1,014140 k−133−2794
30 bps52576 k−43−1456
40 bps30444 k−14−785
60 bps12119 k+16−266

Negative at every edge once the position is held for a second. The only positive cell is 60 bps off fair, hedged within 1.5 ms, 16 USD an hour on 121 fills, and it turns negative by the time a realistic hedge has gone through. Widening the quote does not fix it; it just reduces the number of fills until the loss is small.

Nor does latency fix it, which is the finding I did not expect. With an impossible zero-millisecond quoting delay, every quote updated the instant the reference moved, 15 bps still loses 310 USD an hour at the one-second horizon and 30 bps loses 89. A quoter that is faster than physics allows still loses on these pairs. Whatever is wrong with the fills, it is not that the quote was late.

Where the money goes, per fill

The pairs that fill most lose most. At 15 bps off fair: OSMO/USDC, 327 fills an hour, net −24.5 bps per fill, −122 USD an hour on its own; LAZIO/TRY, 420 fills an hour, −16.9 bps; OGN/TRY, 195 an hour, −22.3 bps; XAI/TRY, 325 an hour, −14.5 bps. These are the same pairs whose signalled quotes were taken in 95 % of bursts in the previous post. That is not a coincidence; it is the mechanism.

OSMO/USDC, 327 fills / h−24.5 bps
OGN/TRY, 195 fills / h−22.3 bps
LAZIO/TRY, 420 fills / h−16.9 bps
XAI/TRY, 325 fills / h−14.5 bps
Net per fill at 15 bps quoted edge, hedged within 1 s, on the four pairs that fill most — bps, 2 h, Tokyo

Take a fill apart. The quote was placed 15 bps from fair. But the edge actually captured, measured against the true fair at the moment of the match, is 1–7 bps on these pairs: 6.8 on OSMO/USDC, 5.8 on OGN/TRY, 1.2 on LAZIO/TRY. The 1.5 ms-old quote has already been overtaken by the move that triggers the sweep, so by the time the sweep arrives the quote is not 15 bps from fair, it is a few. Fees take 15. And fair keeps moving against the position: 4–6 bps more within 1.5 ms, 3–16 bps within a second. A quote that looks like 15 bps of edge delivers, on average, a few bps of edge, pays 15 in fees, and absorbs another 5–20 of adverse movement before it can be hedged.

That decomposition also explains the zero-latency result. The sweep that fills the quote is informed about the thin pair, and the information arrives on the thin pair first; the liquid reference the quote is priced from moves afterwards. The quoter's fair is built from the pair that learns last. No amount of speed in re-quoting from a reference fixes a reference that is itself behind.

Who fills a maker here

The previous post measured who hits the signalled quotes: a crowd of two to five actors, at the match plus one millisecond, taking the full displayed size, with the hedge printing on the liquid pair a millisecond later. A resting quote on these pairs, placed by anyone, is in the path of exactly that flow. The sweep that goes through the displayed level is the arbitrage. A newcomer without queue priority, last at the level, is filled by the part of the sweep that goes beyond the size ahead, which is to say filled only when the move is big enough to clear the whole level, which is to say filled when it is most wrong.

What if you were first in the queue

The last-in-queue rule is the pessimistic end. The optimistic end is a quoter that sits first at the best price at all times and is filled by every print at the touch, so I measured that too, as an upper bound that no one can reach: for every trade on the pair, the passive side's half-spread captured against the pre-trade mid, and the mid's move against that side afterwards, volume-weighted, before any fee.

pairprints in 2 hcaptured, bpsadverse, 1 snet before fees, 1 snet before fees, 60 s
OSMO/USDC3,16635.738.2−2.4+7.0
LAZIO/TRY3,62525.617.8+7.8−14.6
OGN/TRY17,0817.99.6−1.6−2.7
XAI/TRY9,21112.311.4+1.0−3.8
SKL/TRY1,97727.015.3+11.7+11.5
S/USDC6505.314.2−8.9−39.8
DODO/TRY1,82910.711.3−0.6−0.8
PIXEL/TRY2,17518.613.8+4.9+3.5

The captured half-spreads are large, 8–36 bps, because these books are wide. The adverse move is about as large, which is the whole story of thin pairs in one column: the spread is wide because the next trade moves the price by about that much. Before fees, the best possible queue position nets between −9 and +12 bps per fill at the one-second horizon, single digits on most pairs, and it gets worse on several by a minute. Subtract 15 bps for the maker fee and the hedge and every pair is negative except SKL/TRY, which nets −3 bps. With a zero maker fee, which exchanges grant to their liquidity programmes, two or three pairs reach low single digits positive, on a few hundred fills an hour each, from a queue position nobody holds.

Verdict

Quoting the thin leg of these triangles as a maker loses at every edge once the hedge takes a second, loses at zero quoting delay, and loses, after fees, from the front of the queue. The fills are the informed sweeps measured in the previous post; the reference pair the quote is priced from learns about the move after the thin pair does; and the spread on these pairs is wide precisely because the next trade moves the price by about the spread.

Together with the taker result, that closes both sides of the thin-pair triangle from the public feed. What is left from the project is the part that was built to be left: an engine that can watch every pair on the exchange for a few percent of a core, a recorder that turned two hours into four posts of answers, and a set of measurements that say, with numbers, where a millisecond goes on Binance and who gets there first. Those were the deliverables all along. The strategy was the excuse.