Mark price vs last price on Binance Futures — why your trade closed when the chart said otherwise
You set a stop loss. The chart never touched it. Your position closed anyway. The first instinct is to blame the exchange or assume a bug. The actual reason is that Binance Futures runs liquidations and SL triggers on a different price feed than the one your chart shows — the mark price. Once you understand the difference, the apparent ghost-stop becomes predictable and tradable around.
Two prices, two purposes
Every futures pair on Binance has at least three different "prices" at any instant:
- Last price — the price of the most recent trade on the perpetual contract.
- Mark price — a composite "fair" price computed from a weighted blend of (a) the perpetual mid-price, (b) the funding-adjusted index price, and (c) spot prices on multiple major exchanges.
- Index price — pure spot-derived reference, blended across major venues.
The chart you look at on TradingView shows last price. Binance's risk engine — the system that triggers liquidations and conditional orders — runs on mark price. These can diverge during volatile moves by 0.1% to 2% or more.
Why two prices exist
Mark price exists to protect both traders and the exchange from short-term manipulation. If a single big trade flickered the last price by 5% for two seconds before the order book absorbed it back, you don't want every leveraged long getting liquidated on that wick. Mark price smooths through transient dislocations using the spot reference, so liquidations only fire when the broader market actually moved.
The flip side: if a coin pumps on multiple spot exchanges before the perpetual catches up, mark price moves first, and your stop triggers BEFORE the chart on the perp shows the same level. From your point of view, the chart never touched your stop. From Binance's point of view, the mark price did.
How mark price is actually calculated
The Binance formula is published. Mark price ≈ index price × (1 + funding rate × time_to_funding) + 5-minute moving average of perpetual-spot premium. Translation: mark price tracks the spot reference, then adds a small adjustment for the perpetual's own positioning.
In stable markets, mark price and last price stay within a few basis points. During fast moves, divergence can spike. The most common pattern: spot leads, perpetual lags by 5–30 seconds, mark price tracks spot, last price tracks the perpetual order book. Your stop fires on mark.
Three scenarios where you get caught
Scenario 1: Spot pump, perpetual lag
BTC spot pumps from $60,000 to $61,500 in 10 seconds on Coinbase + Kraken + Bybit. Binance perpetual lags because the order book takes longer to clear. Mark price moves to ~$61,400 within seconds. If you had a short with stop at $61,200, your position closes — even though the perp's last price was still at $60,900 when it happened.
From the chart: looks like your stop hit the perp at $61,200 even though candles only showed up to $60,950.
Scenario 2: Funding rate spike, premium adjustment
Funding pays at 00:00 UTC. Right before payment, traders position themselves to avoid paying. This compresses or expands the perpetual-spot premium briefly. Mark price recomputes with the new premium adjustment. Stops near the prior premium level can trigger from the recalculation alone.
Scenario 3: Cross-exchange spot wick
Spot on Coinbase has a 30-second flash wick (a single big sell). Binance index price weights Coinbase. Index drops. Mark price drops. Your long stop fires. Within a minute, Coinbase price recovers and perpetual barely moves. From your perspective, the stop fired on a wick you never saw on your Binance chart.
How to verify whether mark price moved
Binance publishes mark price history via the API: /fapi/v1/markPriceKlines?symbol=BTCUSDT&interval=1m returns mark-price 1-minute candles. You can pull this and overlay against the last-price chart in your trading platform. Mark price will look slightly different — usually within 0.1% but during stress events with visible divergence.
TradingView also offers Binance mark price as a separate symbol. Search for "BTCUSDT.M" or similar — it pulls the mark price feed directly. If your stop fired on a level that doesn't show on the normal chart, check the mark-price chart and you'll usually see the wick that triggered you.
How to place stops that survive mark-price wicks
1. Use wider stops + smaller positions
A 5% stop has more buffer against transient mark-price divergence than a 2% stop. Smaller position size keeps dollar risk constant. You trade fewer stop-outs from noise for slightly worse edge per trade.
2. Set workingType to LAST_PRICE on conditional orders
Binance lets you choose whether your stop trigger runs on mark price (default) or last price. Last-price triggers won't fire from mark-price wicks. The trade-off: in fast moves, last-price triggers can lag and you end up closing at a worse price than the level. For most discretionary strategies, defaulting to mark price is right; for specific structural setups where you only want to exit on actual perp trades, last-price triggers fit better.
3. Add a manual sanity buffer
If your structural stop is at $59,500, place your actual SL order at $59,400. The extra 0.15% buffer absorbs typical mark-price divergence without losing protection on real moves. Costs you a fraction more on losing trades; saves you many false stops.
4. Use mark-price-aware sizing
Mid-cap altcoins have higher mark-vs-last divergence than majors. Their book is thinner, premium swings wider, mark recalcs more violent. Use wider stops on alts than on BTC/ETH, accordingly.
How systematic strategies handle this
Production trading systems mostly use a mix: structural stops (based on the chart pattern) for the trade thesis, plus a software-side hard safety stop that runs on mark price. The chart-based stop fires when the price action invalidates the thesis; the safety stop fires when the position is in genuine trouble.
Our internal strategies use exactly this two-layer approach. The thesis-level exit fires on the strategy's own rules (which are firm IP and not published); the safety SL is a wider mark-price-based hard stop that prevents liquidation under all conditions. Subscribers connecting via API get both layers automatically — the strategy thesis exit on Telegram, the safety stop placed on the exchange.
The honest takeaway
Mark price vs last price is the single most common "the chart didn't show that" frustration in crypto futures, and it is also the single most preventable one. Five minutes of reading the formula, one adjustment to where you place stops, and the apparent ghost-stop disappears. Most retail traders never look at the mark-price feed until they have already been stopped out a few times by it.
For systematic strategies, the right answer is engineered into the execution layer. For discretionary traders, the right answer is to add the mark-price feed to your chart and place stops with that data in mind.
Get signals with mark-price-aware exits
Our Pro feed delivers signals with structural entries and dual-layer exit logic — thesis exit from the strategy, hard safety stop on the exchange that survives mark-price wicks. Trial is free.
Start free trial →