There is a specific flavor of angry message that perpetuals generate, and it always comes with a chart screenshot attached. Either the candle never touched the liquidation price and the position got closed anyway, or the candle clearly speared through a stop and nothing fired. Both feel like the exchange is cheating you. Almost every time the real explanation is more boring. The trader was watching one price while the exchange was acting on a different one, because every perp venue runs at least three prices at the same time, and they do different jobs.
The three prices, quickly
Last price is the simple one. It is the most recent trade that actually happened on this exchange's order book for this contract. It is what the candles on your chart are drawn from, and it is the world your fills live in, because when you buy or sell you trade against this book and nothing else. The catch is that last price is only as trustworthy as the book behind it. On a thin altcoin perp at four in the morning, one aggressive market order can move last price a long way without the rest of the world agreeing at all.
Index price is the exchange's estimate of what the asset is worth everywhere except its own order book. It is typically a weighted average of spot prices pulled from several large exchanges, with logic that drops a constituent if its feed goes stale or drifts too far from the others. Think of it as the outside world's opinion, smoothed and deliberately hard to push around, because moving it would mean moving spot on half a dozen venues at once.
Mark price is the one that actually governs your position, and it is also the one most traders could not define if you stopped them mid-trade. It starts from the index price and layers on a fair-value adjustment for the perp's premium or discount to spot, usually some smoothed version of the basis or the funding rate. The design goal is manipulation resistance. An attacker can wick last price with one fat order into a thin book. Moving mark price requires moving global spot, which is dramatically more expensive.
Which price touches your money
On essentially every major venue, liquidations run on mark price rather than last. That one fact resolves both screenshot complaints from the top of this post. If your venue's perp printed a violent wick but global spot barely moved, then mark barely moved, and your position survived even though the chart says it should have died. Run it the other way and it is less pleasant. If spot dumps hard while your particular perp holds up for a minute, mark follows spot down, and you can get liquidated at a level the candles on your own chart never printed. The chart was drawing last price. Your margin was being measured against mark the whole time.
Unrealized PnL on your position screen is usually marked to mark price as well, which is why the number can wiggle while the order book sits still. Funding is computed from the perp's premium against the index. Your actual fills, though, always happen in last-price world, against whatever the book looks like in that moment. So the trigger and the fill are two separate events, and they can live on two separate feeds. Holding that split in your head is most of the value of this post.
Volatility is when the feeds disagree the most, and for a mechanical reason. A cascade of liquidations turns into forced market orders that eat through the book, so last price overshoots whatever the news justified. The index, built from spot venues where nobody is being force-closed at 20x, moves far less. The gap between mark and last is widest at exactly the moment your conditional orders are deciding whether to fire, which is why the trigger setting is worth caring about at all.
Picking the trigger for each order
Most exchanges put a small dropdown on every conditional order that lets you choose whether it triggers on mark or last. Defaults vary by venue. Plenty default standalone stop orders to last price while defaulting the take profit and stop loss you attach to a position to mark, and most traders have never consciously chosen either. Rough rules I actually use:
- Protective stop on a leveraged position: trigger on mark. Liquidation runs on mark, so the order defending you from liquidation should watch the same feed. It also means a single-venue wick cannot stop you out of a position the rest of the market thinks is fine.
- Take profit: trigger on last. You want it firing when there is a real tradable print at your level on the book you are about to sell into, since that book is where the fill comes from anyway.
- Tactical stops placed on chart structure, under a swing low or a range boundary: last. The structure you drew exists in last-price data, and mark can sit meaningfully away from the level you actually care about.
- Whichever trigger you pick, remember the fill is still an order into the live book. A mark-triggered stop that fires during a dislocation fills at last-price reality, and that gap comes out of your pocket as slippage.
Both choices have a failure mode, and it is worth naming them so you know which one you are exposed to. The failure mode of last-price triggers is the scam wick. Someone nukes the book on your venue, price spikes through your stop, mark never moves, and you are flat at the bottom of a candle that retraces inside two minutes. You paid full spread to exit a move that only existed on one exchange. The failure mode of mark triggers is the perp-led move. Sometimes the perp genuinely leads spot. Last price blows through your level, mark lags behind because spot has not caught up yet, nothing fires, and by the time mark confirms the move you are exiting later and lower than you planned. Neither trigger is safe in every condition, which is why the honest answer is matching the trigger to the job of the order instead of picking a favorite and using it everywhere.
A five-minute audit
The practical version of all this fits in one sitting. Find your exchange's documentation page for the index composition and the mark price formula and skim it once, mostly so you know how many spot venues feed the index and how the fair-value part is smoothed. Check what your liquidation price is quoted against, which will be mark, and set your alerts on mark price instead of eyeballing candles that are drawn from last. Then open your live conditional orders and look at the trigger on each one. If you cannot remember choosing it, the exchange chose for you. And the next time a violent move hits, glance at the gap between mark and last before you react. A wide gap says the move is local to your venue's book. A narrow one says the whole market actually repriced.
I got sensitive to this while wiring execution across a lot of venues for Blockcircle, where two exchanges with identical-looking stop orders would fire at different moments on the same market data, because one defaulted the trigger to mark and the other to last, and neither said so anywhere near the confirmation button. You do not need to route across 150 exchanges to hit the same trap. One venue and one unread dropdown is enough, so go check the dropdown. It is some of the cheapest insurance available in leveraged trading, and it decides whether your stop protects the position or donates it to a wick.