Warrior_EA/research/FX_RESULTS.md
AnimateDread 6192393511 research(fx): forex and metals - thirteen registered families, nothing passed
Hypotheses were registered in FX_PLAN.md before each round. Trend,
breakout, cross reversion, hour seasonality, month-end USD, carry-cross
dip-buy, metals dip-buy and flight-to-safety all fail the bar.

The weekend-gap fade looked like the best result of the project on bar
data (OOS t 20, 28/28 pairs) and loses on real ticks (EURCHF PF 0.52,
AUDNZD PF 0.53): the Sunday-open spread is as wide as the gap.
WarriorGapFade is kept as the research artifact that proved it and is
flagged DO NOT TRADE.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 13:24:57 -04:00

5 KiB

Forex & metals — results of the 2026-09-22 overnight search

Plan and every hypothesis were registered in FX_PLAN.md before each round ran. Data: broker history exported from the fleet terminal — H1/H4/D1 for 28 FX pairs and 5 metals, 2004 → 2026-08 (mql5/ExportBars.mq5). Split: IS 2004–2015, OOS 2016–2026. Costs: the bar's own spread. Pass bar: OOS t ≥ 2, same variant positive IS, breadth ≥ half the class, beats a matched random control, then the MT5 tester with real swaps and — for anything intraday — real ticks.

Verdict

No forex or metals strategy passed. Thirteen families in four registered rounds, ~1,300 symbol-variant trials. Round 4 was declared the last before it ran. The closest things to an edge were all killed by one of three things: a regime flip between the halves, drift masquerading as signal, or execution realism.

Every family, every result

id family outcome why it failed
T1 time-series momentum D1 (SMA 50/100/200) 0/33 pass, OOS pooled −8.8 bp FX trend premium absent 2016–26
T2 channel breakout D1 (20/55/100) 0/33 pass, 7/33 OOS positive same
R1 two-sided z-reversion, twinned crosses & majors, H4/D1 0 pass anywhere H4 IS significantly negative (t −4.9): moves continued 2004–15, then stopped — a regime flip, not an edge
S1 intraday hour-window seasonality H1 1/33 (chance level) spread > hourly effect
M1 month-end USD flow USD weakens last 2 days: IS t −2.6, OOS same sign t 1.45 below the bar; 7 USD pairs are one bet
X1 index dip-buy rule on carry crosses IS lost (t −4.07), OOS +12.5 bp gated the losing half is 2008/2011/2015 carry unwinds — the tail risk a prop account cannot hold
X2 SP500 dip signal → long risk FX +4.6 IS / +5.6 OOS bp, no symbol t ≥ 2 weak, and fires with the index portfolio (stacks correlated risk)
X3 weekend gap fade H1 bar data: OOS +7.1 bp, t 11.8, 29/33 real ticks kill it — see below
X4 index dip-buy rule on metals loses in both halves (OOS t −4.22) metals do not revert after sharp drops
C1 metals continuation (X4's mirror) 0/5 pass, OOS pooled −9.3 bp the mirror does not inherit X4's losses as gains
R4 flight to safety: SP500 dip signal → long gold/silver, long CHF/JPY 0/4 pass, OOS pooled −22.6 bp havens did not rally on index dips (gold fell — 2022+ dips came with a strong USD)

The weekend gap — the lesson of the night

Fading the Sunday-open gap looked like the best result of the whole project: 28/28 FX pairs positive out of sample, t 20. Three checks took it apart:

  1. Timing. The share of trades hitting target inside the FIRST hour rose from 5 % (2004–09) to 32 % (2021–26). Entering 1 h later kept ~40 % of it; 2 h later, nothing. The effect lives in the thinnest minutes of the week.

  2. Real ticks. EURCHF with real ticks for all of 2016–26 (WarriorGapFade, Model 4): 51 trades, not 234; PF 0.74; −1,173. Most "gaps" vanish because the spread at the open is as wide as the gap. Example: 2026-08-17 00:05, bought at 0.93955 with the bid at 0.93873 — an 8-pip spread — stopped out one second later. After fixing two EA defects found in that first run (take-profits rejected at the open with rc 10016, and a delayed-entry path that could never fire), the real-tick verdict is unchanged — every variant loses or breaks even:

    real ticks 2016–26 entry at the open entry 1 hour later
    EURCHF 59 trades, PF 0.52, −3,271 108 trades, PF 0.91, −691
    AUDNZD (bar-data OOS t 11) 51 trades, PF 0.53, −2,861 125 trades, PF 0.97, −309
  3. Bar data records one spread per bar. It cannot price the first seconds after a session opens. Any intraday FX result must be re-run on real ticks before it is believed.

One watchlist item (not a strategy)

Gold rises over the first two trading days of the month — OOS the #1 of 19 two-day windows on XAUUSD and XAUEUR (+28 bp over drift, permutation p ≈ 0.01), silver IS #1 / OOS #3. But in 2004–15 gold's first-two-days window was merely average (rank 10/19), and the effect was found by looking at OOS cells, so after multiplicity it is p ≈ 0.15. It would need a year of forward evidence before it could be traded; it is not built into any EA.

What this means for the account

The one validated edge remains the equity-index dip-buy (STRATEGY.md). The reason it works — an asset with a premium (drift) that also reverts after sharp drops — is exactly what forex (no drift, no reversion) and metals (drift, but continuation) lack. The search confirms the mechanism rather than extending it.

The same real-tick test, applied to the index strategy — PASSED

The check that killed the gap fade was run on the live index EA too (4 charts, 2022–26, real ticks from mid/late 2022): account +14.6 % vs +14.7 % on M1-OHLC, drawdown 2.88 % unchanged, same trades. See STRATEGY.md.