Skip to main content
Funding keeps perpetual prices anchored to their underlier. QFEX supports 24/7 trading, but funding is only active when we can reliably consume underlier prices from primary venues.

At a Glance

  • Funding is calculated and settled every 60 minutes.
  • Funding is only active during a symbol’s configured market_hours.
  • Outside those hours, funding rate is 0 and no funding payment is exchanged.
  • The live websocket funding stream shows the current implied final rate if the current window ended now.

Funding Hours (Current)

Asset classUnderlier venue/sourceFunding-active hours
EquitiesNYSE/NASDAQ04:00 to 20:00 ET, Monday to Friday
Indices and CommoditiesCME23/5
FX and Precious MetalsRelevant FX venues24/5

Per-Symbol Funding Hours in Refdata

Always use refdata as the source of truth for symbol-specific funding hours:
  • REST: https://api.qfex.com/refdata, docs here
Look at the market_hours object for each symbol.
{
  "symbol": "AAPL-USD",
  "market_hours": {
    "tz": "America/New_York",
    "monday": { "open": "04:00:00", "close": "20:00:00" }
  }
}

Methodology

Our calculation methodology closely follows the industry standard, with simplified parameters for greater transparency and efficiency. Key Parameters:
  • Funding Interval: Every 60 minutes.
  • Impact Notional: 10,000 USDC (100,000 USDC for FX pairs).
  • Interest Rate: None.
  • Clamp: 5 bps.

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 the Impact Notional amount.
  • Impact Ask: The average fill price to buy the Impact Notional amount.

2. Funding Rate

The final Funding Rate applied at the end of each 60-minute interval is based on a Time-Weighted Average (TWAP) of the Premium Index over that interval. This method assigns higher weight to more recent premium observations.
Note: In the formula below, Pˉ\bar{P} and FrawF_{\text{raw}} are expressed in basis points (bps).
Average Premium, Pˉ=i=0N1(i+1)Pii=0N1(i+1)Fraw={Pˉ+5,Pˉ<50,Pˉ<5Pˉ5,Pˉ>5Ffinal=Fraw100\text{Average Premium, } \bar{P} = \frac{\sum_{i=0}^{N-1} (i+1) \cdot P_i}{\sum_{i=0}^{N-1} (i+1)} \\ F_{\text{raw}} = \begin{cases} \bar{P} + 5, & \bar{P} < -5 \\ 0, & |\bar{P}| < 5 \\ \bar{P} - 5, & \bar{P} > 5 \end{cases} \\ F_{\text{final}} = \frac{F_{\text{raw}}}{100} Where:
  • PiP_i represents the premium samples.
  • The weight (i+1)(i+1) increases for more recent samples (where i=N1i=N-1 is the most recent).
  • FfinalF_{\text{final}} is the funding rate applied for payments and published on the funding stream.
Note: Unlike other exchanges, we do not apply a fixed interest rate component. The rate is purely the market-driven premium.

Why Funding May Be 0

Funding can be zero for normal reasons:
  • The symbol is outside its market_hours (market closed, weekend, or holiday).
  • The premium stays inside the 5 bps deadband after clamping.

Historical Funding Data

We are actively improving historical data coverage, including funding history by product. For live values, use the websocket funding channel.