Limit order fills that consistently see price move against you are a classic sign of adverse selection: your order only got filled because informed traders were willing to take the other side at your price, and they are pushing the market in a direction that hurts you. The key to checking adverse selection is not counting how many times price moved against you, but calculating the Markout on your fills — using your fill price as a baseline, measure how far the mid-price moves afterward. If your Markout is systematically negative, your resting orders are structurally being picked off by toxic flow.

A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!
First, rule out an illusion: you may only remember the fills that happened
Before doing any calculation, there is a psychological bias to address. Academic research points out that maker orders fill far less often than intuition suggests: on Binance, the spread is almost always one tick wide, and most submitted limit orders end up being cancelled, with only a minority actually filling. When the market is calm and your order price "should" have been touched and bounced, your order may not have filled at all because it was too far back in the queue. But when the market moves sharply in one direction and price slices through your level, your order gets fully filled. Part of the feeling that "every fill immediately goes against me" is survivorship bias: the act of getting filled already selects for moments when market momentum was strong enough to consume the liquidity at your price level.
This does not mean adverse selection is not real. It means that before calculating anything, confirm whether your sample includes all limit orders or only filled limit orders. The latter is naturally biased toward unfavorable moments, so you need Markout to quantify the deviation instead of relying on impressions.
How to calculate Markout: score each fill by the price move after execution
The definition of Markout is straightforward: over a time window after the fill, how much did the mid-price move relative to your fill price? For a buy order (you are going long), if the mid-price falls after the fill, Markout is negative, meaning you bought right before a decline. For a sell order (you are going short), if the mid-price rises after the fill, Markout is negative. Databento's documentation describes Markout as a standard tool for measuring adverse selection and execution slippage on passive limit orders.
A practical calculation workflow:
Step 1: Export your fill records. From the exchange's trade history or your own trading journal, extract the timestamp, direction (buy/sell), fill price, and quantity for every passive fill (maker fill).
Step 2: Get the mid-price at several time points after each fill. Mid-price = (best bid + best ask) / 2. Common time windows include 1 second, 5 seconds, 30 seconds, 1 minute, and 5 minutes after the fill. The right window depends on your holding period: if you trade intraday, Markout from 5 seconds to 1 minute is most meaningful; if you hold for hours, look at 5-minute to 30-minute windows. You do not need many windows — pick two or three that match your actual holding time.
Step 3: Calculate direction-adjusted Markout for each fill. For a buy fill: Markout = post-fill mid-price − fill price. For a sell fill: Markout = fill price − post-fill mid-price. This standardizes the sign so that positive means favorable to you and negative means unfavorable.
Step 4: Average the sample. Do not look at individual fills. Take all fills over a period (at least a few dozen, the more the better) and calculate the average Markout separately by direction and time window. If both buy and sell fills show significantly negative average Markout, your limit orders are being adversely selected in both directions.
A reproducible example: suppose you made 50 passive buy fills on a coin, and the average mid-price 30 seconds after each fill was 0.08% below your fill price. Your 50 passive sell fills saw the average mid-price 30 seconds later sit 0.06% above your fill price. That means each buy fill immediately went underwater by 0.08% on average, and each sell fill by 0.06%. If the spread you earn from resting orders (half-spread) is only 0.02%, then the adverse selection cost (around 0.07%) far exceeds what you collect from the spread. The strategy is structurally losing money, and it has nothing to do with luck.
Negative Markout is not always the fault of toxic flow
Once you calculate a negative Markout, you need to break it down further to determine whether the problem is in your strategy design or the market environment. Several factors can cause negative Markout on their own, without your orders necessarily being targeted by smart money.
Volatility spikes: If volatility suddenly expands while your orders are resting and price moves sharply in one direction, getting run over is a normal outcome. These fills naturally have negative Markout, but the cause is volatility, not information asymmetry. One way to tell the difference is to check whether the share of fills during volatility spikes is too high. If most of your negative Markout is concentrated in a few periods of surging volatility, the problem may be that you did not cancel your orders when volatility rose, rather than your quotes being systematically picked off. Tietze recommends adding a volatility circuit breaker to your limit orders: when short-term ATR suddenly jumps, cancel all unfilled resting orders instead of leaving them there to get run over.
Poor queue position: A study on arXiv analyzed Binance limit order fill data and found that when the order book is imbalanced, fills at the front of the queue have positive Markout (roughly +0.1 to +1 bp), while fills at the back of the queue have significantly negative Markout (roughly −0.058 to −1.157 bp). If your orders only fill when they are far back in the queue, it means you are only getting touched after liquidity has been heavily consumed and price has already cleared all the orders ahead of you — so the Markout is naturally poor. Checking your queue position at the time of fill (if the data is available) can help you distinguish between a quoting problem and a queueing problem.
The spread itself is too narrow: If the market spread is only one tick, the half-spread you earn from resting orders is tiny, while adverse selection cost is a relatively fixed "tax." After subtracting the two, the expected value may simply be negative. In this case, the problem is not that you picked the wrong time to fill, but that this market or this time period is not suitable for passive limit orders.
What to look at after checking Markout
If Markout is significantly negative and concentrated under specific conditions, the next step is to find which features predict negative Markout. A practical article from Algotradingdesk lists several actionable input variables: the intensity and direction of market orders (was there a burst of aggressive orders in the same direction before your fill), quote age (how long your order sat without being updated before the fill), and order book imbalance (the ratio of resting volume on the bid side versus the ask side).
Run a simple group comparison on your own fill data: split your fills into high and low groups based on "number of same-direction market orders in the 5 seconds before the fill," and calculate the average Markout for each group. If the high-market-order group has clearly more negative Markout, your orders are being run over by momentum flow. The fix is not to stop using limit orders, but to cancel or adjust your quotes when you detect a surge in same-direction market orders.
Another dimension worth checking is time. If you find that negative Markout is concentrated in certain periods (such as the US market open or around specific news releases), and you happen to be more active with limit orders in those periods, then adjusting the time distribution of your resting orders can improve results.
A practical judgment
Price moving against you after a limit order fill does not necessarily mean your strategy is "wrong," but persistently negative Markout means the income you earn from the spread is not enough to compensate for the cost of being adversely selected. In crypto trading on centralized exchanges, the maker fee advantage (or even rebates) is why many people choose to rest orders, but a few basis points of fee advantage can easily be swallowed by dozens of basis points of negative Markout. Calculate your own Markout number first, then decide whether to adjust your cancellation logic, narrow the conditions under which you use limit orders, or stop making markets in that instrument or time period altogether. Without that number, any discussion of "adverse selection" is just guesswork based on feelings.

A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!
References
- Databento·Measure execution slippage with markout curves, 2026-10-31
- arXiv·The Market Maker's Dilemma: Navigating the Fill Probability vs. Post-Fill Returns Trade-Off, 2026-10-31
- arXiv·To Make, or to Take, That Is the Question: Impact of LOB Mechanics on Natural Trading Strategies, 2026-10-31
- uncoded.ch·Adverse Selection: The Hidden Tax on Limit Orders, 2026-10-31
- algotradingdesk.com·HFT Trading: How to Detect Adverse Selection Before It Destroys Trading Profits, 2026-10-31


