Mark Price

Fair-price estimate used for risk, PnL, and liquidation logic

Overview

Mark price is OBSDN's manipulation-resistant fair-value estimate for each perpetual contract. It is the reference price for:

  • Unrealized PnL computation
  • Liquidation and margin evaluation
  • Stop order trigger logic

Calculation

OBSDN computes mark price as:

Mark Price=Median(P1,P2,Last Traded Price)\text{Mark Price} = \text{Median}(P_1, P_2, \text{Last Traded Price})

Where:

P1=Pindex×[1+rf×t8]P_1 = P_{\text{index}} \times \left[1 + r_f \times \frac{t}{8}\right] P2=Pindex+MA2.5min(Basis)P_2 = P_{\text{index}} + \text{MA}_{2.5\text{min}}(\text{Basis}) MA2.5min(Basis)=MA[Bidbest+Askbest2Pindex]\text{MA}_{2.5\text{min}}(\text{Basis}) = \text{MA}\left[\frac{\text{Bid}_{\text{best}} + \text{Ask}_{\text{best}}}{2} - P_{\text{index}}\right]

Definitions:

  • P1P_1funding-adjusted index price: index price adjusted by the pro-rata funding cost remaining until next settlement. Reflects fair value implied by the prevailing funding rate.
  • P2P_2basis-adjusted index price: index price plus the 2.5-minute moving average of the current basis. Reflects fair value implied by recent order-book conditions.
  • PindexP_{\text{index}}: aggregated spot reference price from oracle sources
  • rfr_f: latest funding rate
  • tt: hours until next funding settlement
  • Basis: mid-price minus index price — Bidbest+Askbest2Pindex\frac{\text{Bid}_{\text{best}} + \text{Ask}_{\text{best}}}{2} - P_{\text{index}}

Example

Assume:

  • Pindex=50,000P_{\text{index}} = 50{,}000
  • rf=0.01%r_f = 0.01\% (0.0001)
  • t=2t = 2 hours
  • MA2.5min(Basis)=+10\text{MA}_{2.5\text{min}}(\text{Basis}) = +10
  • Last traded price =50,020= 50{,}020

Then:

  • P1=50,000×(1+0.0001×2/8)=50,001.25P_1 = 50{,}000 \times (1 + 0.0001 \times 2/8) = 50{,}001.25
  • P2=50,000+10=50,010P_2 = 50{,}000 + 10 = 50{,}010
  • Mark =Median(50,001.25,50,010,50,020)=50,010= \text{Median}(50{,}001.25, 50{,}010, 50{,}020) = 50{,}010

Stale and Divergence Protection

  • If the last traded price is stale beyond configured thresholds, it is substituted by the index price in the median calculation.
  • If mark price diverges materially from validated external pricing, market-level protections activate (reduce-only or halt).

On this page