Exchange
Blockchain and crypto asset exchange
Academy
Blockchain and crypto education
Broker
Trading terminal solutions
Charity
Charity
Cloud
Enterprise exchange solutions
DEX
Fast and secure decentralized digital asset exchange
Labs
Incubator for top blockchain projects
Launchpad
Token Launch Platform
Research
Institutional-grade analysis and reports
Trust Wallet
Binance's official crypto wallet
Buy Crypto
MarketsNFT
Scan to Download App IOS & Android
Download
English
USD
Support Center
FAQ
Crypto Derivatives
Futures Contracts
COIN-M Futures Contracts
Mark Price in Coin-Margined Futures
Binance
2020-06-11 07:38
Important Note: Binance Futures uses a mark price as a reference in liquidations and calculations of unrealized PNL. Mark price is an estimated fair value of a contract and it differs from ‘last price’. A mark price is used to prevent unfair and unnecessary liquidations that may happen when the market is highly volatile. Additionally, it also helps to prevent price manipulation.
It is important to note that mark prices in both perpetual futures and quarterly futures are different and they are computed with different formulas and methodologies. We highly recommended reading both sections (Mark Price in Perpetual Futures and Mark Price in Quarterly Futures) to get a clear understanding of mark price methodologies.
A Mark Price consists of two components: Price Index and Moving Average(MA) Basis.
Price Index is an aggregate price extracted from the major spot exchanges, weighted by their relative volume, this is done to prevent price manipulation from a single exchange. The Price Index for coin-margined contracts derived prices from Bitstamp, Coinbase Pro, Kraken, Bittrex, Binance, Huobi and FTX.
The Price Index references for each coin-margined futures contracts are as follows:
Coin-Margined
Futures Contracts
Price Index References from the Exchanges
BitstampCoinbase ProKrakenBittrexBinanceBinance Cross RateHuobi Cross RateFTX
BTCUSDBTCUSDBTC-USDXBT/USDUSD-BTCBTCBUSD---
ETHUSDETHUSDETH-USD-USD-ETHETHBUSDETHBTC*BTCBUSDethbtc*BTCUSD Index-
XRPUSDXRPUSDXRP-USD-USD-XRPXRPBUSDXRPBTC*BTCBUSDxrpbtc*BTCUSD Index-
ADAUSD--ADA/USD-ADABUSDADABTC*BTCBUSDadabtc*BTCUSD Index-
LINKUSD-LINK-USDLINK/USDUSD-LINKLINKBUSDLINKBTC*BTCBUSDlinkbtc*BTCUSD Index-
BNBUSD----BNBBUSDBNBBTC*BTCBUSD-BNB/USD
TRXUSD----TRXBUSDTRXBTC*BTCBUSDtrxbtc*BTCUSD IndexTRX/USD
DOTUSD--DOT/USD-DOTBUSDDOTBTC*BTCBUSDdotbtc*BTCUSD Index-
EOSUSD-EOS-USD--EOSBUSDEOSBTC*BTCBUSDeosbtc*BTCUSD Index-
LTCUSDLTCUSDLTC-USD--LTCBUSDLTCBTC*BTCBUSDltcbtc*BTCUSD IndexLTC/USD
BCHUSDBCHUSDBCH-USD--BCHBUSDBCHBTC*BTCBUSDbchbtc*BTCUSD IndexBCH/USD
ETCUSD----ETCBUSDETCBTC*BTCBUSDetcbtc*BTCUSD Index-
FILUSD----FILBUSDFILBTC*BTCBUSDfilbtc*BTCUSD Index-
Notes:
  1. BTCUSD Index = Σ [(BTCUSD of Bitstamp) x Weightage 1) + (BTC-USD of Coinbase Pro x Weightage 2) + (XBT/USD of Kraken x Weightage 3) + (USD-BTC of Bittrex x Weightage 4) + ( BTCBUSD of Binance x Weightage 5)] / Total Weightage
  2. Cross Rate: For some underlying assets with no direct quotes, we should use synthetic price, calculating cross-exchange rate as synthetic index, e.g. calculating LINK/USD with LINK/BTC and BTC/USD
  3. Binance reserves the right to update the Price Index references from time to time.
