5.20 Dynamic Symbol Selection for Market Makers

A maker shouldn't quote everything. Track the EWMA markout of every trade in a symbol, quote only the non-toxic names, and scale size by markout. Selection alone can turn a flat system profitable.

5.20 Dynamic Symbol Selection for Market Makers

A market maker does not have to quote everything, and quoting the wrong names is how an otherwise sound system bleeds. Some symbols hand you good markouts and some feed you toxic flow all day, and which is which changes over time. The cheapest, highest-leverage improvement to a market making book is often not a better forecast or a tighter spread, it is refusing to quote the symbols where you have no edge right now. Dynamic selection of what to quote turns a system that lacks edge into a flat or profitable curve.

This article applies the markout diagnostic from "Markouts: The Truth Serum of Market Making" as a live filter on which instruments to quote, and as a control on how much size to put on each.

Measure markouts before you quote

You can judge a symbol's toxicity without ever posting a quote in it. Take the average markout, over a short horizon like five seconds, of every single trade that happens in the symbol, and track its EWMA over time. The markout of a trade is the price change after it, the same measure used on your own fills, applied here to the whole market's trades rather than just yours.

$$ \text{toxicity score}_t = \text{EWMA}\big( \text{markout}_{5s} \text{ of every trade} \big) $$

The toxicity score is an exponentially weighted moving average of the five-second markout of every trade in the symbol. A symbol where trades are consistently followed by the price moving against the aggressor is non-toxic, the takers there have no edge, so quoting against them is safe. A symbol where trades are consistently followed by the price continuing in the aggressor's direction is toxic, the takers there are informed, and quoting against them bleeds. Because the score is an EWMA of market-wide trades, you get it before committing capital, and it updates continuously as conditions shift.

Quote the non-toxic names

The names that sustain genuinely good markouts are the super non-toxic pairs, stablecoin pairs like USDC against USDT being the cleanest example, where almost no one trading carries information and the flow is mechanical. Those are the symbols to quote. The dynamic part is that toxicity is not a fixed property of a symbol, it drifts, so you quote a name when its score says non-toxic and pull quotes when the score deteriorates, rather than quoting a fixed list forever.

This is why selection alone can rescue a weak system. A forecast that is marginal on average is often marginal because it is mixing profitable fills on clean names with losing fills on toxic ones. Filter to only quote when the markout score says you have an edge, and the same forecast that looked flat across everything turns profitable on the subset where it works. You are not improving the alpha, you are stopping it from being spent on flow that was always going to take it back.

Scale size by markout, too

Selection is binary, quote or do not. The same signal also drives a continuous control: sizing. The default is a fixed size per instrument, but the advanced version scales your size by your markouts for that symbol, so you quote more on the names you are making money on and less on the names you are not.

Markouts are responsive, which makes this safe. When your markouts on a symbol start deteriorating, the size scales down quickly, cutting your exposure to a name that is turning toxic before it does serious damage. The combination is a soft, continuous version of selection: full size on clean names, shrinking size as markouts worsen, and quotes pulled entirely when the score crosses into toxic. The book concentrates capital where it earns and starves the flow that bleeds, all driven off the one markout signal.

The limits

Selection is powerful and it narrows your universe, which is the trade-off. The cleanest non-toxic names, stablecoin pairs and the like, are also the ones with the thinnest spreads and the most competition, so the markout edge there is real but small, and a book that only quotes the safest names earns a small, safe number. Pushing for more requires quoting riskier names where the markout score is borderline, which reintroduces the toxicity you were filtering out. The EWMA also lags, so a name that turns toxic suddenly will bleed for the window it takes the score to react, and the responsiveness that protects you is bounded by how fast the average moves. Dynamic selection is a real edge and a defensive one, it improves the curve mostly by avoiding losses, not by manufacturing new alpha.

Visualizing selection

KEY POINTS

  • A maker should not quote everything. Quoting names where you have no edge is how a sound system bleeds, and refusing them is often the cheapest, highest-leverage improvement.
  • Judge a symbol before quoting it: track the EWMA of the short-horizon (five-second) markout of every market trade in the symbol. Trades followed by price continuing in the aggressor's direction mark toxic flow.
  • The non-toxic names that sustain good markouts (stablecoin pairs like USDC/USDT are cleanest) are the ones to quote, because the takers there carry no information.
  • Toxicity drifts, so selection is dynamic: quote a name when its score says clean, pull quotes when it deteriorates, rather than holding a fixed list.
  • Selection alone can rescue a weak system by separating profitable fills on clean names from losing fills on toxic ones, turning a flat forecast profitable on the subset where it works.
  • The same markout signal drives sizing: scale size up on names you make money on and down on names you do not. Markouts are responsive, so size cuts quickly as a name turns toxic.
  • Limits: the cleanest names have the thinnest spreads and most competition, so the safe edge is small; reaching for more reintroduces toxicity; and the EWMA lags, so a sudden turn bleeds until the score reacts.

References