Open interest as a signal, and the alignment bug that ruins it
Open interest tells you how much leverage is in the market. It is genuinely informative and it is also the single most common source of look-ahead bias we find.
Vizanix engineering · about the author
- SECTION
- Market mechanics
- PUBLISHED
- 2026-08-31
- CHAPTERS
- 5
- READ NEXT
- 3
- LANGUAGE
- written in English
Open interest is the total notional of contracts currently open. Unlike volume, which counts activity, it counts positioning — how much leverage is sitting in the market right now. That makes it one of the more useful non-price inputs available on a perpetual.
Reading it with price
Neither series says much alone. Together they classify what kind of move is happening:
| Price | Open interest | Interpretation |
|---|---|---|
| Up | Up | New longs entering — leveraged buying |
| Up | Down | Shorts closing — a squeeze, not fresh demand |
| Down | Up | New shorts entering — leveraged selling |
| Down | Down | Longs closing or being liquidated — deleveraging |
The distinction between rows one and two matters. A rally on rising open interest is people taking new leveraged risk; a rally on falling open interest is people getting out of the way. The second is more likely to exhaust once the trapped positions have covered.
Combining with funding
Open interest plus funding gives a clearer picture than either alone. High open interest with strongly positive funding means a lot of leveraged longs paying to hold — crowded positioning with a carry cost, which is the setup that precedes long liquidation cascades.
This is why both appear as episode-context features in our pump-fade model. Neither predicts direction on its own; together they describe how fragile the current positioning is.
The alignment bug
Now the part that matters more than the interpretation. Open interest is the single most common source of look-ahead bias we find in client research code, and it is always the same mistake.
Open interest arrives on its own schedule, usually less frequently than your bars. To use it you join it onto the bar series by timestamp. And the natural way to write that join takes the latest available value — which, at the moment of decision on bar t, has not been published yet.
# WRONG: at decision time on bar t, this value did not exist yet.
bars["oi"] = oi_series.reindex(bars.index, method="ffill")
# RIGHT: only values published strictly before the decision point.
bars["oi"] = oi_series.reindex(bars.index, method="ffill").shift(1)
# Better still: assert it, rather than trusting the shift.
assert (oi_series.index[oi_series.index.searchsorted(t) - 1] < t)The effect is small per bar and decisive in aggregate: the model learns to use information from just after the moment it acts, and every metric improves. Our automated leak audit — recomputing each feature on a truncated series — found three real leaks in our own model, and all three were this pattern applied to open interest, funding and the BTC background.
Other traps
- Units. Some venues report open interest in contracts, some in base currency, some in quote. Changes in reporting convention look like real jumps.
- Comparability. Absolute open interest is not comparable across instruments. Normalise by market cap, average volume, or its own trailing distribution.
- Aggregation across venues. Tempting and lossy — different contract specifications and different reporting frequencies.
- Settlement artefacts. Open interest often moves around funding settlement for reasons that are mechanical rather than informational.
How to use it in practice
- Shift it, then verify the shift with an automated audit rather than by eye.
- Use rate of change, normalised by the instrument's own history, not the absolute level.
- Combine with funding and price direction — the joint state carries the information.
- Treat it as a risk input first: high crowded positioning is a reason to size down before it is a reason to take a direction.
This article describes engineering practice. It is not investment advice. Vizanix develops software and does not promise trading returns.