You click buy, expecting the price on the screen. The order fills, and you didn’t get that price — a few cents off, sometimes a few dollars, sometimes much worse. That difference is slippage, and it’s one of the least discussed costs in trading.
It sits alongside the spread and the commission as a cost that never flashes on the chart but is baked into every fill. The spread is the gap you cross to trade at all. Slippage is what happens when the price moves, or the liquidity runs out, between the moment you commit and the moment your order actually executes.
Where it comes from on an exchange
On a venue like Binance or Bybit, your order is matched against an order book — the stack of bids and asks resting at each price. A market order takes whatever liquidity is there right now, starting from the best price and working outward.
That’s fine when your size is small relative to what’s resting. It stops being fine the moment it isn’t. If you send a market order to buy 10 BTC and only 2 are offered at $80,000, the remaining 8 fill at the next prices up the book — a bit at $80,010, a bit at $80,025, and so on. Your average fill ends up worse than the number you clicked, and the difference is pure slippage. The bigger your order, or the thinner the book, the further it eats.
A market order, in other words, guarantees that you trade — but it hands the price entirely to the market.
The fix: say the highest price you’ll accept
Here’s the part most beginners skip. On a CEX you don’t have to accept whatever the book gives you. You can name your terms, and the exchange enforces them.
The simplest version is a plain limit order: “buy, but not above X.” You set the ceiling; if the market never reaches it, you don’t fill, but you never overpay either.
The more useful version for an entry is a conditional (or stop-limit) order, which combines two prices:
- A trigger price — the level where you want the order to wake up and start working. “Don’t do anything until price reaches 80,000.”
- A limit price — the most you’re willing to actually pay once it does. “And even then, never fill above 80,050.”
Here’s that exact order on Bybit. Trigger at 80,000, limit at 80,050, size half a BTC:

Read what that does. The order sits dormant until BTC trades up to 80,000 — that’s your signal to enter, maybe a breakout you’ve been waiting for. The moment it triggers, it becomes a limit order that will fill anywhere from 80,000 up to 80,050, but not a tick higher. That 50-dollar band is the maximum slippage you’ve agreed to tolerate. Look at the Value line in the screenshot: 40,000 at the trigger, 40,025 at the worst allowed fill. The gap between those two numbers is your slippage, and you chose it in advance instead of finding out afterward.
The honest trade-off
There’s no free lunch here, and it’s worth being clear about it. When you cap the price with a limit, you accept that the order might not fill at all. If the market gaps straight through your band — trigger at 80,000, prints 80,090 before you’re matched — the order just sits there unfilled while price runs away without you.
So you’re really choosing which risk you’d rather carry:
- A stop-market order guarantees you get in, but not at what price — you take the slippage.
- A stop-limit order guarantees the price, but not that you get in — you take the risk of missing the move.
Neither is correct in the abstract. On a calm retest of a level, a tight limit costs you almost nothing and protects you completely. Chasing a violent breakout, insisting on a price to the tick can leave you watching from the sidelines. Knowing which situation you’re in is the actual skill.
A word on decentralized exchanges
Everything above assumes an order book. On a DEX like Uniswap or PancakeSwap there isn’t one — you trade against a liquidity pool, and the larger your swap is relative to the pool, the more you move the price against yourself. Instead of a limit price you set a slippage tolerance, a percentage the fill is allowed to drift before the trade cancels.

Set that tolerance too wide and you’re not just risking a bad fill — you’re advertising one. Every transaction sits in the public mempool for a few seconds before it confirms, and bots watch that queue. A generous tolerance tells them exactly how much worse a price you’ll accept, which is the opening a sandwich attack needs: buy ahead of you, let your trade push the price into the band you allowed, sell right after. I learned that the expensive way once, leaving a tolerance wide on a DEX order and effectively handing $600 to a bot I could watch take it. The CEX lesson and the DEX lesson are the same lesson — decide your worst acceptable price yourself, before you click.
Why it matters
Slippage eats into results quietly. On small orders in liquid markets it’s negligible. But scale up, or trade during a fast move, and it can cost more than your commissions do. The real cost of a trade is never just the fee percentage — it’s fees plus slippage plus financing.
The difference between a trader who controls it and one who doesn’t isn’t sophistication. It’s a single habit: never send a naked market order into size or into thin liquidity without deciding, in advance, the worst price you’re willing to accept. On a CEX that’s a limit or a conditional order. On a DEX it’s a tight tolerance. Either way, the number is yours to set — so set it.
Next in this series: liquidity — why some markets are smooth rivers and others are deserts.
Compare live spreads across Binance and Bybit on ChartThread →