I keep coming back to a thing that bothered me for years before I had a name for it. You place a limit buy below the market, you feel clever for saving the spread, and then a weirdly high fraction of the time the trade goes against you almost immediately after it fills. Not always. But often enough that if you only ever traded with limit orders and never checked what happened next, you would slowly bleed and blame it on bad luck or a bad strategy, when the real problem is baked into the mechanics of what a resting order actually is.
The short version is that your passive bid is a standing offer to buy from whoever wants to sell. And the person most eager to hit your bid, right now, at this price, is disproportionately someone who knows something you do not. That is adverse selection. Your order fills best precisely when it is worst for you to have filled.
Why the fill itself is information
Think about the two ways your limit buy can get filled. The price can drift up to you gently, in which case fine, you got in and the market kept going your way. Or the price can come down and trade through your level because there is real selling pressure. In the second case, the thing that filled you is the same thing that is about to keep pushing price lower. You did not get picked off by an unlucky tick. You got picked off by order flow that had a reason.
Market makers live and die on this. Their whole job is quoting both sides and collecting the spread, and the reason the spread exists at all is to compensate them for exactly this risk. When someone informed trades against a resting quote, the maker loses more than the spread pays. So they widen quotes when they suspect informed flow, pull them entirely around news, and lean their inventory away from whichever side keeps getting hit. You, placing one limit order, are playing the same game with none of that machinery. You are the maker for that one trade, and you are quoting a price to a counterparty you cannot see and have not screened.
The uncomfortable part is that the better your entry price looks, the more you should worry. A fill that feels like a gift, price snapping down to your bid and filling the whole size instantly, is often the market telling you something you did not want to hear. A partial fill that took a while and left size unexecuted is, oddly, a healthier sign. It usually means the selling was not that motivated.
Measuring it on your own trades
You do not need a microstructure PhD to see this in your own history. You need to track post-fill drift, which is just where price goes in the short window after each of your passive entries, measured against where you filled. Here is the workflow I would actually run.
- Tag every entry as passive (limit that rested and got hit) or aggressive (you crossed the spread and took liquidity). This split is the whole point, so do not skip it.
- For each fill, record the mid price at the moment of the fill, then the mid price at a few fixed horizons after. Something like one minute, five minutes, and thirty minutes works for most timeframes. Use the mid, not the last trade, so you are not fooling yourself with the spread.
- Compute the signed drift from your side of the trade. For a buy, price going down after the fill is adverse. Average it across all your passive fills, then separately across your aggressive fills.
- Compare the two averages. If your passive entries show meaningfully worse short-horizon drift than your aggressive ones, you are paying for the saved spread in a way that does not show up on any single ticket.
The number that matters is the gap between the two. Everybody has some average drift because entries are hard. What tells you about adverse selection specifically is passive drift being worse than aggressive drift for the same setups. If crossing the spread and taking the fill immediately leaves you better off thirty minutes later, on average, then the spread you were trying to save was never the real cost.
When passive entry actually pays
None of this means limit orders are a trap. It means they have a cost that is invisible until you measure it, and the cost is not the same for every setup. The question is whether the counterparty hitting your bid is likely to be informed or just liquidity-seeking, because trading against someone who simply needs to get out of a position for reasons unrelated to your instrument is fine. That is the flow you want to face.
A few rules of thumb I use to decide:
- Mean-reversion setups tend to survive passive entry better. If your thesis is literally that the move is an overreaction, then filling on the flush is the trade, not a warning. The drift going against you briefly is expected and priced in.
- Momentum and breakout entries are where passive orders hurt most. If you are trying to get long strength, a limit order below the market only fills when strength fails, which is the one condition your thesis does not want. For these, paying the spread is usually the honest price of admission.
- Around scheduled events, earnings, macro prints, protocol unlocks, treat every resting order as bait. Informed and fast flow concentrates there. Either be aggressive or be flat.
- Size matters. A small passive order in a deep book faces less adverse selection than a large one, because a large resting order is itself a signal and the flow that clears it is more likely to be someone who saw it and wanted the other side.
The failure mode I see most is a trader who backtested on mid-to-mid or on optimistic limit fills, saw great numbers, went live with real limit orders, and got worse results with no obvious bug. The backtest assumed fills that a resting order does not actually get for free. It filled them on every touch and ignored that half those touches were the market running them over. The live account paid the adverse-selection tax the backtest never modeled.
If you run backtests, this is worth building in deliberately. Assume passive fills only when price trades meaningfully through your level, not on a touch, and haircut the ones that fill on strong directional moves. On Blockcircle we found that being pessimistic about limit fills in the backtester narrowed the gap between simulated and live results more than almost any other single change, because it stopped rewarding strategies that were quietly harvesting fills the real market would never hand over.
The practical takeaway is small and a little boring, which is usually how you know it is real. Keep the passive-versus-aggressive drift comparison as a standing number you glance at, decide entry style per setup instead of by habit, and when a fill feels too good, slow down and ask who was so eager to sell it to you.