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

#78 — Spread clock — hour-of-week toll profiles + guard cost-benefit

2026-07-07
Verdict: mixed · 🟡 flat intraday, blackout tolls real, but a live guard would COST not save
Spread is flat 00:00-20:00 UTC and spikes 2-8x at the daily 21:00-23:00 UTC rollover and Sun 21:00-Mon 05:00 UTC weekend open across all 12 pairs; the pre-RCA NEAT book paid an estimated ~26,400p avoidable toll (37% of its entries fired in the 21:00 UTC bucket), but the current live 4-pair sma-stack book's blackout-window trades are actually +34.8p net (n=13) — a blackout guard was rejected for the current live book.

Hypothesis — what it tests

Whether OANDA spread has a predictable hour-of-week pattern, how much that cost the project's historical (pre-RCA) and current live trading books in avoidable execution toll, and whether adding a blackout-hour entry guard would actually save money on the currently live sma-stack book.

Description

A delivered measurement study (no PREREGISTRATION.md, no hypothesis gates — pure arithmetic on hour-of-week spread buckets) computing OANDA M5 bid/ask spread "toll" profiles across 168 hour-of-week buckets for all 12 traded pairs, 2020-11-11 to 2026-05-21 (~412K bars/pair). Finding: intraday spread is essentially flat 00:00-20:00 UTC on weekdays, with two predictable blackout windows — daily 21:00-23:00 UTC rollover (2-5x intraday medians on JPY crosses) and Sun 21:00-Mon 05:00 UTC weekend open (worst bucket on every pair, 5.2-20p medians, 3-8x the uniform toll). Overlaying this clock onto the recorded trades snapshot (docs/data/trades_snapshot_2026-05-31.csv, n=4,932 live trades) found the pre-RCA NEAT book (range_neat/asi_mc_008/wf_pnlmae/pnl_mae_a) paid an estimated ~26,400p of avoidable rollover/weekend-open toll — 37% of all recorded live entries (1,830, of which 1,544 were Sunday 21:00) fired in the 21:00 UTC bucket at ~17.6p estimated spread. A follow-up bottom-line check on whether to add a blackout-hour entry guard to the CURRENTLY LIVE sma-stack books (010/001) found the guard would have been counterproductive: the 4-pair live book's blackout-window trades are actually net +34.8p (n=13, small sample), and its one large historical blackout loss (-132.8p) sat entirely in JPY crosses (GBP_JPY etc.) since dropped from the live roster for unrelated OOS-validation reasons — so the guard solves a problem that no longer exists in the current live pair list. Verdict: guard REJECTED for the current live book; recorded only as a deployment-checklist line (pre-live rollover/Sunday-exposure cost estimation for future books), not a service code change.

Key result

168 hour-of-week buckets x 12 pairs; 121/168 liquid buckets/pair; worst 8h window = Sun 21:00-Mon 05:00 UTC on all 12 pairs; ratio expensive/cheapest 1.38-2.17 (median band); EUR_USD reference toll uniform=1.59p cheapest=1.50p worst=5.2p; CHF_JPY worst=20.0p (uniform 3.30p); saving uniform->cheapest 0.09-0.80p/RT (6-50% of 1.6p ref); pre-RCA NEAT book (range_neat+asi_mc_008+wf_pnlmae+pnl_mae_a) n=3,163 trades, ~26,400p avoidable toll, excess/trade 8.09-8.57p; 37% of all 4,932 live entries (1,830) fired at 21:00 UTC bucket (~17.6p est spread), 1,544 at Sunday 21:00 specifically; total live excess toll across all strategies ~28,800p; current 4-pair sma-stack blackout-window check: n=13 trades, +34.8p net; historical single blackout loss -132.8p entirely in since-dropped JPY crosses; post-RCA books near-optimal (post_shock_retrace 0.16p/trade excess, tr_live 0.05p, sma_momentum 0.22p; paper book total ~176p excess).

Indicators

hour-of-week bucket (dow*24+hour, 168 buckets)bid-ask spread in pips at bar closeliquid-bucket flag (n >= 25% of max bucket count)8h circular window score (mean of bucket medians)

Algorithms

hour-of-week median/p25/p75/n aggregationcircular 8h-window scan for cheapest/most-expensive windowsround-trip toll model (uniform/cheapest/worst liquid-hour spread)cost overlay of historical trade entry-hours onto spread profileblackout-window bottom-line reconciliation on current live roster

Code

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

← #77 CFTC COT positioning-extremes signal#79 Core-pricing arithmetic — re-pricing the gross-positive family at OANDA core tier →
This page is one experiment from the audited record behind the book The Edge That Wasn'tget the book · about the project.