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>
79 行
5 KiB
Markdown
79 行
5 KiB
Markdown
# 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`.
|