Understanding perpetual futures mark prices
Important: This product may not be available in your location or jurisdiction.
What is Mark Price?
Mark Price refers to the fair value of the perpetual contract at the current time. Unlike the market price or the last trade price, both of which can be influenced by temporary market fluctuations and are expected to have a higher volatility, the Mark Price mitigates idiosyncratic price fluctuations and reduces the risk of forced liquidations.
Why do we need Mark Price?
Mark Price is a valuable tool as it provides stability and fairness in perpetual trading which helps to mitigate abnormal price movements and reduce the risk of forced liquidations. Mark price also serves as a safeguard against manipulative trading as it more accurately reflects derivative values in highly uncertain markets. It can also react more quickly to broader market movements.
How is the Mark Price used?
Liquidation: Mark price is used as reference price for liquidation. When a partial liquidation or full liquidation event takes place, the liquidation engine sends limit orders at prices relative to the mark price when it seeks to reduce or close all open perpetual positions. Learn more about how liquidation works.
Funding: Funding payments in perpetual contracts are used as an incentive for the perpetual futures market price to remain correlated to its underlying market’s price over the medium to long term. For instance, the BTC/USDC PERP perpetuals market should be correlated to the BTC/USDC spot market price. Due to the funding mechanism you will receive or pay more or less depending on the relative difference between the Mark Price and the Index Price.
Risk management: Mark Price provides a more stable and reliable reference price to calculate mark-to-market profits and losses, which allows for a more controlled approach to managing positions and prevents unnecessary liquidations.
How is the Mark Price calculated?
Every second we recalculate the value
Mark Price = clamp(INDEXPREM, min(Bid Price, Index Price), max(Ask Price, Index Price)
where
clamp(val, lower, upper) = max(lower, min(upper, val))
INDEXPREM = Index Price * (1 + PREMIUM)
PREMIUM = EMA((ASSUMED - Index Price) / Index Price, 30 seconds)
EMA(x, y) = exponential moving average of the input signal x, with a half-life decay of y
ASSUMED:
= Bid Price, if the Bid Price > Index Price; else
= Ask Price, if the Ask Price < Index Price; else
= Index Price (if the Bid Price ≤ Index Price and the Ask Price ≥ Index Price)
Although Mark Price is updated every second, PREMIUM is only updated while trading is enabled for the given market. If trading is disabled or there is an outage then PREMIUM is not updated.
Note: Bullish reserves the right to change the above methodology without prior notice
Comparing Mark Price, Index Price and market price
Type | Overview |
|---|---|
Mark Price | Fair value of a perpetual contract, used for liquidations, funding calculations, and risk management. |
Index Price | Consensus price of a given asset across a number of reputable exchanges, used in funding calculations and risk management. |
Market Price | Current price of a given market that is being traded in the Bullish exchange. |