Moving average crossover (20/50) · exit by standard deviation f=3.2
A trend technique delivers its result despite the trades that turn against it, not because of them. Cutting each trade as soon as price moves far enough from its own best point takes the loss before the technique itself notices the turn — and what remains is better than having no stop at all, provided the level adapts to volatility instead of being a fixed amount.
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 49% less than its own best previous moment, and it spent 753 days below that peak.
What was measured
How many of those trades actually count
What it paid, before any deductions
Why it passed
- the profit spread across the trades instead of coming from a handful
- the edge survived the broker's fee
- it paid more than entering on randomly drawn dates
- it paid more than buying and holding for the same stretch
- the result came back in the separated pieces of the data
- it survived the discount for having tested many versions
What would have happened to the money
The account would not fit every signal
The effect sits at the start of the period, not the end
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 14,782 trades, but only 184 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 184 episodes, what the data supports is a range from +1.36% to +7.28% 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 | passed | — | — | — |
| costs | passed | 2.75 | 1.97 | 184 |
| placebo | passed | 2.91 | 1.97 | 184 |
| benchmark | passed | — | — | — |
| out of sample | passed | — | — | — |
| multiple testing | passed | — | — | — |
- invariance14782 signals across 750934 barsconcentration: +46.38% of the profit sits in the top 5% of trades — with the dates shuffled, +38.86% (fails above +50.00%)
- costsgross +4.320% · cost 0.200% · net +4.120% (t=2.75)
- placeboactual +4.120% · placebo -0.313% · excess +4.434% ± 1.522% (t=2.91 against a threshold of 1.97, 184 real groups, 739,100 sham dates, draw error ±0.048%)
- benchmarktechnique +4.12% · buy and hold (same horizon) +0.88% · excess +3.24%
- out of sampleasset half A: +4.083% (t=2.55, 182 episodes) · asset half B: +4.158% (t=3.21, 175 episodes) · liquid half (>= US$ 2,066,613/day): +4.763% (t=3.06, 184 episodes) · illiquid half: +3.377% (t=1.87, 164 episodes) · period 1/4 (2017-10-11 a 2022-07-03): +11.181% (t=4.16, 97 episodes) · period 2/4 (2022-07-04 a 2023-12-08): +1.899% (t=1.33, 32 episodes) · period 3/4 (2023-12-09 a 2025-04-26): +3.261% (t=1.66, 31 episodes) · period 4/4 (2025-04-27 a 2026-07-27): +0.147% (t=0.13, 27 episodes)The edge decayed: +11.18% (t=4.16) in the first quarter of the period, +0.15% (t=0.13) in the last. The partitions that replicate above are across assets, not across time.
- multiple testing3 variation(s) tested · t=2.75 across 184 episodes (equivalent to t=2.73) · p≈0.0063 · false positives expected by chance ≈ 0.02
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
- ×12.48
- worst drawdown from the peak
- −49%
- days below the previous peak
- 753
- signals refused for lack of capital
- 41%
- 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
- +4.32%
- net per trade
- +4.12%
- exit rule
- the technique itself (held until the opposite signal)
- median duration bars
- 17
- mean duration bars
- 20.7
- max duration bars
- 121
- fee per leg
- 0.001
- episode days
- 17
- seed
- 20260728
- fast average
- 20
- slow average
- 50
- dev f
- 3.2
- dev period
- 20
- base
- Moving average crossover (20/50)
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
True range over 2 days; its mean and standard deviation over 20 periods; DDEV = mean + f × deviation; the stop for a long is the TRADE'S HIGH minus DDEV. The source gives three levels of f — 1, 2.06 to 2.25 and 3.20 to 3.50 —, and says the larger ones «correct the skew and allow more risk»: these are three risk appetites of the SAME rule, and all three will be measured, at the lower bound of each pair (1 · 2.06 · 3.20). This stop BACKS AWAY: measured over the base's trades, it loosens on 37.7% of the bars and on 99.2% of the trades, with a maximum retreat of 51.7%. The engine refuses a stop that loosens (`SetupComGestao`), and the source explicitly allows volatility stops to back away — so this enters as an EXIT RULE, not as a managed stop, which is how the source itself describes it («liquidated if the trend changes or the stop is touched, whichever comes first»). Family-level prediction, recorded before measuring: (1) the stop IMPROVES concentration and worsens the mean — it cuts the right tail along with the left, and control 1 is where the 20/50 crossover already dies; if any card in this family changes its verdict relative to the base, I expect it to be by clearing the invariant, not by gaining return; (2) the VOLATILITY stops will do better than the fixed percentage, because that is what the source claims («the ones most likely to work need to adapt to volatility, and not to a fixed value in money or percentage of price») and the claim is testable; (3) the 12 × average true range of 252 will almost never be touched — it is far too wide a stop for crypto, and will measure practically the same thing as the base with no stop; (4) the profit TARGETS will do worse than the stops, because the source's own table shows that the best result for the slow average was WITHOUT profit taking; (5) none survives the family's Benjamini-Hochberg.
filed on 2026-08-03, before the number existed
The original, as it was filed
Amplitude real de 2 dias; média e desvio-padrão dela em 20 períodos; DDEV = média + f × desvio; o stop da compra é o TOPO DA OPERAÇÃO menos DDEV. A fonte dá três níveis de f — 1, 2,06 a 2,25 e 3,20 a 3,50 —, e diz que os maiores «corrigem a assimetria e permitem mais risco»: são três apetites de risco da MESMA regra, e serão medidos os três, pelo limite inferior de cada par (1 · 2,06 · 3,20). ⚠️ Este stop RECUA: medido sobre as operações da base, ele afrouxa em 37,7% das velas e em 99,2% das operações, com recuo máximo de 51,7%. O motor recusa stop que afrouxa (`SetupComGestao`), e a fonte autoriza explicitamente que stops de volatilidade recuem — então esta entra como REGRA DE SAÍDA, não como stop gerido, que é como a própria fonte a descreve («liquidada se a tendência mudar ou o stop for tocado, o que vier primeiro»). Previsão da família, registrada antes de medir: (1) o stop MELHORA a concentração e piora a média — ele corta a cauda direita junto com a esquerda, e o controle 1 é onde o cruzamento 20/50 já morre; se algum card desta família mudar de veredito em relação à base, espero que seja por sair do invariante, não por ganhar retorno; (2) os stops de VOLATILIDADE irão melhor que o percentual fixo, porque é isso que a fonte afirma («os que têm mais chance de funcionar precisam se adaptar à volatilidade, e não a um valor fixo em dinheiro ou percentual do preço») e a afirmação é testável; (3) o 12 × amplitude real de 252 dias quase nunca será tocado — é um stop largo demais para cripto, e vai medir praticamente a mesma coisa que a base sem stop; (4) os ALVOS de lucro irão pior que os stops, porque a própria fonte mostra na tabela dela que o melhor resultado da média lenta foi SEM tomada de lucro; (5) nenhuma sobrevive ao Benjamini-Hochberg da família.
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.
Earlier audits of the same technique
Each variation an author teaches enters as its own test, so that whatever might work in the strategy gets covered. The verdict held in all of them.
- 2026-08-03PASSEDopen ↗
- this measurement →PASSED