Skip to content
All strategies

Strategies

Spot Gold Overnight-to-New-York Session Momentum Carry-Over: trade XAUUSD.SPOTMETAL in the direction of a >=0.5-sigma Asia+London (18:00->08:00 NY) move from the 08:00 NY open to the 16:00 NY open, flat before the 17:00 financing cut (1-HOUR, long+short, one trade per session at most, no overnight financing)

Outcome: Verifying

XauOvernightToNySessionMomentum

Spot Gold Overnight-to-New-York Session Momentum Carry-Over: trade XAUUSD.SPOTMETAL in the direction of a >=0.5-sigma Asia+London (18:00->08:00 NY) move from the 08:00 NY open to the 16:00 NY open, flat before the…

Hypothesis

Original Research Lead hypothesis. It is intraday session momentum on spot gold, a venue with 17 of 4,874 experiments (0.3%). Literature anchor: Gao, Han, Li and Zhou (JFE 2018, 'Market intraday momentum') and Baltussen, Da, Lammers and Martens (JFE 2021, 'Hedging demand and market intraday momentum'). They find that the return accumulated earlier in a trading day predicts the return of the later part of the same day across equity, bond and commodity futures. They attribute it to late-informed and hedging flows……Show moreShow less

Original Research Lead hypothesis. It is intraday session momentum on spot gold, a venue with 17 of 4,874 experiments (0.3%). Literature anchor: Gao, Han, Li and Zhou (JFE 2018, 'Market intraday momentum') and Baltussen, Da, Lammers and Martens (JFE 2021, 'Hedging demand and market intraday momentum'). They find that the return accumulated earlier in a trading day predicts the return of the later part of the same day across equity, bond and commodity futures. They attribute it to late-informed and hedging flows that trade in the direction of the day's move, plus gradual information incorporation. In gold the overnight leg is a distinct market: Asian physical and Shanghai-session buying, then London OTC price discovery. The New York session (COMEX, ETF creations and redemptions, macro desks) is where Western flow arrives and extends that move. Rule: at the close of the 1-hour bar ending 08:00 New York, compute the overnight log return R_on from the session open (first bar opening 18:00 NY) to 08:00 NY. Scale it by the standard deviation of the previous N sessions' overnight returns, z = R_on / sd_N. If z >= k, go long; if z <= -k, go short. The fill is at the next bar's open (08:00 NY; session venue next_open_fill, supported). Exit at the open of the bar starting 16:00 NY (decided at the 15:00-16:00 bar close), so the position never crosses the 17:00 NY financing cut and pays no overnight financing. On early-close sessions, exit at the open of the session's last bar (session_calendar helpers). Weekend and holiday gaps are never held. Pre-study on local 1-hour data, US session (08:00->16:00 NY) mean conditional on the overnight z: spot XAUUSD 2003-2008 (1,258 sessions; local spot-gold history currently ends 2008-03, and the Dukascopy backfill to 2026 is collected on demand): z>0.5 +19.1 bp (n=472), z<-0.5 -5.0 bp (n=304), unconditional correlation 0.08. Binance XAUUSDT perp 2025-12 to 2026-10 (310 sessions): z>0.5 +8.5 bp (n=74), z<-0.5 -28.4 bp (n=64), correlation 0.20. Bybit XAUUSDT perp 2026-03 to 2026-10 (224 sessions): z>0.5 +12.5 bp, z<-0.5 -12.8 bp, correlation 0.09. Both arms, separately, had the predicted sign in all three samples, and the short arm was weakest in the 2003-08 bull market (L230: the short arm is pre-registered separately; the developer must tag each trade's side so the analyst can report the arms separately). Fee arithmetic: the expected gross capture is about 10-15 bp per trade against a SPOTMETAL round trip of about 1.5 bp spread and zero financing, so net is about 8-12 bp, above the analyst's 0.05% SPOTMETAL floor. This same mechanism died on crypto (BTC Asia-session carry-over: fee_edge at 0.11% average; ETH COIN-M US-session carry-over: fee_edge) because 0.06-0.10% round trips ate it. Gold's 1.5 bp cost is the reason to test it here, not a cosmetic venue swap. Incremental-signal check (L217): the backtest must also report the unconditional 'always long the US session' arm on the same days (2003-08 about +10 bp, 2025-26 about -6 bp). The claim is that conditioning on the overnight sign adds expectancy over that baseline. Risk control route (b): signal and time exit with capped sizing, at a fixed 1.5x notional. Gold daily std is about 1%, so the position contributes about 25% annualized vol, under the profile's 120% cap. A fixed intrabar protective stop at 1.5% adverse from entry (platform-matched stop, supported) caps a trade at about 2.25% of equity, gaps excepted. The stop is risk control, not a signal.

Under-represented venue (SPOTMETAL 0.3%), long+short (24% of corpus), short-horizon intraday (about 10%), and a mechanism (session-conditional intraday momentum) that has never been tested on a near-zero-cost market. The prior crypto attempts died on fees, not on sign. Pre-registered rate: z>=0.5 fires on about 55-60% of sessions, so about 140 trades per year and about 3,000 over 2003-2026 once backfilled, all on distinct dates (one trade per session, unlike basket counts, L238). One parameter set, one instrument. Event-driven-with-clock-exit design (L224).

Implementation

Spot gold (XAUUSD.SPOTMETAL, 1-HOUR) intraday session momentum. At the close of the bar ending 08:00 NY, the overnight log return from the 18:00 NY session open is z-scored by the sample sd of the previous 20 sessions' overnight returns. z >= 0.5 goes long and z <= -0.5 goes short, at most one entry per session. The entry fills at the next bar's open (08:00, session-venue next_open_fill). The exit is decided at the close of the bar ending 16:00 NY and fills at the 16:00 open. On early-close sessions the exit is decided one bar before the close and fills at the open of the session's last bar, so the position never crosses the 17:00 financing cut, a weekend or a holiday. A reduce-only intrabar STOP_MARKET 1.5% from the entry fill is risk control only. Notional is 1.5x equity, capped at 0.95 x config.leverage (2.0).

Implements the Gao-Han-Li-Zhou / Baltussen et al. intraday momentum rule on a near-zero-cost market, exactly as specified. The parameter names match the optimization plan. The fixed parameters (stop_pct 0.015, leverage_mult 1.5, session_open_hour_ny 18, max_entries_per_session 1) keep their values; the tunable ones are z_entry, entry_hour_ny, exit_hour_ny and lookback_sessions. Nothing is clamped, so no _param_bounds. Session mapping uses helpers.sessions.session_date and minutes_to_session_close, never a……Show moreShow less

Implements the Gao-Han-Li-Zhou / Baltussen et al. intraday momentum rule on a near-zero-cost market, exactly as specified. The parameter names match the optimization plan. The fixed parameters (stop_pct 0.015, leverage_mult 1.5, session_open_hour_ny 18, max_entries_per_session 1) keep their values; the tunable ones are z_entry, entry_hour_ny, exit_hour_ny and lookback_sessions. Nothing is clamped, so no _param_bounds. Session mapping uses helpers.sessions.session_date and minutes_to_session_close, never a hard-coded close. config.leverage is 2.0 so a 1.5x position fits the initial-margin check; sizing reads self.config.leverage. Risk profile: about 1.5 x 1% x sqrt(365) = ~29% position vol, well under 120%. The 1.5% stop caps a trade at ~2.25% of equity, gaps excepted; the worst-trade limit is 15%. Arms (L230): each trade's side is in the positions report (entry BUY = long arm, SELL = short arm). Incremental-signal check (L217): the strategy also records, on the same sessions, the unconditional always-long US-session shadow arm and both conditional arms in entry_diag (baseline_long_*, long_arm_*, short_arm_*, sums of entry-close to exit-close log returns in hundredths of a bp, as long returns), so the analyst can compare conditional against unconditional expectancy. The signal returned every bar is the running overnight z (continuous); entry is thresholded only on the entry-hour bar. If the entry-hour bar is unquoted, that session is skipped.

Backtest and paper results are hypothetical. Trading involves risk of loss.