Skip to main content

What are QFEX Perpetual Futures?

A perpetual future is a derivative contract that allows you to speculate on the price of an underlying asset without ever having to physically own it. Unlike traditional futures contracts, perpetuals do not have an expiry date. You can hold a position for as long as you like, provided you maintain sufficient margin. Perps are the end state of leveraged finance. They are the most efficient and user-friendly way of trading all manner of assets classes. To ensure the price of the perpetual contract (Mark Price) stays close to the spot price of the underlying asset (Index Price), a mechanism called Funding is used. All QFEX Perptual Futures are margined in USDC on Arbitrum. USDC is compliant with US Law and backed by US Treasuries.

Index Price Sources

The Index Price is the reference spot price for the asset. We aggregate data from high-quality sources:
  • Equities: Real-time feeds from US stock exchanges and Blue Ocean ATS (for overnight trading).
  • Indices: Derived from CME futures data.
  • FX & Precious Metals: An aggregate of the most liquid ECNs.

Equity Index Price Calculation

To ensure maximum coverage for equity indices (such as US 500, US 100, etc.), QFEX computes the Index Price as follows:

Real-Time Calculation

At any moment during trading hours, the live Index Price for equity indices is determined via: Index Price=Last Official Index Close×Current Index Future PriceLast Index Future Settlement Price\text{Index Price} = \text{Last Official Index Close} \times \frac{\text{Current Index Future Price}}{\text{Last Index Future Settlement Price}}
  • Last Official Index Close: The most recent official closing price of the index (e.g., from the primary exchange close).
  • Current Index Future Price: The latest traded price of the nearest (“front month”) futures contract for that index.
  • Last Index Future Settlement Price: The official futures settlement price at the last futures market close.
This formula tracks the official cash close during the day, but seamlessly switches to using futures prices outside of cash market hours, ensuring continuous and fair pricing.

Close Update at 4:00pm CT (Chicago Time)

Every trading day, shortly after the futures market closes at 4:00pm CT, the Last Official Index Close and Last Index Future Settlement Price are both updated to reflect the new end-of-day values for the next 24-hour cycle. This ensures the computed Index Price always references the most recent official information.

Oracle Pricing

Our default pricing is: Ptoracle={Ptindex,if not an equity index,Plast closeequity index+ΔFt,if equity index.P_t^{\text{oracle}} = \begin{cases} P_t^{\text{index}}, & \text{if not an equity index,} \\ P_{\text{last close}}^{\text{equity index}} + \Delta F_t, & \text{if equity index.} \end{cases} where ΔFt\Delta F_t is the corresponding change in the equity index future. If the last known Index Price is stale (ie, the market is closed or otherwise down), we do the following:

1. Impact Notional Calculation

The system calculates the Volume-Weighted Average Price (VWAP) to fill a specific “Impact Notional” amount (defined below) from the top of the order book.
  • Impact Bid: The average price to sell the impact notional amount into the bids.
  • Impact Ask: The average price to buy the impact notional amount from the asks.

2. Impact Price Deviation (IPD)

IPD measures the pressure on the price relative to the last traded price (or last calculated price). It is calculated as: IPD=max(ImpactBidPlast,0)max(PlastImpactAsk,0)IPD = \max(ImpactBid - P_{last}, 0) - \max(P_{last} - ImpactAsk, 0) Where:
  • PlastP_{last} is the latest Index price.
  • Only “improving” deviations contribute to the IPD (i.e., if the Impact Bid is higher than current price, it pushes price up; if Impact Ask is lower, it pushes price down).

3. Price Update

The price is updated using an Exponential Moving Average (EMA) model to smooth out volatility while drifting towards the order book pressure. The formula used is: St=βtSt1+(1βt)xtS_t = \beta_t \cdot S_{t-1} + (1 - \beta_t) \cdot x_t Where:
  • StS_t: New price.
  • St1S_{t-1}: Previous price.
  • xtx_t: Target price based on IPD, defined as xt=St1+IPDtx_t = S_{t-1} + IPD_t.
  • βt\beta_t: Decay factor, defined as βt=eΔt/τ\beta_t = e^{-\Delta t^* / \tau}.

Time and Constants

  • τ\tau (Tau): Time constant, set to 8 hours (28,800 seconds). This controls the “inertia” of the price.
  • Δt\Delta t: Time elapsed since the last update.
  • cc (Clamp Factor): Set to 0.1.
  • Δt\Delta t^*: Clamped time delta, defined as min(Δt,cτ)\min(\Delta t, c \cdot \tau). This prevents large jumps if updates are sparse.

Funding Rate Calculation

The Funding Rate determines the periodic payments exchanged between traders holding Long and Short positions. This mechanism encourages the Mark Price to converge with the Index Price.
  • Positive Rate: Longs pay Shorts.
  • Negative Rate: Shorts pay Longs.

Methodology

Our calculation methodology closely follows the industry standard, with simplified parameters for greater transparency and efficiency. Key Parameters:
  • Funding Interval: Every 10 minutes.
  • Impact Notional: $1,000.
  • Interest Rate / Clamp: None (0%).

1. Premium Index

The Premium Index (PP) represents the premium or discount of the contract relative to the spot price. It is calculated using the Impact Bid and Impact Ask prices from the orderbook. P=max(0,Impact BidIndex)max(0,IndexImpact Ask)IndexP = \frac{\max(0, \text{Impact Bid} - \text{Index}) - \max(0, \text{Index} - \text{Impact Ask})}{\text{Index}} Where:
  • Impact Bid: The average fill price to sell $1,000 of notional.
  • Impact Ask: The average fill price to buy $1,000 of notional.

2. Funding Rate

The final Funding Rate (FF) applied at the end of each 10-minute interval is the Time-Weighted Average (TWAP) of the Premium Index over that interval. F=TWAP(P)F = \text{TWAP}(P) Note: Unlike other exchanges, we do not apply a clamp function or a fixed interest rate component. The rate is purely the market-driven premium.

3. Market Hours Condition

Funding is only paid when the underlying market is open.
  • If the underlier (e.g., the US Stock Market) is closed, the Funding Rate is set to 0, and no payments are exchanged.
  • This prevents artificial funding charges during illiquid off-hours or holidays.