On-balance volume (40) filtered by low volume (1.5σ/20)
Volume reveals intent before price reveals direction: when buyers dominate, the running balance rises even while price still hesitates. Using that balance in place of price to find the trend gets you into the move ahead of anyone watching the chart alone.
Measured in crypto — Binance spot · 540 pairs, delisted ones included · 0.2% per round trip
- ✗invariance
- ?costs
- ?placebo
- ✓benchmark
- ✓out of sample
- ✗multiple testing
At its worst the account was worth 78% less than its own best previous moment, and it spent 1,929 days below that peak.
What was measured
How many of those trades actually count
What it paid, before any deductions
Why it did not pass — it died here · where the result came from
What would have happened to the money
The account would not fit every signal
What this result does NOT say
- One market, one universe
- Measured on 540 spot cryptocurrency pairs, delisted ones included. It says nothing about futures, equities or indices, nor about how the same technique behaves in another market.
- One window of time, not every window
- The measured period runs from 2017-08-17 to 2026-07-28. A market moves through regimes, and a technique can work in one and fail in another — the card measures the regimes that fit inside this window, not the ones still to come.
- One cost structure
- The cost charged is 0.10% per leg, in and out. Anyone paying more than that gets a worse result, and anyone paying less gets a better one — the verdict holds for this fee.
- One exit rule
- The trade was closed by: the technique itself (held until the opposite signal). The same entry measured with a different exit is a different strategy, and can earn a different verdict — it happens in this archive.
- The number of trades is not the sample size
- There are 57,250 trades, but only 29 independent market episodes: a single move fires the technique across dozens of assets at once, and counting those as separate observations inflates any result. It is the smaller number that governs the arithmetic. With 29 episodes, what the data supports is a range from -2.11% to +4.16% per trade — the published average is the centre of it, not the exact measurement.
- Daily bars
- Measured at the daily close. Nothing here measures what happens inside the day, and an intraday technique is not auditable with this data.
Numbers and reproducibility
The six controls
| control | status | t | threshold | episodes |
|---|---|---|---|---|
| invariance | failed | — | — | — |
| costs | inconclusive | 0.54 | 2.05 | 29 |
| placebo | inconclusive | 0.47 | 2.05 | 29 |
| benchmark | passed | — | — | — |
| out of sample | passed | — | — | — |
| multiple testing | failed | — | — | — |
- invariance73% of the gross profit comes from 2862 trades (5% of the total) — lotteryconcentration: +72.82% of the profit sits in the top 5% of trades — with the dates shuffled, +53.07% (fails above +50.00%)
- costsgross +1.027% · cost 0.200% · net +0.827% (t=0.54) · the range runs from -2.308% to +3.963%
- placeboactual +0.827% · placebo +0.082% · excess +0.745% ± 1.585% (t=0.47 against a threshold of 2.05, 29 real groups, 2,862,500 sham dates, draw error ±0.024%)
- benchmarktechnique +0.83% · buy and hold (same horizon) +0.53% · excess +0.30%
- out of sampleasset half A: +1.050% (t=0.68, 29 episodes) · asset half B: +0.575% (t=0.18, 29 episodes) · liquid half (>= US$ 2,066,613/day): +1.311% (t=0.91, 29 episodes) · illiquid half: +0.160% (t=0.10, 28 episodes) · period 1/4 (2017-09-25 a 2022-04-05): +5.431% (t=1.93, 15 episodes) · period 2/4 (2022-04-06 a 2023-12-03): +0.619% (7 episodes — too small, does not count) · period 3/4 (2023-12-04 a 2025-04-06): -0.535% (5 episodes — too small, does not count) · period 4/4 (2025-04-07 a 2026-07-27): -2.202% (5 episodes — too small, does not count)
- multiple testing3 variation(s) tested · t=0.54 across 29 episodes (equivalent to t=0.52) · p≈0.6051 · false positives expected by chance ≈ 1.82
Equity — outside the six controls, and here is why
The t of the trade series is invariant to bet size: 0.5%, 1% and 3% agree to the sixth decimal. Nothing here moves the verdict — it moves what the account would have lived through.
- risking 1.0% per trade
- ×1.94(×1.02–×2.54 depending on the drawn ordering)
- worst drawdown from the peak
- −78%
- days below the previous peak
- 1,929
- signals refused for lack of capital
- 65%
- paths where the account halved (out of 12)
- 0
Reproducibility
- period
- 2017-08-17 to 2026-07-28
- assets that traded
- 540
- variations tested before this one
- 3
- gross per trade
- +1.03%
- net per trade
- +0.83%
- exit rule
- the technique itself (held until the opposite signal)
- median duration bars
- 3
- mean duration bars
- 12.6
- max duration bars
- 370
- fee per leg
- 0.001
- episode days
- 112
- seed
- 20260728
- OBV period
- 40
- OBV filter
- volume
- OBV f
- 1.5
- OBV window
- 20
Binance spot klines (delisted pairs included) · collected from 2026-07-27 23:31 to 2026-08-03 10:49 · 540 assets · 750,934 bars · 2017-08-17 to 2026-07-28
Hypothesis, filed before the result
p. 563. A layer over on-balance volume: low-volume days do not move the accumulation. `threshold = mean(volume, n) − f × deviation(volume, n)`; if the day's volume falls below the threshold, the index repeats the previous value. The source's justification is statistical: «including periods of low volume in a volume index can make the index moves unreliable». THE SOURCE'S ARITHMETIC DOES NOT ADD UP, and it is recorded rather than corrected: it states that «a filter of 1 standard deviation removes the lowest 16% of days; a 2-deviation filter removes 32% of the days». The first number is right; below −2σ lie **2.3%**, not 32% — the 32% is what falls OUTSIDE a ±1σ band, which is a different sum. `f` is declared open («one or two deviations») and `n` is not given: a SWEEP. Family-level prediction, recorded before measuring: (1) NONE survives the corpus-wide Benjamini-Hochberg; (2) the gravedigger in crypto will be CONTROL 1, concentration, as in `volatilidade` (7 of 7) and `posicao` (10 of 10) — in crypto what pays a lot pays it concentrated, and this has been measured three times already; (3) SAITTA'S VOLUME FILTER will cut trades without improving the `t`, which is the signature of a filter that does not separate — PROTOCOLO.md already records the measured case in which the volume filter cut 73% of the trades, left the gross WORSE and inflated the error by 42%; (4) the VOLUME SPIKE as a reversal will have the family's best `t`, being the chapter's only claim about a rare and dated EVENT instead of an accumulated index — and even so it will not pass; (5) the three layers over on-balance volume (raw, filtered by low volume, filtered by movement) will differ from one another by LESS than the error bar, because filtering days out of an accumulator changes the accumulated series little; (6) ON-BALANCE VOLUME will do worse than the moving average crossover the corpus already publishes — if replacing price with volume in a moving average worked, the chapter would not have to admit it never tested that.
filed on 2026-08-04, before the number existed
The original, as it was filed
p. 563. Camada sobre o saldo de volume: dias de volume baixo não movem o acumulado. `limiar = média(volume, n) − f × desvio(volume, n)`; se o volume do dia fica abaixo do limiar, o índice repete o valor anterior. A justificativa da fonte é estatística: «incluir períodos de volume baixo num índice de volume pode tornar os movimentos do índice pouco confiáveis». ⚠️ A ARITMÉTICA DA FONTE NÃO FECHA, e fica registrada em vez de corrigida: ela afirma que «um filtro de 1 desvio-padrão remove os 16% dias mais baixos; um filtro de 2 desvios remove 32% dos dias». O primeiro número está certo; abaixo de −2σ ficam **2,3%**, não 32% — o 32% é o que sobra FORA de uma faixa de ±1σ, que é outra conta. ⚠️ `f` é declarado aberto («um ou dois desvios») e `n` não é dado: VARREDURA. Previsão da família, registrada antes de medir: (1) NENHUMA sobrevive ao Benjamini-Hochberg do corpus; (2) o coveiro em cripto será o CONTROLE 1, concentração, como em `volatilidade` (7 de 7) e `posicao` (10 de 10) — em cripto o que rende muito rende concentrado, e isso já foi medido três vezes; (3) o FILTRO DE VOLUME DE SAITTA cortará operação sem melhorar o `t`, que é a assinatura de filtro que não separa — o PROTOCOLO.md já registra o caso medido em que o filtro de volume cortou 73% das operações, deixou o bruto PIOR e inflou o erro em 42%; (4) o PICO DE VOLUME como reversão terá o melhor `t` da família, por ser a única alegação do capítulo sobre um EVENTO raro e datado em vez de um índice acumulado — e ainda assim não passará; (5) as três camadas sobre o saldo de volume (bruta, filtrada por volume baixo, filtrada por movimento) diferirão entre si por MENOS que a barra de erro, porque filtrar dias de um acumulador muda pouco a série acumulada; (6) o SALDO DE VOLUME irá pior que o cruzamento de médias que o corpus já publica — se substituir preço por volume numa média móvel funcionasse, o capítulo não precisaria admitir que nunca testou isso.
Quotations from the source were translated from the Portuguese record and back into English — they are not the author's exact words.
Pre-registration exists to keep prediction apart from rationalisation: written after the number, every hypothesis is right.
This claim has been audited once — there is no history to compare against.