Oscillator with ADX filter (10/50, ADX<30)
A two-average oscillator times price swings well when the market goes nowhere, and takes a beating when a trend exists, because it then keeps selling the rally and buying the dip. Measuring trend strength with an index that ignores direction lets you trade the oscillator only in the periods where it works and stand aside in the others — without ever having to predict which way the trend will go.
Measured in forex — EUR/USD and GBP/USD · daily bars built from 15m · 1 pip spread (~0.009% per round trip) · no survivorship bias
- ✓invariance
- ✗costs
- ✗placebo
- ✗benchmark
- ?out of sample
- ?multiple testing
At its worst the account was worth 0% less than its own best previous moment, and it spent 2,290 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 · the broker's fee
What would have happened to the money
What this result does NOT say
- One market, one universe
- Measured on 2 spot currency pairs. 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 2020-01-01 to 2026-06-26. 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 a 1.0 pip spread, crossed once. 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 473 trades, but only 211 independent market episodes: trades that overlap in time are not independent observations, and counting them as if they were inflates any result. It is the smaller number that governs the arithmetic. With 211 episodes, what the data supports is a range from -0.20% to +0.09% 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 | failed | -0.86 | 1.97 | 211 |
| placebo | failed | -1.02 | 1.97 | 211 |
| benchmark | failed | — | — | — |
| out of sample | inconclusive | — | — | — |
| multiple testing | inconclusive | — | — | — |
- invariance473 signals across 4055 barsconcentration: +39.49% of the profit sits in the top 5% of trades — with the dates shuffled, +36.62% (fails above +50.00%)
- costsgross -0.054% · cost 0.008% · net -0.063% (t=-0.86)
- placeboactual -0.063% · placebo +0.012% · excess -0.075% ± 0.073% (t=-1.02 against a threshold of 1.97, 211 real groups, 23,650 sham dates, draw error ±0.008%)
- benchmarktechnique -0.06% · buy and hold (same horizon) +0.01% · excess -0.07%
- out of sampleasset half A: -0.069% (t=-0.85, 159 episodes) · asset half B: -0.055% (t=-0.57, 143 episodes) · liquid half (>= US$ 0/day): -0.063% (t=-0.86, 211 episodes) · period 1/4 (2020-02-28 a 2021-09-13): -0.134% (t=-0.93, 57 episodes) · period 2/4 (2021-09-14 a 2023-03-09): -0.082% (t=-0.53, 53 episodes) · period 3/4 (2023-03-10 a 2024-12-18): +0.150% (t=1.11, 51 episodes) · period 4/4 (2024-12-24 a 2026-06-14): -0.184% (t=-1.24, 51 episodes)
- multiple testing1 variation(s) tested · t=-0.86 across 211 episodes (equivalent to t=-0.85) · p≈0.3937 · false positives expected by chance ≈ 0.39
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.00
- worst drawdown from the peak
- −0%
- days below the previous peak
- 2,290
- signals refused for lack of capital
- 0%
- paths where the account halved (out of 12)
- 0
Reproducibility
- period
- 2020-01-01 to 2026-06-26
- assets that traded
- 2
- variations tested before this one
- 1
- gross per trade
- −0.05%
- net per trade
- −0.06%
- exit rule
- the technique itself (held until the opposite signal)
- median duration bars
- 4
- mean duration bars
- 7.0
- max duration bars
- 41
- spread pips
- 1.0
- episode days
- 7
- seed
- 20260728
- osc fast
- 10
- osc slow
- 50
- ADX threshold
- 30.0
- ADX period
- 14
Twelve Data forex (15m aggregated to 1d) · collected on 2026-07-25 · 2 assets · 4,055 bars · 2020-01-01 to 2026-06-26
Hypothesis, filed before the result
Rules given in full: oscillator of the 10- and 50-day averages, filtered by ADX(14) < 30. Same blockage: the ADX is in chapter 23. It is the most frustrating case in the population, because everything else is specified. Family prediction, filed before measuring: (1) the control that kills the most will be COST, and not invariance — unlike the `adaptativos` family, because these are discrete-signal oscillators, they turn over less and are not always in the market; (2) the DIVERGENCE techniques will come out mostly INCONCLUSIVE, because they require two aligned peaks and fire rarely; (3) none survives the family's Benjamini-Hochberg. I record that prediction (1) is the opposite of the one I made in `adaptativos` and that was confirmed there — if I get it wrong again in the same direction, that is a sign I am misreading the mechanism of cost, not the technique. UNBLOCKED on 2026-07-30: the ADX calculation arrived. It is NOT in the body of chapter 23 as the source says — it is inside 'Ranking of Markets for Selection' (p. 1062), as a sub-section the two-level table of contents does not list. The full chain: PDM and MDM → smoothed over 14 (constant 0.071) on the true range → PDI and MDI → DX = 100×|PDI−MDI|/(PDI+MDI) → ADX smoothed with 0.133. This technique goes from NOT SPECIFIED to auditable, without changing the population: it was already one of the 24 declared ones. And the source prints the MDM INVERTED. It writes 'MDM = today's low minus yesterday's' (L_t − L_t−1) and states, one paragraph later, that 'on an inside day both PDM and MDM are zero'. Both cannot be true. Measured over 2,286 inside days of crypto: with the printed formula, MDM is zero on 0 of them (0.0%); with Wilder's definition (L_t−1 − L_t), on 2,286 (100.0%). We implement the definition, and the divergence is published. MEASURED IN FOREX (EUR/USD and GBP/USD, daily bars built from 15m), not in crypto. This is a pre-registered REPLICATION of the same technique in the second market — not a new discovery — and the multiple-testing count treats it as such. What changes relative to the crypto card: 2 pairs over 6.5 years against 540 over 9, a round trip costs about 20× less (a 1 pip spread crossed once, against 0.1% commission per leg), the detection floor is about 10× lower (0.092% against 0.97%) and there is NO survivorship bias, because a currency pair does not get delisted. And the family prediction that has ALREADY FAILED once in `adaptativos` is put on record: I wrote there that «cost cannot be the gravedigger» in forex, and it killed 6 of 10 — cost is 22× smaller, but gross return is 30× smaller. Here I expect the same mechanism, and this time that is the prediction.
filed on 2026-08-03, before the number existed
The original, as it was filed
Regras dadas por inteiro: oscilador de médias de 10 e 50, filtrado por ADX(14) < 30. ⚠️ Mesmo bloqueio: o ADX está no capítulo 23. É o caso mais frustrante da população, porque tudo o mais está especificado. Previsão da família, registrada antes de medir: (1) o controle que mais mata será o CUSTO, e não o invariante — diferente da família `adaptativos`, porque estes são osciladores de sinal discreto, giram menos e não são sempre-no-mercado; (2) as técnicas de DIVERGÊNCIA sairão majoritariamente INCONCLUSIVAS, porque exigem dois picos alinhados e disparam pouco; (3) nenhuma sobrevive ao Benjamini-Hochberg da família. ⚠️ Registro que a previsão (1) é o oposto da que fiz em `adaptativos` e que se confirmou lá — se eu errar de novo na mesma direção, é sinal de que estou lendo mal o mecanismo do custo, e não a técnica. ⚠️ DESTRAVADA em 2026-07-30: o cálculo do ADX chegou. Ele NÃO está no corpo do capítulo 23 como a fonte diz — está dentro de 'Ranking of Markets for Selection' (p. 1062), como sub-seção que o sumário de dois níveis não lista. A cadeia completa: PDM e MDM → suavizados em 14 (constante 0,071) sobre o true range → PDI e MDI → DX = 100×|PDI−MDI|/(PDI+MDI) → ADX suavizado com 0,133. Esta técnica sai de NÃO ESPECIFICADA para auditável, sem mudar a população: ela já era uma das 24 declaradas. ⚠️ E a fonte imprime o MDM INVERTIDO. Ela escreve 'MDM = mínima de hoje menos a de ontem' (L_t − L_t−1) e afirma, um parágrafo depois, que 'num dia interno tanto PDM quanto MDM são zero'. As duas coisas não podem ser verdade. Medido em 2.286 dias internos de cripto: com a fórmula impressa, MDM é zero em 0 deles (0,0%); com a definição de Wilder (L_t−1 − L_t), em 2.286 (100,0%). Implementamos a definição, e a divergência fica publicada. ⚠️ MEDIDO EM FOREX (EUR/USD e GBP/USD, diário agregado de 15m), e não em cripto. Isto é uma REPLICAÇÃO pré-registrada da mesma técnica no segundo mercado — não uma descoberta nova —, e a conta de múltiplos testes a trata como tal. O que muda em relação ao card de cripto: são 2 pares em 6,5 anos contra 540 em 9, o custo do giro é ~20× menor (spread de 1 pip cruzado uma vez, contra comissão de 0,1% por lado), o piso de detecção é ~10× menor (0,092% contra 0,97%) e NÃO há viés de sobrevivência, porque par de moeda não é deslistado. ⚠️ E fica registrada a previsão da família que JÁ FALHOU uma vez em `adaptativos`: escrevi lá que «o custo não tem como ser o coveiro» em forex, e ele matou 6 de 10 — o custo é 22× menor, mas o retorno bruto é 30× menor. Aqui espero o mesmo mecanismo, e desta vez a previsão é essa.
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.