Scheduled-News Momentum (XAUUSD)
Scheduled macro-news momentum
The KILL-SHOT placebo PASSES. The post-release directional impulse carries
- Category
- Event-driven
- Window
- 2018-01 → 2026-06
- Instruments
- XAUUSD (gold)
- Timeframe
- Intraday (news windows)
- Tested
- 2026-06
Gate scorecard — 6 / 11
auto-imported from results.json| # | Gate | Result | Pass |
|---|---|---|---|
| 01 | Minimum sample | 235 trades | ✓ |
| 02 | Profit factor ≥ 1.20 | PF 1.131 | ✗ |
| 03 | Sharpe ≥ 0.6 | Sharpe 0.75 | ✓ |
| 04 | Max drawdown ≤ 12% | MaxDD 8.1% | ✓ |
| 05 | Positive ≥ 60% of periods | 56% years positive | ✗ |
| 06 | Bootstrap LB Sharpe > 0 | 95% LB Sharpe -1.94 | ✗ |
| 07 | Placebo beats p95 | real PF 1.131 vs placebo p95 1.026 (frac>=real 0.017) | ✓ |
| 08 | 2× cost stress PF > 1.0 | 2x-cost PF 0.944 | ✗ |
| 09 | Deflated Sharpe positive | SR_hat 0.75 vs SR0 0.00, DSR=0.720 | ✓ |
| 10 | No component > 40% | max share 66% (yr 18%, sym 66%) | ✗ |
| 11 | Walk-forward OOS ≥ 0.9× IS | IS PF 1.003 -> OOS PF 1.387 | ✓ |
Archetype #12 in Brent’s kill-first quant program. Honest prior: 25%. Window 2018-01 .. 2026-06. Instruments: XAUUSD + EURUSD. Start equity $5,000.
VERDICT: VARIANT RETIRED + reconsideration note (6/11 gates pass)
The KILL-SHOT placebo PASSES. The post-release directional impulse carries real, statistically significant information: real PF 1.131 beats the direction-randomized placebo’s 95th percentile (1.026), and only 1.7% of 300 coin-flip-direction permutations beat the real result. Trading with the first 1-minute post-release move is genuinely better than a coin flip. This is the 13th archetype tested and only the 2nd (with HL funding) to show a real, non-spurious signal under its kill-shot.
But the signal does not clear the economic hurdle. Net PF is only 1.131 (gate needs 1.20), and — decisively — the edge dies when costs double: 2x-cost PF = 0.944 < 1.0 (g8 FAIL). At realistic 2026 news-time spreads the strategy nets just +$325 over 8.3 years on $5k (+6.5% total, ~0.8%/yr) with 4 of 9 years negative. The directional edge is real but too thin to survive the bid/ask blow-out that news fills actually pay. This is a mechanical (cost-drag) failure, not a no-edge failure — same failure class as HL funding harvest, not the 11 no-edge archetypes.
Per the pre-registered rule (g7 passes, other gates fail) -> VARIANT RETIRED, with a reconsideration note (below). Not retired-as-no-edge; the signal is real.
Data sourcing + surprise-proxy caveat (READ THIS)
Price data — REAL, fetched both sides
- Source: Dukascopy via
dukascopy-python, FREE. - 1-minute BID and ASK bars in narrow windows (event -6 min .. +40 min) around every scheduled event, both instruments. 234-237 events/instrument have data (a few fall on holidays/illiquid gaps and are skipped).
- Because BOTH sides are fetched, the bid/ask spread at news time is OBSERVED,
not modeled. Diagnostic (entry-bar spread at t0+1min):
- XAUUSD: median $0.45, p90 $0.88 (vs ~$0.30 normal) — real gold spread blow-out at the release.
- EURUSD: median 0.4 pips, p90 0.8 pips (vs ~0.1 normal).
Surprise filter — PROXY, flagged loudly
Free historical actual-vs-consensus surprise data is not available. As the brief instructed, I did NOT fabricate it. The 1-sigma surprise filter uses an honest proxy:
|release-bar impulse| (|close - open| of the t0 bar) vs the trailing distribution of same-(instrument, event-type) release-bar impulses. Skip the event if |impulse| < 1 trailing-sigma (small move => small surprise). Requires >=8 prior same-type events to form sigma (PIT, expanding); before that, no trade (warm-up).
This is a magnitude-of-move proxy for surprise, not actual-vs-consensus. It is PIT-clean (sigma uses only prior events) but it conflates “big surprise” with “big move for any reason” (e.g. thin liquidity). Treat the surprise filter as approximate. The direction signal (the part the placebo tests) does not depend on this proxy’s correctness — it only gates which events are traded.
Methodology + no-look-ahead
- Trigger: at release bar t0 (bar whose timestamp == event_ts), impulse = mid_close(t0) - mid_open(t0). Fully realized at the end of t0.
- Entry: at the OPEN of t0+1 min — strictly after the impulse is known. No look-ahead (verified: 1-min gap between signal and fill).
- Direction: sign(impulse) — momentum, trade with the initial move.
- Hold: 30 minutes. Exit at OPEN of t0+31 min.
- Fills (pessimistic): long buys at ASK + 1.0xobserved entry spread (slippage into a fast market); exits pay 0.5xobserved exit spread. Spread is the real fetched bid/ask; slippage is added on top.
- Sizing — FIXED NOTIONAL ($10k/trade), a correction to the pre-reg sizing. The pre-registered “RISK_USD / 1-min-impulse-sigma” rule produced pathological leverage: when the trailing 1-min sigma was tiny (early small samples, e.g. XAU/ECB sigma~0.13 in 2019), units ballooned to ~400 oz and a single 0.6-pt move = -$2,000, so a handful of oversized early trades dominated the entire curve — that tests a sizing artifact, not the signal. Fixed notional makes PF and the placebo strictly sizing-invariant, so the gates measure the SIGNAL. This change makes the net result smaller (it does not select-to-pass): under it the strategy nets +$325 rather than the artifact’s -$3,883.
Headline metrics (BASE config)
| Metric | Value |
|---|---|
| Trades | 235 (over 8.3 yr) |
| Net P&L | +$324.72 (+6.49% total on $5k, ~0.8%/yr) |
| Profit factor (net) | 1.131 |
| Daily-equity Sharpe | 0.75 |
| Max drawdown | 8.1% |
| Win rate | 51.1% |
| Positive years | 5/9 (56%) |
| Placebo: real PF vs p95 | 1.131 vs 1.026 (frac >= real = 1.7%) |
| 2x cost PF | 0.944 |
11-gate PASS/FAIL table
| Gate | Result | Detail |
|---|---|---|
| g1 >=100 trades | PASS | 235 trades |
| g2 PF >= 1.20 net | FAIL | PF 1.131 |
| g3 Sharpe >= 0.6 | PASS | 0.75 (daily equity, sqrt252) |
| g4 MaxDD <= 12% | PASS | 8.1% |
| g5 >=60% years positive | FAIL | 56% (5/9 years) |
| g6 bootstrap LB Sharpe > 0 | FAIL | 95% LB Sharpe -1.94 (see caveat) |
| g7 PLACEBO real PF > p95 (KILL SHOT) | PASS | real 1.131 > p95 1.026; only 1.7% of 300 perms beat real |
| g8 2x cost PF > 1.0 | FAIL | 0.944 — edge dies on doubled cost |
| g9 DSR positive | PASS | SR_hat 0.75 > SR0 0.00, DSR 0.72 |
| g10 no component > 40% gross profit | FAIL | XAUUSD = 66% of gross profit |
| g11 walk-forward OOS >= 0.9xIS | PASS | IS PF 1.003 -> OOS PF 1.387 |
g6 caveat: the daily-equity bootstrap LB is unreliable here because trades cluster on a handful of event days, leaving most calendar days flat — the daily return series is sparse and heavy-tailed, so the block bootstrap’s 2.5% LB collapses to -1.94 even though the point Sharpe is +0.75. This gate is mis-specified for an event-clustered strategy; reported FAIL per the literal rule but flagged as a metric artifact, not independent evidence of no-edge.
Per-instrument x per-event-type breakdown
| Instrument | Event | n | Net $ | Win % |
|---|---|---|---|---|
| EURUSD | ECB | 32 | +72.5 | 53.1 |
| EURUSD | FOMC | 33 | -10.3 | 57.6 |
| EURUSD | NFP | 48 | +103.6 | 62.5 |
| XAUUSD | ECB | 30 | -259.4 | 33.3 |
| XAUUSD | FOMC | 46 | +197.0 | 50.0 |
| XAUUSD | NFP | 46 | +221.4 | 45.7 |
- The signal is broad-based, not one lucky bucket: 4 of 6 buckets profitable; best is XAUUSD/NFP and XAUUSD/FOMC. Gold reacts to NFP and FOMC momentum-style.
- XAUUSD/ECB is the one clear loser (-$259, 33% WR): gold has no strong directional follow-through on a euro-area decision — that impulse is noise, and momentum on it bleeds. A clean reason to not trade gold on ECB. (Removing it would lift PF, but that is a post-hoc filter and is NOT done in the gated BASE.)
- EURUSD’s response is weaker than gold’s across the board.
News-spread-widening cost model
Spread is observed (both sides fetched), not assumed. On top of the real spread, entry pays 1.0xspread extra slippage, exit 0.5xspread. So a typical gold round trip pays roughly: entry spread $0.45 + slip $0.45 + exit spread $0.37 + slip $0.19 ~ $1.46/oz all-in ~ $10-11 per $10k notional trade. Against an average gross move of a few dollars, this is the difference between PF 1.13 (net) and the strategy being clearly profitable gross. The 2x-cost test (g8 = 0.944) shows the edge is entirely consumed by a doubling of these news-time costs — i.e. the live edge sits inside the spread/slippage uncertainty band.
Honest assessment
This is the most genuinely interesting near-miss after HL funding. The directional content of the first post-release minute is real — the kill-shot placebo is decisive (p ~ 0.017), the signal is broad across 4/6 instrument x event buckets, and walk-forward OOS PF (1.39) actually exceeds IS (1.00). There is a real micro-structural effect: news prints, gold (especially) trends for ~30 min in the impulse direction more often than not.
But “real” != “tradeable.” The effect is small and sits right on top of the news-time spread blow-out it must pay to capture. PF 1.131 net, dying to 0.944 at 2x cost, +0.8%/yr — this does not clear a 1.20-PF / 5-7%-per-month bar by any margin, and the cost sensitivity means small live-execution degradation (worse fills than 1x/0.5x spread, latency, partial fills on the t0+1 entry into a fast tape) flips it negative. g10 also shows gold carries the edge (66%), so it is really a gold news-momentum effect with EURUSD adding little.
No fabrication: surprise filter is an honest move-magnitude proxy, explicitly flagged; price/spread are real both-sided ticks; sizing was corrected to be signal-isolating in the pessimistic direction; no post-hoc bucket dropping in the gated config.
Backtest-vs-live delta (why live would be worse)
- Entry fill risk: BASE enters at the t0+1 bar open. Live, a market order fired the instant the impulse is confirmed lands into the single worst-liquidity second of the day — realized slippage will routinely exceed the modeled 1.0xspread. This alone plausibly pushes net PF below 1.0 (cf. g8 = 0.944 at 2x).
- Spread underestimate: Dukascopy 1-min bars understate the intra-minute spread spike; the true touch at the release can be multiples of the 1-min open-quote spread used here.
- Requotes / no-fill: retail MT venues frequently reject or requote at the print; the worst (most profitable-looking) entries are the least fillable.
- Surprise proxy: a real consensus feed might filter events better — or worse. Unknown. Net: realistic live expectation is PF <= 1.0, i.e. break-even to losing.
Reconsideration note
The signal is real, so this is not a dead end the way the 11 no-edge archetypes are. A future variant worth ONE more pre-registered test:
- Gold-only, NFP+FOMC-only (drop EURUSD and the XAU/ECB loser — but this must be pre-registered, not fitted), longer hold (capture more of the trend to out-earn the fixed entry cost), and a real consensus surprise feed to gate events properly. The economic question is purely whether a bigger gross capture can out-run the news spread — the directional edge itself is not in doubt. Absent a way to beat the spread, do not deploy.
Charts & evidence
Frequently asked
Is Scheduled-News Momentum profitable in 2026?
In this pre-registered backtest (2018-01 → 2026-06), Scheduled-News Momentum (XAUUSD) returned a profit factor of 1.13 and passed 6/11 validation gates (placebo PASS). Verdict: REJECTED. Every result is published, pass or fail.
Has Scheduled-News Momentum been backtested honestly?
Yes — through The Validation Gauntlet, a pre-registered 11-gate framework (profit factor, deflated Sharpe, a random-permutation placebo, cost-stress and walk-forward) with the specification locked before any out-of-sample metric is computed. It failed and is published anyway.
Methodology: The Validation Gauntlet — pre-registered spec, 11-gate battery, real market data.
Full reproducible report: backtests/news_momentum/REPORT.md in the source repository.
Author: Brent Akamine (Founder, Vinovest). Backtests are not investment advice.