Trading Auditor
← back to every claim
FAILED

Volume-weighted MACD (12/26, signal 0.2)

An ordinary moving average treats every day as equal, when the heavy-volume days are precisely the ones that carry the market's decision. Weighting each close by its volume brings the average closer to the price at which real money traded — and the resulting crossover arrives on time more often.

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

Net per trade
+0.17%
after fees
The fee is charged on both legs: every trade pays to open and pays to close.
Died at
benchmark
loses to buy and hold (same horizon)
Worst drawdown
−71%
1,921 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 71% less than its own best previous moment, and it spent 1,921 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+0.17%random dates−0.14%
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+0.37%median−1.90%

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, 56,594 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 29 of the 56,594. 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

+0.37% 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 did not pass — it died here · against buying and holding

We compare it against simply buying and holding for the same stretch of time, with no rule at all. Sitting still paid more. The technique takes work, demands attention, and delivers less than doing nothing.

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 0.85× what it started with. But that number is not trustworthy: draw the order in which the signals arrive and it ranges from 0.53× to 1.22×. That is the draw talking, not the technique. At its worst the account was worth 71% less than its own best previous moment, and it spent 1,921 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

67% 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.

What this result does NOT say

For an edge to be assertable here it would have to reach 4.54% per trade — that is the size that survives this archive's multiple-testing correction, and it rises as the archive grows. So FAILED means “we found nothing above that size”, and never “it cannot possibly work”. The instrument is far more sensitive than that: on synthetic data, with a clean effect, it separates from 0.69% upwards. The distance between the two numbers is the price of a real market and the price of publishing many claims. 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 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 56,594 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 -1.20% to +1.95% 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
costsinconclusive0.222.0529
placeboinconclusive0.392.0529
benchmarkfailed
out of sampleinconclusive
multiple testinginconclusive
  • invariance56594 signals across 750934 barsconcentration: +49.58% of the profit sits in the top 5% of trades — with the dates shuffled, +41.99% (fails above +50.00%)
  • costsgross +0.373% · cost 0.200% · net +0.173% (t=0.22) · the range runs from -1.401% to +1.746%
  • placeboactual +0.173% · placebo -0.137% · excess +0.310% ± 0.788% (t=0.39 against a threshold of 2.05, 29 real groups, 2,829,700 sham dates, draw error ±0.015%)
  • benchmarktechnique +0.17% · buy and hold (same horizon) +0.24% · excess -0.07%
  • out of sampleasset half A: +0.010% (t=0.01, 29 episodes) · asset half B: +0.323% (t=0.41, 29 episodes) · liquid half (>= US$ 2,066,613/day): +0.553% (t=0.66, 29 episodes) · illiquid half: -0.228% (t=-0.16, 28 episodes) · period 1/4 (2017-10-06 a 2022-05-15): +1.872% (t=1.40, 16 episodes) · period 2/4 (2022-05-16 a 2023-11-30): -0.100% (6 episodes — too small, does not count) · period 3/4 (2023-12-01 a 2025-05-09): +1.130% (5 episodes — too small, does not count) · period 4/4 (2025-05-10 a 2026-07-27): -2.199% (5 episodes — too small, does not count)
  • multiple testing1 variation(s) tested · t=0.22 across 29 episodes (equivalent to t=0.21) · p≈0.8299 · false positives expected by chance ≈ 0.83

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
×0.85(×0.53–×1.22 depending on the drawn ordering)
worst drawdown from the peak
71%
days below the previous peak
1,921
signals refused for lack of capital
67%
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
+0.37%
net per trade
+0.17%
exit rule
the technique itself (held until the opposite signal)
median duration bars
13
mean duration bars
12.7
max duration bars
81
fee per leg
0.001
episode days
112
seed
20260728
VW-MACD fast
12
VW-MACD slow
26
VW-MACD constant
0.2

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

pp. 543–544. The MACD's two averages become volume-weighted: `Σ(C_i×V_i)/Σ(V_i)` over 12 and 26 periods, with an exponential signal line of constant 0.20 («the equivalent of about 9 days»). The rule is given in full: «enter a new long position when the VWMACD crosses above the signal line, and the opposite for shorts». The periods 12 and 26 are the MACD standards and the source recommends them explicitly. THE CLAIM IS MODEST AND WITHOUT A NUMBER: «this variation appears to produce only small changes, but a slight improvement in timing can be a big advantage in trading» — compared with the ordinary MACD, which the corpus does not publish, so there is no direct confrontation with an existing card. 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. 543–544. As duas médias do MACD passam a ser ponderadas pelo volume: `Σ(C_i×V_i)/Σ(V_i)` sobre 12 e 26 períodos, com linha de sinal exponencial de constante 0,20 («o equivalente a cerca de 9 dias»). A regra é dada por inteiro: «entrar numa nova posição comprada quando o VWMACD cruza acima da linha de sinal, e o oposto para vendidas». Os períodos 12 e 26 são os padrão do MACD e a fonte os recomenda explicitamente. ⚠️ A ALEGAÇÃO É MODESTA E SEM NÚMERO: «esta variação parece produzir apenas pequenas mudanças, mas uma leve melhora no timing pode ser uma grande vantagem na operação» — comparada ao MACD comum, que o corpus não publica, então não há confronto direto com card existente. 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.

record 3e2eed63dc02 · 2026-08-04 20:26

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.