A moving average basis is used as the second component of mark price calculation. It helps to smooth out the price data over a specified period of time by creating a constantly updated average price. This methodology reduces the possibility of unfair and unnecessary liquidations when the market is highly volatile.
Traditionally, the price of a quarterly futures contract will converge with its corresponding spot price as the contract expires after the three-month period. As the contract runs down towards expiry, the mark price will closely reflect spot prices and the moving average basis component will no longer be part of the mark price calculation. This means that the mark price of a quarterly futures contract will be computed differently as it reaches the time of expiration.
On the expiration date, the mark price for a quarterly futures contract will be calculated as follows:
i) The time to delivery is greater than 1 hour
Formula
Mark Price before 25 September 2020, 06:59:59 UTC
= Price Index + Moving Average (30-minute Basis)*
*Moving Average (30-minute Basis) = Moving Average ((Bid1+Ask1)/2- Price Index), which measures every minute in 30-minute interval
How to Calculate
Step 1: Calculate the Price Index
Assume Binance uses an equally-weighted price average, the prices of BTCUSD trading pairs on the selected exchanges are 10,000 USD, 10,0001 USD, 10,0002 USD, 10,003 USD and 10,004 USD respectively.
Price Index = (10,000 + 10,001 + 10,002 + 10,003 + 10,004) / 5 = 10,002 USD
Step 2: Calculate the Moving Average on 30-minute Basis
Moving Average (30-minute Basis)
= Moving Average (Mid-Price*- Price Index), which measures every minute in 30-minute interval
*Mid-Price = (Bid1+Ask1)/2
To calculate moving average, we need to get the mid-price from the order book and Price Index of the first second of every minute for the past 30 minutes, then we will have n=30 in total.
For example, if we want to calculate the Mark Price of BTCUSD 0925 at 12:30:00 UTC, the Mid-Price and Price Index are as follows:

Moving Average (30-minute Basis)
= Moving Average (Mid-Price- Price Index)
= [(Mid-Price- Price Index)1 + (Mid-Price- Price Index)2 + … + (Mid-Price- Price Index)30 ] / 30
= [(10,003 - 10,001) + (10,004 - 10,002) + … + (10,005 - 10,006)] / 30
Step 3: Substitute the Price Index and Moving Average (30-minute Basis) into the formula
Let say Price Index = 10,002 USD and Moving Average (30-minute Basis) = -1
Mark Price at 12:30:00 UTC
= Price Index + Moving Average (30-minute Basis)
= 10,002 USD - 1 USD
= 10,001 USD
ii) Time to delivery is equal or less than 1 hour
Formula
Mark Price on 25 September 2020, 07:00:00 - 07:59:59 UTC
= Average of Price Index (every second from 07:00:00 and 07:59:59 UTC on the delivery day)
How to Calculate
Step 1: Calculate the Price Index
Assume Binance uses an equally-weighted price average, the prices of BTCUSD trading pairs on the selected exchanges are 10,000 USD, 10,0001 USD, 10,0002 USD, 10,003 USD and 10,004 USD respectively.
Price Index = (10,000 + 10,001 + 10,002 + 10,003 + 10,004) / 5 = 10,002 USD
Step 2: Calculate the Average of Price Index
Mark Price at Time n
= (Price Index 1 + Price Index 2 + … + Price Index n) / n
Example:
Mark Price at 7:00:02 on 25 September
= (Price Index at 7:00:00 + Price Index at 7:00:01 + Price Index at 7:00:02) / 3
= (10,002 + 10,003 + 10,004) / 3
= 10,003
Related Articles
Contract Specifications of Coin-Margined Futures Contracts