The Edge That Wasn't
All 81 experiments › #19

#19 — Path D mean-reversion filter

2026-04-15
Verdict: mixed · 🟡 real but sub-tradeable (+0.17–0.21 p/d)
Making the entry rule explicit (fade 30-bar range extremes) and demoting the NN to a quality filter produced the campaign's first all-seeds-positive pairs — EUR_JPY +0.21 and CAD_JPY +0.17 p/d — real signal an order of magnitude below the spread.

Hypothesis — what it tests

Whether using the NN as a quality filter on explicit range-extreme mean-reversion entries (instead of a free-form signal generator) exposes the causal mean-reversion edge.

Description

Paths A/B/C asked the neural net to detect the setup, pick direction, and time entry/exit simultaneously; Path D decoupled these. Entry became an explicit rule — range_pos_30 < 0.10 (long) or > 0.90 (short) at H1 cadence — exit a rule (revert to mid-range, max-hold, or 20p SL), and the CMA-ES net output a single scalar confidence that merely filtered which rule-triggered entries to take. D1 (simple extreme-fade) put EUR_JPY at +0.35 p/d with all 4 seeds positive; D2 added a counter-trend filter (H1 slope must oppose the trade) and produced two all-seeds-positive pairs, EUR_JPY +0.21 and CAD_JPY +0.17 p/d, with better generalization (50% of runs OOS > IS). These were the first all-seeds-positive results of the post-RCA campaign and vindicated the Deep2 and CSI StrengthSpread mean-reversion hints — but at 0.1–0.2 trades/day and ~0.2 p/d against a 2.3-pip spread, the user declined to trade it. The session-close verdict: research wins, no trade; the feature scale, not the architecture, is the ceiling.

Key result

D2: EUR_JPY +0.21 (seeds +0.06..+0.35) and CAD_JPY +0.17 (+0.02..+0.31) all-seeds-positive; D2 aggregate 9/48 positive, 50% generalize, avg −0.27 (vs D1 −0.52); ~0.1–0.2 trades/day; edge ~10× below 2.3p spread

Indicators

range_pos_30 (position in 30-bar range)H1 slopebb_postrending / high_vol regime filtersUPnL state

Algorithms

CMA-ES NN-as-filter architecturerule-based entry/exit with NN confidence gatingmulti-seed robustness test

Code

Interactive version (search, filters, figures): the experiment explorer.

← #18 Path B (new core) + Path C (H1 cadence)#20 StrengthSpread lookahead RCA →
This page is one experiment from the audited record behind the book The Edge That Wasn'tget the book · about the project.