Docs·Web App·Indicators

OI / CVD Pattern detector

Spots four order-flow setups where open interest and cumulative volume delta misalign — stealth accumulation, distribution and failed long / short traps.

The OI / CVD Pattern detector watches three streams at once — price, Open Interest (OI, the total number of futures contracts still open), and Cumulative Volume Delta (CVD, the running sum of taker-buy minus taker-sell volume) — and prints a labelled marker on the bar that triggered each setup. The point of looking at all three together is that smart-money footprints almost never show up as a clean signal on a single stream; they show up as a mismatch between them. Quiet positioning before a move, or aggressive entries that immediately fail, are the canonical mismatches — this indicator surfaces both. Markers paint directly on the candle: a translucent halo on the trigger bar, an arrow at the relevant wick, and an outside label so you can read what fired without hovering.

OI / CVD Pattern markers — ACCUM, DIST, TRAP-L and TRAP-S chips painted on the candles

Settings reference

The dialog is grouped into Patterns (which of the four setups to scan for), Stealth tuning and Trap tuning (how strict each family of detection is), and Output (chart-side knobs).

SectionSettingDefaultNotes
PatternsACCUMOnStealth accumulation — bullish quiet build-up. Toggle off if you only care about traps.
DISTOnStealth distribution — bearish quiet build-up.
TRAP-LOnFailed long breakout. The L is the side that got trapped — TRAP-L is a bearish event.
TRAP-SOnFailed short breakdown. TRAP-S is a bullish event.
Stealth tuningLookback10Number of bars in the window used to measure the OI rise and price compression. Shorter = more reactive but noisier.
OI ≥1.5%Minimum OI rise over the lookback window — the higher you set this, the rarer (and stronger) the stealth fires.
Compress ≤1.5%Maximum price range (as a percent of mid-price) over the window. Forces the setup to fire only on genuinely sideways bars.
CVD quiet0.4How balanced taker-buy vs taker-sell flow must be over the window — lower = stricter (only the quietest tape qualifies).
Trap tuningSwing lookback20Bar window the breakout candle has to clear to count as a fresh swing high / low.
Trap OI ≥0.8%Minimum single-bar OI surge on the breakout candle. Filters out price thrusts that weren't backed by new positioning.
OutputCooldown5Bars to wait after a fire before the same pattern type can trigger again. Stops the chart from filling with adjacent chips on the same setup.
Text sizeDefaultMarker font size — Small · Default · Medium · Large.
Show kind labelsOnPrint the four-letter code next to each marker. Off keeps only the arrow + halo for a cleaner look.
Reset to defaultsRestores every setting on this page to its factory value.

The detector matures patterns at bar close — markers don't blink in and out mid-bar. The most recent batch of events is kept on the chart; very long histories are capped so the chip stack never overwhelms the candle data underneath.

The pattern legend

Four codes, two families. The Direction bias column is what the next leg is biased toward — not a promise, a starting hypothesis.

CodeFamilyDirection biasWhat just happened
ACCUMStealthBullishOI rose hard while price compressed and net buy/sell flow stayed roughly balanced — somebody built a position without paying up. Marker pins below the bar's low.
DISTStealthBearishSame setup but the balanced flow leans slightly net-negative — quiet short-side build-up. Marker pins above the bar's high.
TRAP-LTrapBearishA candle thrust into a fresh swing high with an OI surge, then the very next bar faded back below that trap candle's midpoint. Late longs are now offside. Marker pins to the rejection wick at the high.
TRAP-STrapBullishA candle pushed through a fresh swing low with an OI surge, then the next bar reclaimed its midpoint. Late shorts are squeezed. Marker pins to the rejection wick at the low.

Read the code by its family first (stealth = quiet positioning before the move; trap = aggressive positioning that just got faded) and by its suffix second (the side that's offside or building). The arrow on the glyph and the colour both encode the bias — green up arrows for bullish, red down arrows for bearish.

How to read it

  • ACCUM at a range low or prior support — pre-breakout long-side build-up. Quality entry zone; wait for a confirming break of the compression high before committing.
  • DIST at a range high or prior resistance — pre-flush short-side build-up. Same logic in reverse.
  • TRAP-L at a level you were already eyeing as resistance — the failed breakout is the trigger; the level is the thesis. Combined they're one of the cleanest reversal setups the indicator prints.
  • TRAP-S at obvious support — mirror image. Trapped shorts have to buy back, which fuels the bounce.
  • Two stealth markers a few bars apart on the same compression — stronger than one. The book is being loaded patiently; the bigger the patience, the bigger the move once it breaks.
  • ACCUM while funding is flat or slightly positive — real long-side conviction. Same ACCUM while funding is already very positive is a crowded book that's more fragile.
  • Pair the marker with a per-trade view — open the Large Trades feed at the trigger bar to see whether the OI rise was driven by a handful of size-blocks or by broad participation. Size-blocks at a stealth bar are the strongest single confirmation you'll get.

Common pitfalls

  • Reading the suffix as the direction bias. TRAP-L is bearish (longs got trapped) and ACCUM is bullish (longs are being built). The arrow on the glyph is the actual direction — trust the arrow, not the letter.
  • Trading the chip without a level. Markers fire wherever the criteria match. A trap in the middle of a chop range has nothing to anchor against. Pair every fire with a structural level (range edge, prior POC, fair-value gap) and you'll skip 80 percent of the marginal entries.
  • Running too tight a cooldown on a noisy pair. Adjacent chips on the same setup stack up and the chart fills with chrome. Bump the cooldown until you only see the clean first fire of each cycle.
  • Treating a stealth marker inside a strong trend as a continuation entry. By definition the setup needs price compression — a trending bar that happens to print an OI rise won't qualify. If a chip does fire inside a trend pocket, treat it as a pause between legs, not a fresh entry.
  • Expecting markers on symbols without futures OI data. Spot-only pairs and the first few seconds after a chart mount (before OI history has loaded) won't paint anything. That's by design — the detector stays quiet rather than ship stale events.
  • Skipping the cross-check with raw OI and CVD. The pattern indicator is a summariser. Once it flags a bar, glance at the OI curve and the CVD pane to see the shape of the move it just labelled — you'll catch the rare false positive where the criteria barely cleared the filter.

What's next

  • Open Interest — the OI input on its own, including the OI Spike halo this detector deliberately overlays cleanly with.
  • CVD — the cumulative buy/sell flow input on its own, with divergence detection of its own.
  • Funding — the perpetual-funding context that turns an ACCUM from "real" to "fragile" and back again.
  • Large Trades — the per-trade view that confirms whether an OI surge came from a few size-blocks or broad participation.