· four exchange APIs · rebuilt daily

The finding
The choice between a limit vs market order crypto position determines whether you pay maker or taker fees and whether execution is guaranteed during market drops.
Market orders execute immediately against existing order book depth, while limit orders sit in the book as maker liquidity until matched.
In volatile markets, using a stop-limit instead of a stop-market can leave a position unhedged when price gaps past your limit target.
Every transaction on a perpetual futures exchange matches a market maker with a market taker. A market order fills instantly by matching against the best available prices in the order book. This guarantees execution speed, but subjects the position to potential slippage and higher taker fee tiers.
A limit order specifies an exact price or better. It enters the order book as liquidity and waits for another participant to cross the spread. The trade receives maker fee rates, which are significantly lower on all major venues. However, if market prices move away from the order, it remains unexecuted.
| Exchange | Futures Maker Fee | Futures Taker Fee | Round-Trip Fee on 100,000 USDT Position |
|---|---|---|---|
| MEXC | 0.0000% | 0.0200% | 40 USDT |
| Bitget | 0.0200% | 0.0300% | 60 USDT |
| OKX | 0.0200% | 0.0500% | 100 USDT |
| Bybit | 0.0200% | 0.0550% | 110 USDT |
Worth knowing
On Bybit and OKX, taker fees are more than double the maker fees, making execution type the single largest variable cost on active trading accounts.
Standard limit orders can unexpectedly execute as taker orders if the limit price overlaps with existing order book liquidity. Submitting a limit buy order at or above the current lowest ask causes the matching engine to execute it immediately as a market taker, charging the higher fee rate.
To prevent accidental taker fees, exchanges offer the post-only flag. A post-only limit order forces the system to accept the order strictly as a market maker. If the order would execute immediately against an existing resting order, the exchange cancels it entirely without charging a fee.
The reduce-only flag controls position sizing logic rather than fee structure. It ensures that an order can only decrease or close an existing position, never expand it or open a reverse trade.
Where this goes wrong
Submitting a closing limit order without checking reduce-only can open an unwanted reverse position if an earlier stop-loss already closed the position.
Conditional orders pair a price trigger with an underlying execution mechanism. A stop order sits inactive on exchange servers until the index, mark, or last traded price hits the designated trigger threshold. Once triggered, the order submits either a market or limit instruction to the order book.
A stop-market order becomes a market taker order the moment the trigger price is reached. It guarantees that the position is closed, but final execution price depends on available order book depth at that exact millisecond. In thin order books or rapid market drops, slippage can push the average exit price well beyond the trigger price.
A stop-limit order submits a limit order at a specified price once triggered. This prevents execution at undesirable prices, but introduces catastrophic execution risk during cascading liquidations. If market prices gap past the limit price before the order book matches the order, the trade remains unfilled while the underlying market continues to move against the position.
Assume BTC trades at 60,000 USDT. A stop-limit sell is set with a trigger price of 59,000 USDT and a limit price of 58,950 USDT. If a sudden sell cascade jumps price directly from 59,050 USDT down to 58,800 USDT in a single match engine cycle, the stop triggers at 59,000 USDT and places a limit order at 58,950 USDT. Because current market bids are at 58,800 USDT, the limit order rests on the book unfilled while the market falls further toward the liquidation threshold.
What to do instead
Use stop-market orders for critical stop-loss exits, accepting taker fees to guarantee position closure before liquidation.
Fee differences compound rapidly across position turn over. Consider a participant trading 10 BTC contract turns per week with an average position value of 100,000 USDT. Over a four-week period, total monthly trading volume equals 4,000,000 USDT across 40 order executions.
On Bybit, completing all trades via market orders generates a cumulative fee liability of 2,200 USDT based on the 0.055% taker rate. Executing the same volume strictly via post-only limit orders at the 0.020% maker rate generates a cumulative fee liability of 800 USDT.
Using market execution on Bybit creates an additional fee friction of 1,400 USDT per month compared to post-only execution. On MEXC, where futures maker fees are 0.000%, post-only execution eliminates maker fee liability entirely, leaving only spread costs.
A market order fills immediately at current order book prices as a liquidity taker, incurring higher fee rates. A limit order enters the book at a specific price as a liquidity maker, incurring lower fees but risking non-execution if price moves away.
A stop-limit order submits a limit order once triggered, which requires another participant to accept your exact price. If market prices drop faster than the order can be matched, the price gaps below your limit target and leaves the order sitting unfilled in the book.
Post-only is an order setting that guarantees a limit order executes as a liquidity maker or cancels instantly. It prevents the exchange matching engine from executing the order as a higher-fee taker order if submitted inside the current bid-ask spread.
Reduce-only restricts an order to closing or scaling down an existing position. If a trader manually closes a trade or gets liquidated before a stop order executes, reduce-only automatically cancels the remaining stop, preventing an accidental position from opening in the opposite direction.