1. Introduction to Mark Price and Price Index
The Mark Price is an essential tool utilized in crypto futures trading, which guarantees the fairness and precision of futures contracts pricing.
To minimize the risks associated with price volatility and market manipulation, the Price Index serves as a reliable reference point. Unlike relying solely on the asset's last trading price, the Price Index factors in the asset's price across multiple exchanges, providing a more stable benchmark.
The Mark Price calculation involves utilizing the Price Index, which is derived from the weighted average spot price of the asset across several cryptocurrency exchanges.
2. Price Index of USDT-M Perpetual contracts
At the core of the Mark Price mechanism is the Price Index, a constantly updated weighted average value derived from major spot exchanges, representing the accurate market value of futures contracts. By continuously considering any fluctuations in the asset's spot price or the exchange weightings, the Price Index ensures a fair and reliable pricing system for futures trading.
At BitForex, the Price Index for USDT-M perpetual contracts derives prices from KuCoin, Huobi, OKX, Bittrex, HitBTC, Gate.io, Ascendex, MXC, Bitfinex, Coinbase, Bitstamp, Kraken, Binance.US, and Bybit.
How to calculate the Price Index for perpetual futures contracts?
Price Index = Sum of (Weight Percent of Exchange A * The Symbol’s Spot Price on Exchange A + Weight Percent of Exchange B * The Symbol’s Spot Price on Exchange B +...+ Weight Percent of Exchange N * The Symbol’s Spot Price on Exchange N)
Where:
Weight Percent of Exchange i = Weight of Exchange i / Total Weight
Total Weight = Sum of (Weight of Exchange A + Weight of Exchange B + ...+ Weight of Exchange N)
Please note that in the event of extreme price volatility or deviation from the Price Index, BitForex will undertake additional protective measures, including but not limited to changing the constituents of the Price Index.
To prevent negative impacts on market performance caused by Spot exchange connectivity issues or outages, BitForex has implemented further measures to provide additional protection:
- Exchange connectivity issues: If BitForex can’t access the data feed from an exchange and this exchange has trades updated in the last 5 minutes, the system will take the price data from the last feed for index calculation. If one exchange doesn’t provide any update for 10 seconds, the weight of this exchange will be zero in the weighted average calculation.
- The “Last Price Protected” mechanism: When BitForex cannot obtain a stable and reliable source of reference data for the Price Index and the Mark Price, the Price Index will not be updated for contracts that use a single source of the Price Index. BitForex will use the “Last Price Protected" mechanism to update the Mark Price until it is back to normal. This mechanism temporarily switches the matching system to the latest transaction price of the contract within a certain limit as a reference for the Mark Price to calculate unrealized profit and loss and liquidation call level to avoid unnecessary liquidation.
Let’s calculate the BTCUSDT Price Index as an example:
BTCUSDT Price Index = (Price of BTCUSDT on Binance) * (Weight Percent of Binance) + (Price of BTC-USDT on OKX) * (Weight Percent of OKX) + (Price of BTC-USDT on Bittrex) x (Weight Percent of Bittrex) + (Price of BTCUSDT on HitBTC) * (Weight Percent of HitBTC) + (Price of BTC-USDT on Coinbase) * (Weight Percent of Coinbase) + (Price of BTC_USDT on Gate.io) * (Weight Percent of Gate.io) + (Price of BTC-USDT on KuCoin) * (Weight Percent of KuCoin) + (Price of BTCUSDT on Bybit) * (Weight Percent of Bybit)
Note:
- Cross Rate: For underlying assets with no direct quotes, BitForex will use the synthetic price to calculate the cross-exchange rate as the synthetic index, e.g., calculating LINK/USDT with LINK/BTC and BTC/USDT.
- BitForex reserves the right to update the Price Index references from time to time without prior notice.
3. Mark Price of USDT-M Perpetual contracts
The Mark Price is a more reliable indicator of a contract's value in comparison to the Perpetual Futures prices, mainly due to its lower volatility in the short run. BitForex relies on the Mark Price to minimize unwarranted liquidations and thwart any attempts of market manipulation by unscrupulous actors.
The calculation of the Mark Price is intricately linked to the Funding Rate and vice versa. As Unrealized PNL is the primary driver of liquidations, it is essential to ensure that the Unrealized PnL calculation is accurate to avoid unnecessary liquidations. The underlying contract for the Perpetual Contract is the ‘true’ value of the Contract, and an average of the prices on the major markets constitutes the Price Index, which is the primary component of Mark Price.
How to calculate the Mark Price for perpetual futures contracts?
Mark price = Median (Price 1, Price 2, Contract Price) **
Price 1 = Price Index * (1 + Last Funding Rate * (Time until next Funding / Funding period)
Where:
- The Funding period, expressed in hours, is the duration between each time BitForex charges users a funding fee**
- Time until next Funding is the time left until the next funding fee charge (expressed in hours). For example, if the Funding period is set to 8 hours, and the last funding fee charge occurred 2 hours ago, the time until the next funding would be 6 hours.
**Please note that the funding fee is a payment between long- and short-position holders. BitForex only serves as a neutral intermediary in the transaction.
Price 2 = Price Index + Moving Average (5-minute Basis) **
**The Moving Average (5-minute Basis) is calculated by taking the average of the bid and ask prices and subtracting the Price Index, before taking the average of that value over the last 5 minutes, calculated every 5 seconds (60 data points).
Moving Average (5-minute Basis) = sum of [(Bid1_i + Ask1_i)/2 - PI_i] /60
Where:
- PI is the Price Index at the time of calculation.
- Bid1_i, Ask1_i, and PI_i are recorded within a 5-minute -period, where data is collected at 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, and 55 seconds past the minute, for a total of 60 data points over 5 minutes.
**Please refer to the Price Index for each USDT-M Perpetual Contract.
**Median: If Price 1 < Price 2 < Contract Price, then Price 2 will be taken as the Mark Price.
Please note that the Mark Price may deviate from the spot price due to extreme market conditions or deviations in price sources. BitForex will take additional protective measures, i.e., calculating Mark Price = Price 2.
During system upgrades or system downtime, where all trading activities are paused, the system will continue to use the Mark price formula to calculate the Mark Price, and the Moving Average (5-minute Basis) in Price 2 will be set to 0 until the system is back to normal.
Comments
0 comments
Article is closed for comments.