Skip to content
Research / Study R62Open access · Freely available
← Research ledger / Tape

Seller exhaustion: decaying versus swelling volume into a low

Parked · 1 of 2 armsChart Library · Study R62

The finding

One arm done, the score still sealed. The arms were parked on 2026-09-03 along with the rest of the intraday program, evidence intact. The verdict will be written when the second arm runs.

arms complete1 of 2scoresealedparked2026-09-03, with the intraday program

The research question

Into a multi-day low, does decaying selling volume separate what follows from swelling selling volume, with the score sealed until both arms have run?

Decision criteria

Two pre-registered arms; the score stays sealed until both are complete. One of nine candidate setups considered.

Study specification

Repository source: research/specs/seller_exhaustion_prereg_2026_07_25.md

Registered 2026-07-25. Promoted from Investment Committee batch 2026-07-25-r2 (proposal #7, persona: behavioural). No outcome data has been observed for this hypothesis. The only thing looked at is a population count from the screening harness (1,610,284 micro_windows anchors at role='pre'), which touches no fwd_* column — the harness rejects queries that do.

The question

A systematic seller working an order prints a run of down bars. As the program completes, the volume it contributes falls away. So a down-run with a decaying volume envelope is a seller running out; a down-run with a swelling envelope is a seller arriving. Same price shape, opposite meaning.

This is Graham's read of "they hit their algo sell because the news came off, and when there's finally a big buy at the bottom, buyers are saying it's too cheap now" — stated so it can be counted rather than admired.

Why this hypothesis and not another shape study: row 50 tested pooled 10-bar shape and returned NULL. This proposes a reason for that null — the pooled population averages two opposite regimes together — and is therefore falsifiable in a way that "try more shapes" is not. If the split does nothing, row 50's null stands and this direction closes too.

Definitions (bind; chosen before any outcome was seen)

For each symbol-day, over RTH 1-minute bars:

  • Down-run: a maximal sequence of L >= 4 consecutive bars with close[i] < close[i-1]. The run is identified at its LAST bar; everything below uses only bars inside the run.
  • Volume envelope, comparing the second half of the run to the first half (hi = sum(volume, last floor(L/2) bars), lo = sum(volume, first floor(L/2) bars)):
    • DECLINING if hi <= 0.80 * lo
    • RISING if hi >= 1.25 * lo
    • otherwise EXCLUDED (the ambiguous middle is dropped by design; the excluded count is reported, and the thresholds are frozen here)
  • Entry reference: close of the run's last bar. Outcome: return from that close to the close 30 minutes later, same session. Runs whose +30m would cross the close are dropped.

No input uses any bar after the run's last bar. The volume envelope is computed strictly within the run.

Population

US common stock (type IN ('CS','ADRC')), 2016-01-01 .. 2026-06-30, RTH only, close >= $2 at the run's last bar, symbol ADV$ >= $2M on a trailing 20d basis computed point-in-time. ETPs and leveraged products excluded via the existing excluded_etps() filter.

Estimand (matched contrast)

RISING is the control, not "no trade". Strata are (L, cumulative-decline decile, ADV$ tercile, calendar year).

Δ = median(ret30 | DECLINING) − median(ret30 | RISING)     within stratum,
    then aggregated across strata weighted by min(n_decl, n_rise)

MEDIAN, not mean, and this is pre-committed. The overhang/shelf lane died because a handful of microcap squeezes dragged a control arm to −187%..−513% per trade and made the difference untestable. A median estimand is chosen before looking, not after a mean misbehaves.

Matching on cumulative decline is what makes this a test of the volume envelope rather than of "price fell a lot".

Bars (bind — one evaluation, no extensions)

  • PASS requires ALL of:
    1. Δ >= +40bps
    2. day-clustered t >= 3.0 (t on daily mean Δ, not per-trade)
    3. = 150 distinct symbols and >= 6 distinct calendar years contributing

    4. Δ >= 1.5× modelled round-trip cost for the ADV$ tercile
    5. placebo does not survive (below)
  • FAIL = anything else. There is no "interesting" tier and no extension. If it fails, the direction closes and row 50's null stands.

Placebo / null (mandatory, declared before the run)

Identical pipeline on +3-trading-day-shifted anchors: same symbol, same tod, same L, cell inherited from the source anchor, per-cell n matched to real and capped at 2000. Any placebo cell reproducing the PASS bars ⇒ the study FAILS, regardless of the real arm.

Multiplicity — declared up front

This is 1 promotion out of 9 proposals across Investment Committee batches 2026-07-25-r1 (5) and 2026-07-25-r2 (4). Of those 9: 2 were killed by the Referee before any query ran, 5 passed feasibility screening, 2 failed it.

Any result from this study is reported as "1 of 9 considered", and that denominator grows with every future round whether or not those proposals are tested. n_tests = 1: the 30-minute horizon is the single confirmatory estimand. 5m/10m/60m are DESCRIPTIVE ONLY and carry no verdict — reporting one of them as the result if 30m fails is prohibited.

Researcher degrees of freedom — frozen here

Fixed before any outcome was seen: L >= 4; the 0.80/1.25 envelope thresholds; the ambiguous middle being excluded rather than assigned; median rather than mean; RISING as control rather than a flat baseline; the four strata; the 30m horizon as sole confirmatory; +3td as the placebo shift.

Not permitted after seeing results: changing L, moving the envelope thresholds, switching to mean or a trimmed mean, adding or removing a stratum, promoting a secondary horizon, or splitting by any variable not listed above. Any of those is a NEW study with a NEW registration carrying this batch's denominator.

Known threats (stated, not resolved)

  • Microstructure confound. Declining volume correlates with approaching a liquidity lull; some of the effect may be time-of-day, not exhaustion. The tod stratum is NOT included above deliberately, so this remains a live threat — if PASS, a follow-up conditioning on tod is required before anything is traded.
  • Cost realism. The cost model is a per-ADV-tercile round-trip estimate, not measured quoted spreads. Bar 4 uses 1.5× to absorb that, but a PASS at 1.5×–2.0× should be treated as marginal.
  • Survivorship. Universe membership is point-in-time via tickers; delisted names must be present or the population is biased toward survivors.
Suggested citation: Chart Library (2026). Seller exhaustion: decaying versus swelling volume into a low. Study R62. chartlibrary.io/research/row-62-seller-exhaustion.