Skip to content
All strategies

Strategies

Spot Gold Asia-Session Drift Persistence: trade XAUUSD.SPOTMETAL from the 18:00 NY session open to the London open in the sign of that same segment's trailing mean return, only when the trailing t-stat clears a threshold; flat across every 17:00 NY financing cut (1H, long-short, 2 signal parameters)

Outcome: Verifying

XauAsiaSessionDriftPersistence

Spot Gold Asia-Session Drift Persistence: trade XAUUSD.SPOTMETAL from the 18:00 NY session open to the London open in the sign of that same segment's trailing mean return, only when the trailing t-stat clears a…

Hypothesis

Single-instrument, single-venue, long-short time-of-day strategy on spot gold (XAUUSD.SPOTMETAL, Dukascopy mid prices, 1-HOUR bars, history from 2003). Mechanism: intraday return periodicity. Heston, Korajczyk and Sadka (2010, Journal of Finance, 'Intraday Patterns in the Cross-section of Stock Returns') show that the return of a given time slot persists across days at daily multiples. In gold this is commonly attributed to Asian physical and retail demand (China, India) buying in the Asia session, while Western……Show moreShow less

Single-instrument, single-venue, long-short time-of-day strategy on spot gold (XAUUSD.SPOTMETAL, Dukascopy mid prices, 1-HOUR bars, history from 2003). Mechanism: intraday return periodicity. Heston, Korajczyk and Sadka (2010, Journal of Finance, 'Intraday Patterns in the Cross-section of Stock Returns') show that the return of a given time slot persists across days at daily multiples. In gold this is commonly attributed to Asian physical and retail demand (China, India) buying in the Asia session, while Western futures, ETF and fixing flows dominate the London and NY hours. The strategy trades ONE segment of every gold trading day, the Asia session from the 18:00 New York session open to the London open (exit_hour_ny, baseline 03:00 NY). It does not assume the drift's sign. Each day it computes the mean and t-statistic of that segment's log return over the last lookback_sessions trading days. If t > t_threshold it goes long for the segment; if t < -t_threshold it goes short; otherwise it stays flat. Because the position is always flat before the 17:00 NY cut, the strategy never pays or receives overnight financing, and it is never held over the weekend or the daily 17:00-18:00 break. Novelty versus the gold ideas already in the pipeline: London opening-range expansion, NY liquidity-sweep/BOS, previous-day-level OCO breakout, PAXG premium reversion, BTC/XAU rotation and IMF-confirmation long-or-cash are all price-level or cross-asset signals. None of them uses a time-of-day return-persistence signal, and none trades the Asia segment. Execution on a session venue: next_open_fill is supported. The entry decision is taken on the close of the last bar of the prior session (the 16:00-17:00 NY bar) and fills at the next bar's open, the 18:00 NY session open, so the position does not exist at the 17:00 financing snapshot. The exit decision is taken on the close of the bar ending at exit_hour_ny and fills at the next bar's open. Day-of-session mapping must use session_date_of / the session helpers, never astimezone().date(). Risk control route (a): notional = 1.0x equity (no leverage), plus a reduce-only intrabar protective stop (_submit_stop_market) at 1.5% from entry, which loses at most 1.5% of equity. Trigger timing is intrabar, matched by the platform's simulated venue; no exchange-hosted order is required. Cost arithmetic: SPOTMETAL round trip is 0.0154% of notional (2 x 0.77 bp half spread, zero commission, no financing because the position is flat at 17:00). In the 2003-2007 1H data already in the catalog, the 18:00-03:00 NY segment averaged +10.8 bp/day (sd 44 bp), against +1.6 bp for 03:00-08:00 and ~0 for 15:00-17:00. Expect a gated capture of about half that across the full 2003-2026 history (~5 bp). That is >3x the 1.54 bp round trip and roughly 2x the ~2.3-3 bp review floor (1.5-2x RT). This is a thin-per-trade, high-count design (~200 trades/yr), not a multi-percent swing. That is acceptable only because the gold venue costs 1/6 of a crypto perp; the same capture on crypto would be fee-dead. The 1H catalog currently holds 2003-05 to 2007-06; the rest of the 2003-2026 history is collected on demand from Dukascopy (backfill in progress), so no data_needs are declared.

Fills the most under-used venue (SPOTMETAL, 0.1% of the corpus) and the under-represented long-short direction (21.8%) with a mechanism no gold run in the pipeline uses (time-of-day persistence). It uses no BTC and no Binance, needs no supplementary feed (L189), and its low venue cost turns a thin, high-count seasonal edge into one that clears the fee floor.

Implementation

Long-short spot gold (XAUUSD.SPOTMETAL, 1H) time-of-day persistence strategy. Every session it trades only the Asia segment, from the 18:00 NY session open to the bar closing at exit_hour_ny (03:00 NY baseline). The side comes from the t-statistic of that segment's log return over the last lookback_sessions completed sessions: long if t > t_threshold, short if t < -t_threshold, otherwise flat. The entry decision is taken on the close of the session's last bar (the bar closing at the session close: 17:00 NY, or the early close). It fills at the next bar's open, the 18:00 session open (next_open_fill). The exit decision is taken on the close of the exit-hour bar and fills at the next open. A reduce-only intrabar STOP_MARKET sits 1.5% from the entry fill. As a backstop, any position still open at or after force_flat_hour_ny or on a session-close bar is closed. The book is therefore flat at every 17:00 NY financing cut, every weekend and every holiday.

Implements the hypothesis directly. Session days come from helpers.sessions.session_date, and the decision bar comes from minutes_to_session_close, so early closes and holidays follow the platform calendar. No wall-clock date mapping is used. NY hours come from zoneinfo America/New_York and are used only to place a bar inside the segment. The segment return is log(close of the exit-hour bar / open of the session's first bar). If the exact exit-hour bar is unquoted, the segment ends at the last close before it.……Show moreShow less

Implements the hypothesis directly. Session days come from helpers.sessions.session_date, and the decision bar comes from minutes_to_session_close, so early closes and holidays follow the platform calendar. No wall-clock date mapping is used. NY hours come from zoneinfo America/New_York and are used only to place a bar inside the segment. The segment return is log(close of the exit-hour bar / open of the session's first bar). If the exact exit-hour bar is unquoted, the segment ends at the last close before it. The t-stat is recomputed once per session from at most 250 stored values, and entries wait until a full lookback window exists. Sizing is equity x notional_fraction (1.0) x leverage (1.0) / price in 0.01 oz. The margin helper may trim this slightly for the spread. Risk route (a): the 1.5% stop on 1.0x notional loses at most about 1.5% of equity, apart from gaps at the Sunday open. The segment-return list is persisted through PERSIST_STATE, and a last-session guard makes replay after a restore idempotent. The parameter names and fixed values follow the optimization_plan exactly. Tunables are t_threshold, exit_hour_ny and lookback_sessions. Fixed are leverage, stop_pct, notional_fraction, force_flat_hour_ny and session_open_hour_ny. No clamps are applied, so no _param_bounds are declared. calculate_signal returns the t-stat on every bar; it changes once per session. Caveat: the 2003-2007 Asia drift partly reflects that era's gold bull market. A trailing-t sign gate should stay mostly long in uptrends, so the long-short claim depends on regime shifts in the segment mean.

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