Trading Auditor
← back to every claim
PASSED

Moving average crossover (20/50)

The moving-average crossover identifies the trend's turn in time to get into it: buying the upward cross and selling the downward one captures the main move and keeps you off the wrong side of the market. You hold until the opposite cross.

Measured in cryptoBinance spot · 540 pairs, delisted ones included · 0.2% per round trip

Net per trade
+1.81%
after fees
The fee is charged on both legs: every trade pays to open and pays to close.
Weakest point
placebo
survived all six controls (t=3.50 against a threshold of 2)
Worst drawdown
−43%
794 days underwater
How far the account fell below its own best previous moment.
Timeframe
1 day
The time grid this was measured on. The same technique on a coarser or finer grid is a different measurement, and can earn a different verdict.
  • invariance
  • costs
  • placebo
  • benchmark
  • out of sample
  • multiple testing
Equity curve
Risking 1.0% per trade, marked to market every day — not only when a trade closes. The line at 1.0 is the capital it started with.

At its worst the account was worth 43% less than its own best previous moment, and it spent 794 days below that peak.

The technique against chance
Same number of trades, same holding time, same assets — only the dates were drawn at random.
0%barthe technique+1.81%random dates−0.18%
The average trade and the typical one
The mean sits above the median: the lottery signature — the typical trade loses and a rare handful pays for everything.
0%mean+2.01%median+0.44%

What was measured

We coded the rule exactly as it is described and let it trade on its own from 2017-08-17 to 2026-07-28. It found trades in 540 coins, 14,883 in total. Each one enters and exits at the price that existed on that day — the program never sees what comes next, which is the most common mistake people make testing strategies at home. Wherever the description was ambiguous we took the reading least favourable to the technique; whatever was left open is stated in the hypothesis, at the foot of this page.

How many of those trades actually count

Only 305 of the 14,883. Cryptocurrencies rise and fall almost in unison, so the same rule fires on dozens of coins on the same day — and that is one bet repeated, not dozens of different bets. Counting them all separately is the trick that makes a bad test look impressive.

What it paid, before any deductions

+2.01% per trade. This is the number the technique claims, and the only one on this page that has not yet been through a single control.

Why it passed

It survived every mundane explanation we tested:
  • 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

Risking 1.0% of capital per trade — the most widely taught rule — across the whole period: The capital would have ended at 3.10× what it started with. At its worst the account was worth 43% less than its own best previous moment, and it spent 794 days below that peak. In none of the 12 paths tested did it fall to less than half of what it started with.

The account would not fit every signal

25% of the trades had to be turned down: by the time they appeared, the money was already tied up in other positions. That matters because the average return per trade the technique claims is computed over trades that nobody could have taken all of.

The effect sits at the start of the period, not the end

Cutting the period into four equal pieces: in the first, 2017-10-11 a 2022-07-08, the technique returned +3.04% per trade — a number this engine can assert. In the last, 2025-05-01 a 2026-07-18, it returned +1.65%, which cannot be told apart from zero. The average over the whole period mixes the two and hides the difference: it is what remains of an edge that no longer shows up in the most recent slice. What this does not say: that the edge is gone. The last slice holds 46 independent episodes, and with that much data it could not tell even a reasonable effect from zero. What can be asserted is narrower, and it is the part that matters to anyone trading today: the result of the whole comes from a period that has already passed, and the recent slice does not confirm it.

What this result does NOT say

Clearing the six controls is not a promise of future profit, and it is not advice to trade. It means only this: over this period and in this universe, we did not find the mundane explanation that knocked the others down. An edge that existed may be running out — this archive holds a technique that passed and whose most recent slice of time is already negative. The difference matters, and it is the rule of this house: the card confronts the claim, never the person who made it.
What this card does not measure
Every verdict holds for the conditions it was measured under. These are this card's — and outside them the result does not apply.
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 auditor's fixed horizon (10 bars). 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,883 trades, but only 305 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 305 episodes, what the data supports is a range from +0.91% to +3.12% 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

controlstatustthresholdepisodes
invariancepassed
costspassed3.231.97305
placebopassed3.501.97305
benchmarkpassed
out of samplepassed
multiple testingpassed
  • invariance14883 signals across 750934 bars
  • costsgross +2.015% · cost 0.200% · net +1.815% (t=3.23)
  • placeboactual +1.815% · placebo -0.180% · excess +1.995% ± 0.570% (t=3.50 against a threshold of 1.97, 305 real groups, 744,150 sham dates, draw error ±0.026%)
  • benchmarktechnique +1.81% · buy and hold (same horizon) +0.03% · excess +1.79%
  • out of sampleasset half A: +1.870% (t=2.99, 288 episodes) · asset half B: +1.765% (t=3.02, 298 episodes) · liquid half (>= US$ 2,066,613/day): +2.056% (t=3.41, 302 episodes) · illiquid half: +1.536% (t=2.21, 271 episodes) · period 1/4 (2017-10-11 a 2022-07-08): +3.045% (t=3.28, 159 episodes) · period 2/4 (2022-07-09 a 2023-12-21): +0.587% (t=0.66, 53 episodes) · period 3/4 (2023-12-22 a 2025-04-30): +1.972% (t=1.53, 50 episodes) · period 4/4 (2025-05-01 a 2026-07-18): +1.655% (t=1.88, 46 episodes)The edge decayed: +3.04% (t=3.28) in the first quarter of the period, +1.65% (t=1.88) in the last. The partitions that replicate above are across assets, not across time.
  • multiple testing1 variation(s) tested · t=3.23 across 305 episodes (equivalent to t=3.21) · p≈0.0013 · false positives expected by chance ≈ 0.00

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
×3.10
worst drawdown from the peak
43%
days below the previous peak
794
signals refused for lack of capital
25%
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
+2.01%
net per trade
+1.81%
exit rule
the auditor's fixed horizon (10 bars)
horizon bars
10
fee per leg
0.001
episode days
10
fast average
20
slow average
50

Binance spot klines (delisted pairs included) · collected from 2026-07-27 23:31 to 2026-07-28 14:29 · 540 assets · 750,934 bars · 2017-08-17 to 2026-07-28

Seed not recorded: audits before 2026-07-29 used 20260728 by convention in the code, and the value is not in the record.

Hypothesis, filed before the result

The moving average crossover is a transformation of past price. I expect: gross edge close to zero, and whatever little there is being eaten by the fee — the pattern measured across four independent arenas on 2026-07-27.

the filing date is not in this audit's record

The original, as it was filed

O cruzamento de médias é uma transformação do preço passado. Espero: vantagem bruta próxima de zero, e o pouco que houver sendo consumido pela taxa — o padrão medido em quatro arenas independentes em 2026-07-27.

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 changed along the way — a fix in the engine changes the number, and that is a fact that has to stay visible. No earlier record was deleted.

  1. 2026-08-03INCONCLUSIVEopen ↗
  2. this measurement →PASSED
  3. 2026-07-28PASSEDopen ↗
  4. 2026-07-28PASSEDopen ↗
  5. 2026-07-28PASSEDopen ↗
  6. 2026-07-28INCONCLUSIVEopen ↗
  7. 2026-07-28INCONCLUSIVEopen ↗
  8. 2026-07-28PASSEDopen ↗

record be7a29d24162 · 2026-07-28 23:39

This code comes from this card's content: if anything here changed after publishing, the code would stop matching — that's how a change gets caught. We audit the technique, never the person — no record names an author, a channel or a brand.

The full record behind this verdict. No seed (predates 2026-07-29): the placebo may not replicate.