Crude Oil (WTI)

Two windows make up for weekday coverage:

  • Regular-hours: 6:00 p.m. – 4:30 p.m. ET

  • Off-hours: 4:30 p.m. – 6:00 p.m. ET

Weekend coverage starts on Friday 4:30 p.m. ET. and runs continuously until Sunday 6:00 p.m. ET.

Oracle Pricing

Oracle pricing is used to calculate funding rates which anchor perpetual contract price to underlying commodity price. For the 24/7 markets we divide the oracle price into three segments (weekday on-hours, weekday off-hours, weekend off-hours). Pricing infrastructure is handled by Redstone.

Each oracle update (every 2.5s) can change oraclePx by at most 1%.

EMA Definition (used below)

Let xtx_tbe the input series sampled every Δt=1s\Delta t = 1\mathrm{s}, and let StS_t be the EMA with time constant τ (e.g., 1h,8h,150s).\tau\ (\text{e.g., }1\mathrm{h},8\mathrm{h},150\mathrm{s}). We use:

St=βSt1+(1β)xt,β=exp ⁣(Δtτ)% EMA recursion + smoothing factor S_t = \beta S_{t-1} + (1-\beta)\,x_t, \qquad \beta = \exp\!\left(-\frac{\Delta t}{\tau}\right)

Part 1: Weekday on-hours

Source: During on-hours, we create an implied price by blending the front month CL contract and the following month CL contract. The blending formula and rolling schedule is provided in the sections below. Fallbacks are implemented to mitigate any single corrupted feed. The result is the on-hours oraclePx.

Part 2: Weekday off-hours

Oracle = EMA_1h(impact_price)

Part 3: Weekend off-hours

Oracle = EMA_8h(impact_price)

Blending Formula during On-Hours Pricing

The price of the oil perpetuals future contract is derived from a weighted average between the 1st and 2nd month of the CME CL futures contracts.

P=(1DN)P1+DNP2P = \left(1 - \frac{D}{N}\right) P_1 + \frac{D}{N} P_2
  • P = price of the Oil perpetuals future contract.

  • P_1 = price of the CL dated futures contract (front month).

  • P_2 = price of the CL dated futures contract (following month).

  • D = number of commodity business days from, and including, the Previous Expiration Date to, but excluding, the Roll Date.

  • N = the number of commodity business days from, and including, the Previous Expiration Date to, but excluding, the Next Expiration Date.

  • Previous Expiration Date = date of expiration of the previous contract that expired immediately prior to the Roll Date.

  • Roll Date = second commodity business day after the current business day.

  • Next Expiration Date = date of expiration of the front month contract.

Example

Mark Pricing

This section details our methodology for calculating the mark price, which serves as the reference for margin, liquidations, take-profit and stop-loss triggers, and unrealized profit and loss computations. Pricing infrastructure is handled by Redstone.

Each oracle update (every 2.5s) can change markPx by at most 1%.

Mark Price is calculated as the median of the following 3 values:

  • MarkPx0: Oracle Price

  • MarkPx1: Oracle Price

  • MarkPx2: The median of best bid, best ask, last trade on Hyperliquid (added as default by HL)

ExternalPerpPx Pricing

This limits a perp market's mark price movement to the given band of +/- min(1/max_leverage, 20%) from the externalPerpPx value.

Part 1: Weekday on-hours

Oracle Price

Part 2: Weekday off-hours

Last Close from Weekday On Hour period

Part 3: Weekend off-hours

Last Close on Weekday On Hour

Holidays & Misc.

Last updated