Why Binance Mark Price Stop-Loss Triggers Before Last Price
When a mark price stop-loss triggers earlier than the latest price, it is not a system glitch — it is a deliberate mechanism of Binance futures risk control. Liquidations are based on the mark price, not the last traded price. If you set your stop order to trigger on the mark price, it will activate as soon as the mark price hits your threshold — even if the last price has not yet "caught up" to that level.
The world's largest cryptocurrency exchange by trading volume,leading in security and liquidity.
New user benefit: Enjoy 20% off trading fees upon registration!
Below are the specific pricing mechanisms, trigger logic, and steps to verify what happened.
Prerequisites
You are trading Binance futures and hold a long or short position.
You have set a stop order with a trigger condition based on the mark price.
You notice that the stop order was triggered even though the last price did not appear to reach your stop level.
Step 1: Understand the Core Difference Between Mark Price and Last Price
Binance futures trading pages display two different prices:
Last Price: The latest contract transaction price, reflecting the instantaneous price of actual buys and sells.
Mark Price: The estimated fair value of the contract, calculated from a weighted composite of spot prices across major exchanges. It is used to measure unrealized PnL and to trigger liquidations.
Binance uses the mark price — not the last price — to determine liquidations. This prevents users from being unfairly liquidated due to short-lived price spikes or manipulation on a single exchange.
Step 2: Check Which Price Type Your Stop-Loss Trigger Is Using
Binance take-profit and stop-loss orders support two trigger price types:
Scenario A: Trigger based on Last Price
The stop order triggers only when the last traded price reaches your set level.
It more closely matches actual execution prices, but during extreme volatility it may fail to prevent liquidation because liquidation always watches the mark price.
Scenario B: Trigger based on Mark Price — this is why the stop-loss triggered earlier than the last price
If you set your stop trigger to mark price, and the computed mark price reaches your stop line earlier than the last price, the stop order will activate at that moment, even if the last price hasn't moved there yet.
The official Binance API documentation confirms this: the
workingTypeparameter for conditional orders can be set toMARK_PRICE(mark price) orCONTRACT_PRICE(contract last price). The default isCONTRACT_PRICE.
Completion criterion: Open the futures trading interface, check the "Trigger Price" dropdown field when setting a stop order, and verify whether "Mark Price" or "Last Price" is currently selected.
Step 3: Understand the Additional Effect of the Mark Price Truncation Rule
When processing mark price triggers, Binance truncates (rounds down) the mark price according to the contract's price tick size to decide whether the trigger level has been reached.
Example: ETHUSDT has a tick size of 0.01. You hold a long position and place a mark price stop-loss with a trigger price of 2000.05 USD. If the mark price reaches 2000.0489, the truncated value is 2000.04 — lower than the trigger — so the stop does not activate. If the mark price reaches 2000.05000001, the truncated value is 2000.05, exactly matching the trigger, and the stop order is activated.
This truncation mechanism can cause the stop to be activated the moment the mark price barely brushes the trigger line.
Completion criterion: After a stop triggers, check the depth chart or 1-minute candlestick chart for that contract to confirm whether the mark price actually reached or exceeded your stop level at the moment of activation, even if the last price appeared not to.
Step 4: If You Want to Avoid Early Triggers, Switch to Last Price as the Trigger Type
If you feel the mark price is too sensitive and prefer your stop to be more aligned with actual traded prices:
When setting a take-profit or stop-loss order, locate the "Trigger Price" dropdown menu.
Switch from "Mark Price" to "Last Price".
Confirm and submit the order.
Important warning: Using the last price as the trigger does not guarantee protection against liquidation, because liquidation prices are always based on the mark price.
Completion criterion: Resubmit your stop order and verify that the trigger type now shows "Last Price".
Common Misunderstanding
Misconception: "Stop trigger price equals market order execution price"
Many users see a stop order triggered and then filled at a significantly worse price, and they assume they were cheated. In reality, the trigger only activates the order. The trigger price and the execution price are two different concepts. After the trigger, a market order is placed and fills at the best available order book price at that moment. If the market moves sharply, slippage can be large, causing the actual fill price to be much worse than the stop price.
Risk Reminders
The spread between mark price and last price can widen in extreme conditions: During intense volatility, the last price may deviate significantly from the mark price, causing your mark price stop to trigger while the last price has not yet reached the level, or vice versa.
Liquidation always uses the mark price: Even if you set your stop trigger to last price, when the mark price hits your liquidation level, the system will force-close your position regardless of whether your stop order has triggered.
The world's largest cryptocurrency exchange by trading volume,leading in security and liquidity.
New user benefit: Enjoy 20% off trading fees upon registration!
How to Confirm the Operation is Complete
Go to [Open Orders] or view the history of triggered take-profit/stop-loss orders, and check whether the trigger price type for that order was "Mark Price" or "Last Price". If it activated exactly when the mark price reached your stop level, then the mechanism worked as designed.
If next time you want the stop order to track the last traded price more closely, switch the trigger type to "Last Price", but be aware that this does not prevent liquidation.
