OBV divergences — is volume actually backing the price move?
On-balance volume (OBV) is a running total that adds a bar's traded volume when
price closed up and subtracts it when price closed down — one line answering
"is real volume flowing in or out?". When price and OBV disagree at their swing points
(a divergence), the price move is not being backed by volume flow — that disagreement is what
this page finds, across all 21 assets that report real traded volume, and ranks by size.
Every variable of the OBV equation is a slider below.
Loading…
loading windows…
Tune the OBV equationOBVt = OBVt−1 + dirε(Ct vs Ct−k) · (Vt / norm)α , then smoothed(L)classic
recompute cost: —
Where is price moving without volume behind it?
Every current OBV divergence across 21 assets × 6 windows (1d · 1w · 1m · 1q · 1y · 5y),
for every ACTIVE profile, ranked by strength. Click any column header to sort; click a row to open its
chart below. Only signal-grade candles are scanned — 30m · 45m · 1h · 4h · 1d, never finer.
Every profile is swept across a ladder of pivot widths (2 · 3 · 5 · 8 · 13, plus your own W when it differs) and
a pivot is confirmed by one closed candle, not by the full width — earlier signals, deliberately at
the cost of some being invalidated later. Current means confirmed within the last 5 candles. Anything
older is history and is left off the board and out of the alerts. The Candle column says which candle
each divergence was detected on; Widths says how many of the swept widths agreed.Alerts: ≥ 0.45 OBV divergences, confirmed within 5 candles, on 30m/45m/1h/4h/1d candles only → Telegram · classic equation · 5-min scan
(RSI alerts come from /rsidiv, same room).
Loading…
loading the covered-instrument list…
—
Click any line on the charts to see what it measures
(candles, OBV, SPX/NAS100 baselines, P/C, divergence trendlines). Click empty chart space to clear.
Shift-click = every value at that date.
Notes
What a divergence is here
Price and OBV each make swing pivots. When consecutive same-side price pivots and the OBV
readings at those exact bars move in opposite directions, the two lines disagree —
that pair of pivots, connected, is the divergence drawn on both panes.
Strength
The gap between the two OBV pivot readings, as a share of OBV's whole observed range (0–1).
It measures how loudly volume flow disagrees with price — not how far price moved.
No volume = no OBVFour /basics assets report no traded volume, so OBV is impossible
and they are excluded: US 10Y yield (a cash yield index) · US Dollar index (a cash quote) ·
the Mag 7 basket and the USD basket (computed baskets have no volume of their own).
The Mag 7's seven member stocks ARE each in this universe individually.
Sparse volume flagged
Some intraday feeds report volume on only part of their bars (Bitcoin's fast lane, Korean
session edges). Any asset-window where fewer than 60% of bars carry volume gets an amber
sparse vol chip — its OBV is computed from the bars that do report,
and the flag says so honestly.
Only signal-grade candles
The candles that matter here are 30m · 45m · 1h · 4h · 1d — nothing finer.
A 5-minute divergence is mostly noise by the time you could act on it, so the 5m and 15m
lanes were removed outright: no window auto-selects them, the selector does not offer them,
and the board itself drops any row computed on a candle outside that set, so nothing finer
can reach the table or Telegram by any route.
Windows & resolution
Auto: 1d→30m · 1w→45m · 1m→1h · 1q→4h · 1y→1d · 5y→1d —
the six windows are spread so all five signal-grade candles are covered exactly once.
The candle selector (auto/30m/45m/1h/4h/1d) overrides this per window where the pick is
feasible; 45m and 4h are aggregated in your browser from 15m/1h bars on epoch-UTC bucket
boundaries, 30m comes straight from the store. Every window ends at the latest session that
actually has data (never a blank off-hours chart). Per-window bar counts are in the line
under the header.
Profiles A · B · C
Three full slider sets, saved and applied at once. Every ACTIVE profile is computed and
drawn — its own colored OBV line (A red · B blue · C black), its own board rows (tagged
with its letter), its own click-to-explain text. A is the classic textbook OBV until you
change it; B and C are drafts until you press Save & apply.
Only CURRENT divergences
Both this board and the Telegram push list a divergence only while it was
confirmed within the last 5 candles — the Confirmed (candles ago)
column is that number, and 0 means it became detectable on the newest candle.
Older divergences still exist in the price history and are still drawn on the chart when you
open one; they are simply not reported as live signals. The scan window slider is a
different thing again: it caps how far apart the two paired pivots may sit, not how old
they may be.
Early by design — one candle confirms
A pivot needs the full width to its LEFT, but only one closed candle
to its right. The textbook detector waits for the full width on both sides, which at width 5
means the signal arrives 5 candles late — by then the move has usually happened. This board
deliberately trades certainty for earliness: a pivot called on one candle
can still be invalidated by the next few. That is the risk being bought on purpose.
Read the Widths column as your counterweight — a divergence seen at several pivot
widths at once is standing on more than one reading of the swing structure.
Widths — many swing scales at once
A single pivot width only sees swings of one size, and a 3-candle pivot and a 13-candle
pivot are genuinely different market structures. Every profile is therefore run at
2 · 3 · 5 · 8 · 13, plus whatever your own W slider is set to when
that is not already one of them, and the same pivot pair found at several widths is merged
into ONE row listing them all
(3/5 · 2·3·5 = found by 3 of the 5 swept widths, namely 2, 3 and 5). Widths that land
on genuinely different pivot pairs stay as separate rows — they are different readings, and
merging them would be a lie. Sort by Widths to put the most-corroborated first.
Telegram alerts
A scheduled scanner re-computes every 5 minutes and pushes any NEW OBV divergence that is
strength ≥ 0.45 AND current by the 5-candle rule above, batched into one
message per scan.
It runs the CLASSIC equation: your A/B/C profiles live in this browser's storage and are
invisible to it. RSI divergence alerts come separately from the /rsidiv scanner
(also every 5 minutes) — both pipelines post into the same Telegram room, each clearly
labeled by indicator.
Computed in your browser
Every slider move re-runs the whole engine — OBV + swing detection + divergence pairing for
all 21 assets × 6 windows × every active profile — live, client-side. The measured cost of the last run is shown
under the sliders. Inputs are debounced (~120 ms).