Swolecharts
Live crypto data · 10 exchanges
Log inSign up

Hourly price and OI states: measuring what followed

Read the hourly state history and the prices recorded after each state entry.

Last updated: 17 October 2026

One hour, two numbers

The hourly state history covers one exact Binance or Bybit linear USDT perpetual, with ranges 7d and 30d. Each bucket holds the last recorded price close and the last USD open interest (OI) snapshot in [start, start + 1h). Labels are bucket starts in UTC: the 13:00 bucket holds observations up to, but not including, 14:00. The two observations need not have identical timestamps.

A row compares that bucket's values with the previous bucket's values, not its first trade with its last. The newest bucket must have closed at least 10 minutes ago to allow records to arrive. Both research tables read recorded history, not live quotes.

Taking price out of OI

Write the previous and current prices as P0 and P1, and their USD OI values as O0 and O1. Price change is rP = P1 / P0 − 1. Price-adjusted OI change is rE = (O1 / O0) / (P1 / P0) − 1. Multiplying by 100 gives percentages. For this one exact contract, a fixed contract multiplier cancels in the ratios; rE describes contract exposure rather than the USD valuation change alone.

Illustrative: not live data. Price $100 → $101 is +1.00%; USD OI $10.0M → $10.4M is +4.00%. Thus 1.04 / 1.01 − 1 = +2.97% exposure change after rounding: Price up, exposure up. With the same prices but OI $10.0M → $10.1M, 1.01 / 1.01 − 1 = 0.00%: below threshold. The price rise alone explains that USD OI rise. Price is taken out exactly once.

Four states, below threshold, unavailable

A directional state requires absolute price change of at least 0.1% and absolute exposure change of at least 0.5%. With valid values, falling short of either threshold means Below threshold.

  • Price up, exposure up: conventionally “new longs”.
  • Price down, exposure up: conventionally “new shorts”.
  • Price up, exposure down: conventionally “short covering”.
  • Price down, exposure down: conventionally “long unwinding”.

These are descriptive labels, not evidence of who traded. Every contract has a long and a short; see open interest explained. Missing or invalid values, recording gaps and unknown coverage mean unavailable, never below threshold. Gaps are not bridged, forward-filled or interpolated, and unavailable hours are excluded from classified-hour shares.

What counts as an entry?

The price-after-state table counts an entry when a bucket enters one of the four directional states from a different known state in the immediately preceding hour. Below threshold can be that previous state. Repeated hours in the same state are not new entries. A state after an unavailable or missing hour, or at the left edge of the selected window, has an unknown run start (left-censoring) and is excluded. It does not reach back across a gap to find a prior valid state.

The entry is known at the bucket's close. Selection never waits to see how long the state lasts.

Measuring what followed

For horizons 1h, 4h, 24h, the price change is close[h + k] / close[h] − 1, where h is the entry bucket. For example, a $100 entry close and a $102 later close give +2.00%. This is a close-to-close price change, without fees, funding, execution or a trading strategy.

Exclusions are checked in order: not yet matured if the later bucket has not completed; then recording gap if coverage is unknown or a gap touches the measurement buckets; then missing price if any hourly price from entry through the endpoint is missing, invalid or non-positive. Each excluded entry gets one reason, never a substituted quote.

Within each state and horizon, sort eligible entries by time, keep the earliest, then skip an entry while h < h_kept + k. An entry exactly at the prior selected endpoint can be kept. Skipped entries do not move that endpoint. Returns play no part in this decision.

Illustrative: not live data. Five eligible entries into the same state, on one synthetic UTC day, for the 4h horizon (intervening state changes are omitted):

Entry bucket (UTC)SelectionReason
00:00KeepEarliest; endpoint 04:00
02:00SkipBefore 04:00
04:00KeepAt endpoint; new endpoint 08:00
06:00SkipBefore 08:00
08:00KeepAt endpoint; new endpoint 12:00

This leaves n = 3 selected entries out of five eligible entries. n is the selected sample size, not all hours or all entries. Non-overlap applies separately within each state and horizon; different rows can still share hours and are not independent.

Median and quartiles

The table suppresses its distribution when n < 5, showing “insufficient observations”. Reaching 5 is a display minimum, not proof of statistical reliability. “Higher” is the fraction of selected returns strictly above zero; unchanged closes remain in the denominator.

Illustrative: not live data. In a separate sample of five selected returns, sorted as −4%, −1%, 0%, +2%, +8%, the site uses Hyndman–Fan type 7, the method called linear in NumPy. The zero-based position is q × (n − 1). For q = 0.25, 0.5 and 0.75 with n = 5, positions are 1, 2 and 3: the 25th percentile is −1%, median 0%, and 75th percentile +2%. Between positions it interpolates: at q = 0.3, position 1.2 gives −1% + 0.2 × (0% − (−1%)) = −0.8%. Higher is 2 / 5 = 40%; a zero return is not higher.

Limits: recorded history, not a forecast

These outcomes are recorded history, not a forecast, signal or backtest. They cover one exact contract and only the selected recording period. Small n, recording availability and the chosen window can change the distribution substantially. A positive median does not predict the next entry. Past outcomes do not forecast future returns, and conventional state names do not establish a cause for price movements.

Primary API and statistical references checked on 17 October 2026: Binance: open interest and kline API reference · Hyndman and Fan (1996): Sample quantiles in statistical packages · NumPy: quantile, method='linear'. Not financial advice.

Price and OI states FAQ

Does exposure up mean more longs than shorts?

No. Every open contract has both a long and a short. The state describes price and price-adjusted open interest changes, not who initiated trades.

Why can an hour be unavailable rather than below threshold?

Below threshold requires valid recorded values. Missing values, recording gaps or unknown coverage cannot establish a small move, so those hours are unavailable.

Does a positive median predict the next entry?

No. These outcomes are recorded history, not a forecast. Small samples and the selection of one contract and period limit what the distribution says about other observations.