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

#72 — Multi-day contrarian program + first-touch H4 bar-grid refutation

2026-07-06 (A1-A5)
Verdict: negative · ⛔ 0/4 IS gates; bar-grid artifact refutes prior +9.49p edge
The pre-registered multi-day contrarian program (first-touch H4 low-vol fade, frozen live params, net of spread AND carry) failed all 4 IS gates — signal -7.31p/trade vs its own coin-flip null +3.52p/trade, WF 1/3, bootstrap P=0.965, breadth 4/12 — and its A4 parity check along the way discovered that entry #68's earlier +9.49p OOS edge was measured on a non-OANDA UTC-midnight H4 bar grid the live paper service never actually traded, refuting that prior "first significant + stationary" finding once re-run on the correct NY-17:00 grid (-6.03p on the same IS window).

Hypothesis — what it tests

Whether the first-touch H4 low-volume fade (frozen deployed-service parameters) survives a rigorous multi-day IS gate battery net of spread AND carry against a coin-flip null, and whether the original study's backtest actually matches the OANDA H4 bar grid the live paper service trades.

Description

H1 tested the first-touch H4 low-volume fade with parameters frozen verbatim from the deployed paper service (L=25 swing lookback, EPS=12p, VW=20-bar volume gate, 2x ATR target/stop, 48h cap) across 12 pairs on 5.5yr M5 bid/ask data, net of spread AND carry, against a coin-flip control arm on identical timestamps. The A4 parity gate reproduced the original 2026-06-18 study exactly (loVol OOS +9.49p, n=303, WR54%, MC P=0.018) but a faithful new harness on OANDA's actual H4 grid (NY-17:00 anchor) diverged sharply on the same IS window (-6.03p, n=425, vs the original's IS-loVol +4.00p, n=434); isolating only the H4 bar-aggregation function and swapping to the original's naive UTC-midnight resample closed ~86% of the gap (+2.61p, n=506), proving the bar-grid convention was the dominant cause — and critically, the deployed fx-first-touch-paper live service itself reads OANDA's native NY-17:00-anchored H4 candles, so the original backtest never matched the grid it was meant to validate. Run anyway for completeness, the full A5 IS gate battery (1,518 trades, 12 pairs x 3 arms, Hetzner) on the correct grid went 0/4: signal -7.31p/trade vs coin +3.52p/trade, walk-forward 1/3 thirds positive, day-block bootstrap P(net<=0)=0.965, breadth 4/12 pairs gross-positive; secondaries (CSI StrengthSpread H4 port, D1 RSI(2)) were also negative. The coin-flip arm's own +3.52p is flagged as a structural exit-machinery/carry tailwind for a future study, not an entry edge. Net effect: this program's diagnostic work downgrades/refutes entry #68's earlier '+9.49p, first significant + stationary edge' — it was measured on a bar grid inconsistent with the live service, and the properly-anchored, fully-controlled gate battery is decisively negative.

Key result

A4 parity: original first_touch_v2.py reproduced verbatim = loVol OOS +9.49p/trade (n=303, WR54%, MC P=0.018), IS-loVol +4.00p (n=434); new harness on OANDA-correct NY-17:00 H4 grid, same IS window = -6.03p (n=425, WR49.2%) — FAILS tolerance (+-0.5p/+-5%); swapping only the bar-aggregation fn to naive UTC-midnight resample recovers +2.61p (n=506), ~86% of gap closed, isolating bar-grid anchor as dominant cause. A5 full IS battery (1,518 trades, 12 pairs x 3 arms, Hetzner): signal net -7.31p/trade (gross -3.36p, n=506) vs coin +3.52p/trade (gross +7.23p) vs continuation -0.44p/trade (gross +3.27p); WF thirds +1.50p/-10.79p/-9.87p (1/3 positive, none catastrophic); day-block bootstrap P(net<=0)=0.965, boot mean -7.35p, 95% CI [-15.07p, +0.61p]; breadth 4/12 pairs gross-positive (best NZD_USD +25.7p gross/+23.0p net WR70%, worst EUR_JPY -17.7p gross/-21.8p net WR38%). Secondaries (IS-only, exploratory): CSI StrengthSpread H4/64-bar port -23.84p/leg (n=558 legs, 93 rebalances, 43.5% net-positive); D1 RSI(2) -16.31p/trade (n=1631, WR52%, 5/12 pairs gross-positive). 0/4 of gates 3-6 pass; OOS (sealed final 30%) never opened.

Indicators

H4 swing high/low levels (L=25)tick-volume gate (VW=20-bar mean, low-volume only, VREL_MAX=1.16)ATR(14, H4) target/stop (2.0x)carry/financing rate (OANDA + FRED policy-rate differential)D1 RSI(2), Wilder smoothing (secondary)CSI StrengthSpread H4 (secondary)

Algorithms

event-driven multi-day fade backtest, 3 arms (signal / coin-flip / continuation)H4/D1 bar aggregation — OANDA NY-17:00 anchor vs naive UTC-midnight pandas.resample diagnosticwalk-forward (3 IS thirds)day-block bootstrap Monte Carlo (2000 resamples)D1 RSI(2) mean-reversion backtest (secondary)CSI StrengthSpread H4/64-bar rebalance portfolio (secondary)equal-risk portfolio combiner (not constructed — no IS-positive candidate)

Code

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

← #71 Regime-conditioned entry Phase A (triple-barrier, against-drift)#73 SMA-scratch tail-bounding test + restart-censoring discovery →
This page is one experiment from the audited record behind the book The Edge That Wasn'tget the book · about the project.