# USA500

### Times

Two windows make up for weekday coverage:

* Regular-hours: 6:00 p.m. – 5:00 p.m. ET
* Off-hours: 5:00 p.m. – 6:00 p.m. ET

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

### Oracle Price Methodology

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 $$x\_t$$be the input series sampled every $$\Delta t = 1\mathrm{s}$$, and let $$S\_t$$ be the EMA with time constant $$\tau\ (\text{e.g., }1\mathrm{h},8\mathrm{h},150\mathrm{s}).$$ We use:

$$
% 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**

During on-hours, we use spot SPX as the primary feed, which is <2bps deviation from reasonable implied spot price (derived from CME contract). In a later implementation, the primary feed may switch to the implied spot price (derived from CME contract). Fallbacks are implemented to mitigate any single corrupted feed. The result is the on-hours `oraclePx`.

**Part 2: Weekday off-hours**&#x20;

Oracle = EMA\_30m(impact\_price)

**Part 3: Weekend off-hours**&#x20;

Oracle = EMA\_2h(impact\_price)

### 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

* Holidays are treated as weekends. Shorter regular sessions due to holidays will transition to weekend status afterwards. Holidays are defined here:<https://www.cmegroup.com/trading-hours.html>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://usefelix.gitbook.io/perps/getting-started/perp-specifications/usa500.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
