Volume filter on trend (20/10)
A trend turn without volume is a turn nobody believed in, and it usually comes undone. Requiring the day's volume to exceed the recent average before entering discards the signals the market did not back — and keeps you out of the market much of the time, which lowers risk even if the return is the same.
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 67% less than its own best previous moment, and it spent 907 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 51,434 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.44% to +5.82% 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.74 | 2.05 | 29 |
| placebo | inconclusive | 0.77 | 2.05 | 29 |
| benchmark | passed | — | — | — |
| out of sample | passed | — | — | — |
| multiple testing | inconclusive | — | — | — |
- invariance63% of the gross profit comes from 2571 trades (5% of the total) — lotteryconcentration: +63.41% of the profit sits in the top 5% of trades — with the dates shuffled, +44.58% (fails above +50.00%)
- costsgross +1.688% · cost 0.200% · net +1.488% (t=0.74) · the range runs from -2.641% to +5.618%
- placeboactual +1.488% · placebo -0.073% · excess +1.561% ± 2.025% (t=0.77 against a threshold of 2.05, 29 real groups, 2,571,700 sham dates, draw error ±0.015%)
- benchmarktechnique +1.49% · buy and hold (same horizon) +0.37% · excess +1.12%
- out of sampleasset half A: +1.439% (t=0.33, 29 episodes) · asset half B: +1.536% (t=1.08, 29 episodes) · liquid half (>= US$ 2,066,613/day): +2.121% (t=1.01, 29 episodes) · illiquid half: +0.761% (t=0.55, 28 episodes) · period 1/4 (2017-09-06 a 2022-04-13): +5.309% (t=1.51, 16 episodes) · period 2/4 (2022-04-14 a 2023-11-20): +0.909% (6 episodes — too small, does not count) · period 3/4 (2023-11-21 a 2025-03-23): +0.205% (5 episodes — too small, does not count) · period 4/4 (2025-03-24 a 2026-07-27): -0.460% (5 episodes — too small, does not count)
- multiple testing1 variation(s) tested · t=0.74 across 29 episodes (equivalent to t=0.71) · p≈0.4799 · false positives expected by chance ≈ 0.48
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
- ×6.59(×4.36–×9.19 depending on the drawn ordering)
- worst drawdown from the peak
- −67%
- days below the previous peak
- 907
- signals refused for lack of capital
- 61%
- 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
- 1
- gross per trade
- +1.69%
- net per trade
- +1.49%
- exit rule
- the technique itself (held until the opposite signal)
- median duration bars
- 5
- mean duration bars
- 12.1
- max duration bars
- 124
- fee per leg
- 0.001
- episode days
- 112
- seed
- 20260728
- slope period
- 20
- volume filter period
- 10
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. 556, and it is a LAYER over a price system, not a system of its own. Verbatim: «calculate a 10-day moving average of volume as a complement to a 20-day trend position. Simply by requiring that current volume be greater than the average volume of those past 10 days, you introduce the idea of greater participation associated with the new trend». THE CLAIM IS ABOUT RISK, NOT ABOUT RETURN, and it is falsifiable as it stands: «if the net returns are the same, the volume-filtered approach is much better, because you are out of the market longer, reducing your risk». «20-day trend position» is ambiguous between the average's slope and price penetration; we adopt the SLOPE, which is the convention already fixed in the corpus for a single average. AND THE PROTOCOL ALREADY HAS A MEASUREMENT AGAINST THIS CLAIM: a volume filter cut 73% of the trades, left the gross WORSE and inflated the error by 42%. This card is the direct confrontation. 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. 556, e é CAMADA sobre um sistema de preço, não sistema próprio. Verbatim: «calcular uma média móvel de 10 dias do volume como complemento a uma posição de tendência de 20 dias. Simplesmente exigindo que o volume corrente seja maior que o volume médio desses últimos 10 dias, introduz-se a ideia de maior participação associada à nova tendência». ⚠️ A ALEGAÇÃO É SOBRE RISCO, NÃO SOBRE RETORNO, e é falsificável como está: «se os retornos líquidos forem os mesmos, a abordagem filtrada por volume é muito melhor, porque você fica fora do mercado mais tempo, reduzindo seu risco». ⚠️ «Posição de tendência de 20 dias» é ambíguo entre inclinação da média e penetração do preço; adota-se a INCLINAÇÃO, que é a convenção já fixada no corpus para média única. ⚠️ E O PROTOCOLO JÁ TEM MEDIDA CONTRA ESTA ALEGAÇÃO: um filtro de volume cortou 73% das operações, deixou o bruto PIOR e inflou o erro em 42%. Este card é o confronto direto. 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.