Order Types & Execution Strategies for Crypto Traders: Minimize Slippage and Improve Fills
Execution matters. Two identical strategies with different execution produce very different P&L: fills, slippage, and order type choice are part of your edge. This guide explains the most common order types on crypto exchanges, practical execution tactics for small and large orders, and how to simulate realistic fills in a backtest.
Why execution is a first-order trading problem
Most trading guides focus on signals: indicators, entry rules, stop-losses. Execution is the bridge between a signal and realized profit. Poor execution turns good signals into losing trades through avoidable slippage, partial fills, and excessive fees.
Key outcomes to optimize:
- Fill price (realized entry/exit)
- Probability of execution (did the order fill?)
- Fees (maker vs taker)
- Speed vs price (market orders are fast, limit orders can save fees)
Order types: what they do and when to use them
Market orders
A market order matches against the existing order book immediately. Use it when speed and certainty of execution matter more than price.
Pros:
- Immediate execution (fast)
- Good for small orders in liquid markets
Cons:
- Pay taker fees
- Suffer slippage on thin order books (bad fills)
- Poor for large orders or illiquid coins
When to use:
- Scaling out of a losing intraday position where you need certainty
- Small orders in top liquidity pairs
Example (illustrative): placing a market buy for a small notional will match resting sell orders until filled. If resting liquidity is thin, your average fill price can be substantially worse than mid price.
Limit orders
A limit order sits on the order book at your chosen price. It only executes when the market reaches that price (or better).
Pros:
- Can capture maker fees (lower cost)
- Avoids bad market fills if you pick a near-market price
- Control over price
Cons:
- May not fill (partial or no execution)
- Can be picked off (adverse selection) in fast markets
When to use:
- Capture maker fees and better price
- Passive entries sized to available liquidity
Practical tip: For passive entries, place a limit slightly inside the spread (e.g., better than best bid/ask) to increase fill probability while remaining a maker.
Post-only / Good-Til-Canceled (GTC) / Time-in-force variants
- Post-only: ensures your limit order will not remove liquidity (it will cancel if it would match immediately). Useful to guarantee maker fees.
- IOC (Immediate-Or-Cancel): fills immediately for the available quantity, cancels the rest. Useful when you want partial immediate execution without leaving leftover resting orders.
- FOK (Fill-Or-Kill): requires full execution immediately or cancels entirely. Useful when partial fills are unacceptable.
Choose time-in-force depending on whether you prefer guaranteed maker fees (post-only) or faster partial execution (IOC).
Stop orders (stop-market, stop-limit)
Stop orders turn into market or limit orders once a trigger price is crossed. They are risk-management tools, commonly used for stop-losses.
- Stop-market: becomes a market order at the trigger (ensures execution but may suffer slippage)
- Stop-limit: becomes a limit order at the trigger (avoids bad fills but can miss execution)
Best practice: For urgent risk exits, prefer stop-market (accept slippage). For tactical exits near known support/resistance, stop-limit can be acceptable if you accept the fill risk.
How exchanges match orders (quick primer)
Exchanges maintain a central limit order book (CLOB): queued bids (buy orders) and asks (sell orders). Matching is typically price-time priority: best price first, then older orders first.
Implications:
- If you place a maker limit at the top of the book and someone else posted earlier at the same price, you’ll be behind them (time priority).
- Large market orders sweep multiple price levels, producing slippage equal to the volume-weighted average price (VWAP) of executed levels.
Slippage: measurement and estimation
Slippage is the difference between the expected price (mid or quoted price) and the actual fill price. It depends on order size, market liquidity, and volatility.
How to estimate slippage:
- Order book depth: aggregate resting volume across price levels until your target size is met. The average price across those levels is your expected VWAP fill.
- Historical trade ticks: sample how much price moved when trades of similar size executed
- Percent-of-volume rule: limit notional to a small fraction of 24h volume (e.g., 1% of 24h volume) to limit market impact
Illustrative calculation:
- Mid price = $1.00
- Resting sell offers: 50k @ $1.00, 100k @ $1.01, 200k @ $1.02
- If you market-buy 200k notional, you will sweep into the $1.02 level and your VWAP will be between $1.00 and $1.02. The percent slippage = (VWAP - mid)/mid.
Note: sizes above are illustrative. In backtests, model slippage conservatively and run sensitivity checks (double/half slippage) to see if your edge survives.
Execution strategies for different order sizes
Small orders (retail-size, low market impact)
- Use market orders on liquid pairs for speed
- Prefer limit/post-only if you can wait and want maker fees
- Example: a $100–$1,000 order on BTC/USDT is often safe as a market taker in active hours
Medium orders (noticeable book impact)
- Consider limit orders placed inside spread with a time-in-force (GTC or post-only)
- Ladder the order into multiple limit slices across price levels to increase fill probability without sweeping the book
- Use IOC for urgent partial fills
Laddering example (simple): split a 10k order into 5 equal limit slices spaced by 0.1% and leave as post-only. You raise the chance of getting filled at better prices and avoid sweeping liquidity.
Large orders (institutional-style)
- Use algorithmic execution: TWAP (time-weighted average price), VWAP, or custom volume-sliced orders
- Consider using off-exchange liquidity (OTC desks) for very large notional
- Monitor market depth and schedule slices to match historical intraday volume patterns
When to use TWAP/VWAP: when avoiding market impact over a fixed interval is more important than instant execution. VWAP tries to match the market’s volume profile and often produces better average price for large trades.
Practical execution tactics
- Post-only for fee savings: Use post-only when you can afford to wait and want maker discounts. Many exchanges offer reduced maker fees (sometimes negative rebates).
- Use iceberg orders where supported: reveal a small visible slice to the book while hiding the remainder
- Use limit price sliders: if your limit doesn’t fill within X minutes, move it closer to market or cancel and re-post depending on changing market conditions
- Monitor queue position for high-frequency execution: time priority matters near tight spreads
Simulating execution in backtests (what to model)
Realistic backtests model both price and fill probability. Some practical heuristics:
-
Market order fills: simulate VWAP across the candle’s trade ticks or use next-candle open as a conservative fill. Add a slippage buffer (e.g., 0.05–0.5% depending on coin liquidity).
-
Limit order fills: assume a fill if the candle touches your limit price and add a fill probability (e.g., 30–90%) depending on aggressiveness, spread, and timeframe. Alternatively, simulate partial fills proportionally to volume at price levels.
-
Maker/taker fees: apply maker fee for executed limit orders (if post-only condition would have been met) and taker fee for market/stop-market fills. Fees can be asymmetric and materially change profitability.
-
Order size constraints: cap position size relative to recent order book depth (or percent of 24h volume) in the backtest to avoid unrealistic fills.
Pseudocode (limit order fill decision):
# signal generated at candle t (using completed candle)
limit_price = prev_mid - 0.001 * prev_mid # example: 0.1% inside mid
if candle.high >= limit_price and random() < fill_prob:
fill_price = min(limit_price, candle.open) # optimistic example
apply_maker_fee()
else:
no_fill
Keep the assumptions explicit in every test and run sensitivity checks. If a strategy survives 2× slippage and 2× fees, it is more likely to be robust.
Checklist before sending real orders
- Check notional vs 24h volume (keep it small)
- Decide maker vs taker strategy (post-only vs market)
- Set stop-loss and max position size (risk rules)
- Prefer isolated margin for single-position risk control
- Paper trade or forward-test small slices first
- Log every fill and compare live to simulated fills (measure drift)
Common mistakes and how to avoid them
- Blindly using market orders for large notional — solution: slice and use TWAP/VWAP
- Assuming backtest fills are free — solution: model fees and slippage explicitly
- Chasing fills with ever-wider limits in fast markets — solution: predefine repost rules or use IOC
- Relying on single exchange liquidity snapshot — solution: aggregate across venues or use BTC/USDT top-tier pairs when possible
Internal links and resources
- Backtesting best practices: /blog/how-to-backtest-crypto-strategy
- VWAP & execution concepts: /blog/vwap-trading-guide
- Strategy Builder (simulate realistic fills & presets): /simulate
- Position sizing & risk: /blog/position-sizing-kelly-criterion and /blog/risk-management-101
Conclusion
Execution is not plumbing — it’s part of your edge. The right order type, sensible slicing, and conservative slippage modeling turn a promising signal into repeatable P&L. Start by measuring: log fills, simulate fills in backtests, and use conservative slippage assumptions. If a strategy fails under realistic execution, it is not ready for live capital.
Start small, measure every trade, and iterate.
This post is educational content and not financial advice.
Build Your Own Strategy
Combine indicators, set conditions, and backtest on 570+ coins with 2+ years of data. No code required.