Understanding Market Order Price Protection Across Exchanges
Most traders assume a market order does exactly what the name implies: buy or sell your whole position immediately, at whatever price the order book offers. On most exchanges today, that's not quite true.
Behind the scenes, many exchanges convert a market order into a limit order priced some distance above (for buys) or below (for sells) the current best price, then submit it as Immediate-or-Cancel (IOC). This type of order is referred to below as a limited market order. Whatever portion of the order can't be filled within that price band gets cancelled on the spot, often with no separate alert beyond a smaller-than-expected fill.
This article explains why exchanges do this, what it means for your entries and exits, and how the mechanism differs across every exchange Altrady supports.
Also see below, recommendations for avoiding these partial fills or cancelled orders when placing Market orders in Altrady by using workarounds of your choice (see Managing Market orders in Altrady)
Contents
- Why market orders may not fully fill
- Worked example: a partially filled sell order
- Impact on entry orders and exit orders
- What to check if a market order under-fills
- How each exchange implements it
- Two things worth remembering
- Related articles
Why market orders may not fully fill
Exchanges add this protection to stop an order from executing at a wildly unfair price when the order book is thin or the market is moving fast. The trade-off is that the order might not fully execute, particularly in low-liquidity conditions.
This catches spot traders hardest when exiting a position. If you submit a market sell expecting your whole balance to liquidate, and the book is thin below the current price, only part of the order fills. The rest is cancelled, and you're left holding tokens you thought you'd sold.
Worked example: a partially filled sell order
The order book (OB)
Say you hold 100 ABC and submit a market sell for all of it, on an exchange that converts market orders into an IOC limit order priced 10% below the current best bid (this is the mechanism MEXC documents for its futures product, and a comparable rule applies on several other exchanges, including MEXC Spot, listed below).
The order book Buy side when the order arrives:
Bid price (USDT) | Size (ABC) | Cumulative size |
|---|---|---|
1.000 | 15 | 15 |
0.998 | 20 | 35 |
0.995 | 25 | 60 |
0.990 | 15 | 75 |
0.950 | 15 | 90 |
0.850 | 40 | 130 |
How the fill works
The best bid is 1.000, so the 10% floor sets the IOC limit price at 1.000 x 0.90 = 0.900.
The matching engine walks the book downward from the best bid, filling every level at or above 0.900:
- 15 ABC at 1.000
- 20 ABC at 0.998
- 25 ABC at 0.995
- 15 ABC at 0.990
- 15 ABC at 0.950
That's 90 ABC filled out of the 100 requested, every bid down to the floor. The next level, 40 ABC resting at 0.850, sits just below the 0.900 floor, so it's never touched, even though it would have more than covered the rest of the order.
Because the order is IOC, the remaining 10 ABC never sells. The order is cancelled immediately rather than resting on the book waiting for a buyer to come up to that level.
Result: 90 ABC filled (90%), at a volume-weighted average price of roughly 0.9882 USDT, and 10 ABC still sitting in the wallet. The position isn't fully closed, even though the order itself has finished.
Impact on entry orders and exit orders
Entries (market buys)
The worst case on an entry is a partial fill at a wider-than-expected average price, leaving you under-invested relative to the size you intended. On a leveraged futures position, that also means your actual margin usage and risk exposure are smaller than planned. You'd need to place a follow-up order to reach your intended size, and re-check your stop-loss sizing against the amount actually filled rather than the amount requested.
Exits (market sells and closes)
This is the higher-risk case. You believe you've closed out, but you haven't. On spot, you're left holding tokens still exposed to price movement. On a leveraged futures position, a partially filled market close leaves a residual open position that keeps accruing funding costs, margin requirements and liquidation risk, and it's easy to overlook, since nothing visibly failed.
Exchanges that reject the whole order instead
On these two, an entry either fully opens or doesn't open at all, so there's no risk of an unintentionally small position. An exit either fully closes or doesn't close at all, so you always know with certainty whether you're still holding the position. The trade-off is that you may need to retry the order manually if it's rejected, rather than getting whatever partial fill the book could support.
What to check if a market order under-fills
- Compare the fill size against the amount requested. A partial fill without an error message usually means the order hit the exchange's price protection band, not that something went wrong.
- Check the remaining balance (spot) or open position size (futures) before assuming an entry or exit is complete.
- For illiquid pairs or large orders, compare the order size to the visible depth on the book before using a market order. A limit order gives control over the worst price accepted, at the cost of speed.
- Where an exchange allows the protection threshold to be configured, widening it (or disabling it) increases the chance of a full fill, at the cost of accepting a worse average price if the book is thin.
How each exchange implements it
Exchange | Applies to | What it's called and how it works | Exchange Docs |
|---|---|---|---|
Binance | Spot and Futures (different rule for each) | Spot: a dynamic band (PRER) around a recent-trade reference price. Futures: a cap/floor versus the mark price. Either way, the unfilled portion of a market order is cancelled. | |
Binance US | (none found) | No documented protection mechanism found. Binance US runs its own rules, separate from Binance.com, and its market orders are described as executing at whatever price is available. | |
BingX | Spot and Futures | Futures cap is roughly 2% from the best price. Spot uses a variable "Restriction Ratio" (the standing figure isn't published). | |
Bitmart | Futures | "Market Order Slippage Control," user-adjustable, currently only on BTC/USDT and ETH/USDT contracts. Documented in a press release rather than help-centre docs, so worth confirming directly with Bitmart if this matters for your trading. | |
Bitvavo | Spot | "Spread Price Protection," cancels the unfilled portion once the price moves too far from the best bid/ask. The exact threshold isn't published. | |
Bybit | Spot and Futures | "Slippage Tolerance," set by the trader, by amount or percentage, when placing a market order. The last setting used is remembered per trading pair. | |
Coinbase Advanced Trade | Spot | A built-in "market protection point": 10% away from the last trade price for most pairs, 1% for stablecoin pairs. Fixed, not adjustable. | |
Spot | No protection mechanism found in official documentation. Market orders are described as sweeping the book without a stated limit. | ||
Spot and Futures | The portion of a market order beyond the slippage limit is cancelled. The spot limit varies by pair; futures uses an explicit formula versus the best bid/ask. | ||
HitBTC | Spot | Unclear. No protection band is mentioned in the official docs found, but this isn't conclusively ruled out either. | |
Huobi / HTX | Spot | Fixed +/-10% band from the last traded price. Not adjustable. | |
Hyperliquid | Spot and Futures | There is no separate "market order" type at all. Every order, including what looks like a market order in the app, is really an aggressive IOC limit order with a slippage offset built in. | |
Kraken | Spot | "Market Price Protection," cancels the entire order (not a partial fill) if the bid/ask spread is too wide. The threshold varies by pair, from around 2.5% on major pairs up to 20% on thinner ones. | |
Kraken Futures (coming soon) | Futures | A flat 1% band above the best ask and below the best bid, applied uniformly across all contracts. Unlike Kraken spot, this partially fills and cancels the remainder rather than rejecting the whole order. | |
KuCoin | Spot and Futures | Spot uses an "Immediately Executable Price Range" (around 10%, varies by pair). Futures uses a 5% band versus the mark price. | |
MEXC | Spot | Futures documents a 10% band with an IOC market order. Spot behaves consistently with this in practice, but MEXC hasn't published the exact spot percentage; its officially named spot feature instead describes rejecting abnormal orders outright, so treat the spot figure as unconfirmed. | |
OKX | Spot and Futures | Spot uses a fixed 5% band off the best bid/ask. Futures uses a separate, dynamically calculated band tied to the index price. | |
Poloniex | Spot | "Price Protection," like Kraken spot, rejects the entire order rather than partial-filling, if it would move price more than 20% from the best bid/ask. | |
Toobit | Futures | Confirmed to use the same IOC-limit mechanism, but no percentage or formula has been published. | |
WOO (WOOX) | Spot | "Slippage Protection," adjustable from 1% to 10%, defaulting to 5% for spot. Set at the account level (one setting for spot, a separate one for perpetuals), rather than per order. |
Three things worth remembering
- Most exchanges partially fill, then cancel the rest. You get whatever the book supported within the protection band, and the remainder simply disappears from the order. Kraken (spot) and Poloniex are the exceptions: they reject the whole order if it would breach the threshold, so it's either a full fill or nothing at all.
- A handful of exchanges let you control the threshold yourself: Bybit (per order, on the order form), WOO X (an account-level setting, separate for spot versus perpetuals), and Bitmart on futures (adjustable, though the exact mechanics aren't published). Everywhere else, the exchange sets the band and it can't be changed.
Managing Market Orders in Altrady
- On most exchanges, your market order will be converted to a limit order at a certain distance from the current price (or best bid/ask price). Whether your order fills 100% or not depends on the liquidity in the order book at the time vs the size of your order.
- For larger orders or pairs with low liquidity, consider using Limit orders instead of Market orders
- A limit order with a price on the opposite side of the book (e.g. a buy order with a price >= the lowest Ask, or a sell order with a price <= the best bid) will match some orders in the OB immediately, just like a market order. And like a limited market order, slippage can only occur up to the specified limit price. However, unlike a limited market order, after a partial fill the rest of the order will stay open on the OB at the limit price, instead of being cancelled without notification.
- For a Stop Loss, a Stop Limit order with the Limit price at the same percentage from the Stop price as the exchange uses for their limited market orders, will achieve the same goal as the exchange's limited market orders in turns of slippage, but most importantly, will result in the Limit order remaining open on the order book after a partial fill. This means both your order and your Altrady smart position stay open after a partial fill instead of silently closing with no warning. It's also easy to see the current status of your order (check My Orders>Open for the order size vs the filled amount).
- Instead of the Trailing Take Profit order, consider using a Trailing Stop Loss (limit type), with the trigger price at the same level as would have been used for the TTP order. Likewise, the Stop price distance for the TSL can be the same as would have been used for the TTP distance. And the Stop limit distance can be the same as the exchange uses for their "limited market" orders.
Related articles
Altrady articles
- Which exchanges are supported?
- Crypto Exchange Comparison Guide
- Trading Futures with Altrady
- Smart Orders: Trailing Stop Loss: Follow Price
- Smart Order Options: Post Only and Time in Force (explains how IOC works, in this case using Altrady's Time in Force options as examples)
Exchange documentation referenced above
- Binance: Market/Limit Order Price Cap and Floor Ratio
- Binance Spot Price Range Execution Rule (third-party writeup)
- Binance US: Order types
- BingX Futures support
- BingX Spot support
- Bitmart: Next-Gen Risk Control Features for Futures Trading
- Bitvavo: Order lifecycle docs
- Bybit: Market Order with Slippage Tolerance
- Coinbase: Order types
- Coinbase: API reference
- Crypto.com: Limit and market orders
- Gate.io: About spot trading
- Gate.io: Futures contract order price limit
- HitBTC: Market orders
- HTX/Huobi: Market order price band
- Hyperliquid: Order types
- Kraken: Market Price Protection (Spot)
- Kraken: Order types in Derivatives trading (Futures)
- KuCoin: Price protection mechanism
- MEXC Futures Market Order FAQs
- MEXC: Price Protection for Abnormal Spot Orders
- OKX: Price limit rules
- Poloniex: Price Protection
- Toobit: Perpetual Futures description
- WOO X: Slippage Protection
Updated on: 08/07/2026
Thank you!