Spreads Get quoting→
Strategy

Getting run over, and not

Every fill is either income or information. The losing makers are the ones who can't tell which.

The mechanics of getting run over

At 4:47pm a company guides down. At 4:47:02 whoever read the release fastest sells every bid still resting at the old price — including yours if it is still there. You were quoting 99.90 for a stock that is now worth 94. That single fill costs you 5.9% of notional; at a 20 basis point spread, that is roughly thirty sessions of honest spread income returned in one trade. This is adverse selection: the flow that chooses you because you are wrong.

Reading the tape for toxicity

Informed flow has a signature, and the kit surfaces it:

The response ladder

  1. Skew — shade both quotes toward the side hitting you, so the market pays you to reduce your exposure.
  2. Widen — uncertainty went up, so the price of immediacy you charge goes up.
  3. Size down — same quotes, less at stake per fill.
  4. Pull — cancel everything, flatten what you can, re-enter only when you can price the news. Pulling is not a failure state; it is the strategy working. A maker with no quotes loses nothing.

Where the intelligence actually matters

Steps 1–3 are arithmetic; any bot can run them. Step 4 is judgment: is this headline priced in? Is this halt real? Does this filing change fair value or just volatility? That is a reading-comprehension problem under time pressure, which is precisely what a language model is for. The quoter.py loop hands every unpriceable signal to the model driving it and treats "no quote" as a first-class answer. A pool cannot do this. A cron job cannot do this. This is the moat.