XAUUSD seasonality: day, month, session (23 years)
Strategy11 min read

XAUUSD seasonality: day, month, session (23 years)

7.8 million M1 candles of XAUUSD (2003-2026): which day gold rises, which month is bullish and which session drifts up, with significance tests.

Does gold have good days, good months and good hours? To answer with data instead of opinion, we downloaded 23 years of M1 tick data on XAUUSD (7,885,431 candles between May 2003 and July 2026) and aggregated it by day of week, calendar month and trading session. Spoiler: there are patterns, but most are weak — only two days and two months pass the 5% statistical significance test.

The dataset

7.8M candles
M1 bars (UTC)
23.2 years
2003-05-05 → 2026-07-28
Best day
Friday
+0.104% mean · 56.8% win · p=0.002 ⭐
Best month
January
+3.44% mean · 65.2% win · p=0.005 ⭐
Best session
Asian 00–07
+0.029% drift · 53.5% win · p<0.001 ⭐
---

1. Seasonality by day of the week

For each trading day Monday through Friday, we calculated the close-to-close return in % and aggregated over the 6,041 days in the dataset. The statistical test is a one-sample t-test against zero (H0: the day's mean return is 0). ⭐ marks days with p < 0.05.

📅 Table 1 · Daily return by day of the week (2003–2026)n=6,041 trading days
Day n Mean % Median % Std % Win rate t-stat p-value 95% CI
Monday1,212-0.0153%+0.0243%1.0280%51.6%-0.520.605-0.073 / +0.043
Tuesday1,213+0.0192%+0.0559%1.1101%52.8%0.600.547-0.043 / +0.082
Wednesday1,211+0.0562%+0.0715%1.0893%54.6%1.800.073-0.005 / +0.118
Thursday1,212+0.0211%+0.0132%1.1170%50.4%0.660.510-0.042 / +0.084
Friday1,192+0.1041%+0.1243%1.1516%56.8%3.120.002 ⭐+0.039 / +0.170

Reading: only Friday shows a statistically significant bullish bias. Wednesday is borderline (p=0.073); the rest is statistical noise. There is no "Monday effect" in gold like the one documented in equities — gold opens the week flat.

Bar chart: average return by day of the week and by month for XAUUSD, 2003-2026

Does the pattern change before and after 2020?

📅 Table 1b · Sub-period: pre-2020 vs 2020+ (mean drift %)Arbitrary 2020 split to detect regime change
Day Pre-2020 (n=4,335) 2020+ (n=1,705)
Monday-0.0412%+0.0504%
Tuesday+0.0009%+0.0657%
Wednesday+0.0531%+0.0641%
Thursday+0.0075%+0.0558%
Friday+0.1269%+0.0455%

Friday stays bullish in both periods but weakens notably in 2020+. Most striking: Monday flips from negative to positive, suggesting the post-COVID era has homogenised behaviour across days. The "Friday effect" is still there, but it's no longer the only bullish day.

---

2. Seasonality by month

279 months of data (2003 → 2026). Same methodology: t-test vs zero, ⭐ = p < 0.05.

📆 Table 2 · Average monthly return by calendar monthn=279 months · 2003-2026
Month n Mean % Median % Std % Win rate t-stat p-value
January23+3.4403%+3.2703%5.2866%65.2%3.120.005 ⭐
February23+1.2888%+1.7085%4.6040%56.5%1.340.193
March23+0.3543%-0.4403%4.8295%43.5%0.350.728
April23+1.1160%+0.9143%4.9706%60.9%1.080.293
May23-0.2644%-1.0320%4.0526%41.7%-0.310.757
June24-0.9246%-1.6196%5.1370%37.5%-0.880.387
July24+1.2528%+1.7568%3.9695%62.5%1.550.136
August23+1.9529%+1.4053%4.4952%65.2%2.080.049 ⭐
September23+0.4246%-0.8219%5.7853%47.8%0.350.728
October23+0.8302%+1.5391%4.8853%56.5%0.810.424
November23+1.3752%+0.4980%5.7353%56.5%1.150.263
December23+1.0738%+2.2946%4.4768%60.9%1.150.262

Reading: January and August are the only months with statistical significance. January carries the post-Christmas re-leveraging + Chinese New Year effect. August is more surprising — it coincides with the "summer correction" that is bearish in equities, but historically positive in gold. The chart below shows the cumulative path through the year:

Chart: cumulative path of average XAUUSD return through the year, 2003-2026

Each blue line is an individual year (2003-2026). The red line is the average. The dispersion is brutal: there are years where gold drops 25% from January to December, and years where it rises 50%. Seasonality exists, but it's buried under macro-cycle noise.

---

3. Seasonality by trading session (UTC)

The four canonical gold sessions plus the Friday close:

🌍 Table 3 · Drift, range and gap by trading session (UTC)n=30,308 session-observations
Session n Mean drift % Win rate p-value Mean range % |Gap| %
Asian (00–07 UTC)6,017+0.0288%53.5%<0.001 ⭐0.6391%0.0167%
London (07–12 UTC)6,018-0.0085%49.6%0.1480.6523%0.3025%
NY (12–17 UTC)6,018+0.0088%51.6%0.3641.0787%0.4384%
NY late (17–22 UTC)6,251-0.0027%48.6%0.5970.5487%0.6793%
Weekend gap (22–24 UTC)6,004+0.0337%59.2%<0.001 ⭐0.2973%0.6363%

Surprising findings:

  • Asian (Tokyo+Sydney) is bullish: +0.029% mean drift, p<0.001. Counter to the intuition that gold "moves" in London/NY, the data says gold rises while Asia is operating. Practical reading: European traders sleep while gold works.
  • London opens red: -0.009% drift (not significant). Gold tends to correct while London is at its peak — probably because European algos take profit on the Asian leg.
  • NY is pure volatility, no direction: 1.08% mean range (double Asian or London), but zero drift. The session where gold moves the most, but no directional bias.
  • Weekend gap is bullish: the Friday NY close (22-24 UTC) shows +0.034% with 59.2% win rate. Gold closes the week with positive momentum.

4-panel chart: drift, range, gap and hourly volatility profile by trading session

---

4. Heatmap: day × session

Crossing the two previous analyses, we can see which day×session cell has the best historical drift:

📅 Table 4 · Day × session heatmap (mean drift %)Mon-Fri × 4 sessions (excluding weekend gap)
Day Asian (00–07) London (07–12) NY (12–17) NY late (17–22)
Monday+0.011%-0.020%+0.004%-0.034%
Tuesday+0.027%-0.001%-0.007%-0.022%
Wednesday+0.043%-0.016%+0.015%+0.000%
Thursday+0.028%-0.004%-0.011%-0.002%
Friday+0.036%-0.003%+0.043%+0.044%

The two winning cells:

  • 🥇 Wednesday × Asian: +0.043% drift. Gold rises while Asia operates on Wednesdays.
  • 🥇 Friday × NY late: +0.044% drift. The weekly close has positive momentum.

Friday is the only day with all its cells in positive or neutral territory. If you had to bet on a single calendar day, it would be Friday.

Visual heatmap: average drift by day of week × trading session

---

5. Hourly volatility profile (UTC)

If your goal isn't predicting direction but avoiding noise, this profile is for you. We computed the mean range (% from open to high/low) per UTC hour, Monday to Friday:

⏰ Table 5 · Top 8 most volatile hours (UTC, Mon-Fri)23 years of M1 bars
Hour UTC Mean range % Std % Drift % Session
13:000.5288%0.3249+0.0012%NY open
14:000.5213%0.3183-0.0027%London/NY
15:000.4586%0.3178-0.0087%London/NY
12:000.4540%0.3092+0.0066%Pre-NY
16:000.3780%0.2765+0.0107%NY mid
17:000.3417%0.2547+0.0045%NY late
07:000.3122%0.2057-0.0003%London open
08:000.3093%0.1985-0.0030%London

12:00–15:00 UTC is the hot zone for gold: mean range 0.45-0.53%, more than double the Asian hours. It's the London/NY overlap, where two liquidity pools converge. For scalpers it's the literal golden window. For position traders, it's where stops get filled by wicks.

---

6. Three practical setups that emerge from the data

These aren't trading systems. They're time and calendar filters you can add to your strategy to improve edge without touching entry logic:

Setup 1 · Long bias on Friday morning (Asian) and NY close

  • When: Friday 00-07 UTC (Asian) and Friday 13-22 UTC (NY + NY late).
  • Why: Friday is the only significant day, with positive drift in Asian, NY and NY late. Avoid the 07-12 UTC Friday window (London).
  • Additional filter: combined with the January effect, the last Friday of January has historical cumulative drift of +5-7% from month start.

Setup 2 · Short bias on Monday London and NY late

  • When: Monday 07-12 UTC (London) and Monday 17-22 UTC (NY late).
  • Why: both cells are the most negative of the heatmap (-0.020% and -0.034%). Gold tends to correct after the weekend.
  • Careful: this setup only makes sense if you have a short-term macro thesis. Without a catalyst, it's noise.

Setup 3 · Avoid 07-12 UTC on every day

  • When: Monday to Friday, 07-12 UTC (London pre-overlap session).
  • Why: 4 of 5 days show negative drift in that window. It's gold's most "trap"-laden session.
  • Application: if your EA opens positions in the European morning, it's likely entering in the worst window. Moving the trading hours to 13-17 UTC (NY overlap) reduces statistical drawdown.

For manual traders on funding, these filters are free: you adjust operating hours and calendar without touching the setup. For algorithmic traders, they're additional backtest variables that probably weren't optimised.

---

What this data does NOT tell you

An honest analysis must include its own caveats:

  • Dataset survivorship: 23 years include the 2020-2024 rally (gold 1,500 → 2,700 USD) which inflates every positive return. Excluding that period, patterns would be weaker.
  • Regime change: gold shifted from monetary commodity to hedge asset post-2018. Pre-2018 patterns may not be extrapolable.
  • n=23 months per bucket: the 95% confidence interval in months is ±5% in some cases. Significance doesn't imply practical magnitude.
  • Significant ≠ tradeable: +0.10% daily drift in gold doesn't come close to compensating a 5% drawdown. These numbers are useful as filters, not as systems.
  • DST ignored: sessions are fixed UTC buckets. London opens at 07:00 UTC in summer and 08:00 in winter. The error is ~1 hour, acceptable for long-term analysis.
  • Transaction costs not included: spread + commission + slippage on gold is 0.05-0.15% per trade. Enough to eat the Asian drift.
---

Methodology

  • Source: M1 tick data (Dukascopy / HistData) for XAUUSD between May 2003 and July 2026.
  • Total: 7,885,431 M1 UTC candles, aggregated into 6,041 trading days and 279 months.
  • Daily return: (close_22UTC[t] - close_22UTC[t-1]) / close_22UTC[t-1] × 100.
  • Monthly return: (close_lastDay - close_lastDayPrevMonth) / close_lastDayPrevMonth × 100.
  • Session drift: (close_last_bar - open_first_bar) / open × 100.
  • Session range: (max(high) - min(low)) / open × 100.
  • Statistical test: one-sample t-test against zero (H0: mean = 0). ⭐ = p < 0.05.
  • Sub-period: arbitrary 2020 split (pre-COVID vs post-COVID / Ukraine war / rate cycle).
  • Software: Python 3.14, pandas 3.x, pyarrow, scipy, matplotlib. Reproducible scripts.

If you want to replicate this analysis with your own data, the scripts are in ~/Documents/Obsidian/OC/research/seasonality/ and the raw dataset in ~/evtl-stats/data/xauusd/m1/.

Before trading XAUUSD live, master the asset by hand: read how to trade XAUUSD (gold) by hours and risk management on gold for prop firms. And for volatility-adjusted lot sizes, use the position size calculator.

The full seasonality series

This study is part of a series applying the same methodology to six assets. The contrast between them is the most useful part: the index "Monday rally" does not exist in gold or the FX majors.

Frequently asked questions

What's the best day of the week to trade gold (XAUUSD)?
Across 23 years of M1 data (2003-2026), Friday is the only day with a statistically significant bullish bias: mean return +0.104%, win rate 56.8%, p-value 0.002. Wednesday is borderline (p=0.073). Monday, Tuesday and Thursday are statistical noise. Friday shows positive drift across all its sessions (Asian, NY and NY late), making it the most coherent operating window for XAUUSD.
Which calendar month is historically most bullish for gold?
January is the most bullish month: mean return +3.44%, win rate 65.2% (15 of 23 years closed positive), p-value 0.005. August follows (+1.95%, p=0.049). The worst month is June (-0.92%, win 37.5%), consistent with the 'sell in May and go away' adage applied to gold. February, July, November and December also show positive biases but not significant at 5%.
Which trading session is best for trading XAUUSD?
The Asian session (00-07 UTC) shows significant positive drift: +0.029%, p<0.001. It's counter-intuitive — intuition says gold moves in London and NY — but the data shows gold rises while Asia operates. The NY session (12-17 UTC) has the largest mean range (1.08% vs 0.55-0.65% for the rest), but no clear direction — it's the scalper's window. The London session (07-12 UTC) has slightly negative drift and is gold's most 'trap'-laden window.
Is gold seasonality reliable as a trading strategy?
Not as a standalone system. Drifts are small (0.03-0.10% daily, 1-3% monthly) and gold spreads (5-30 pips depending on broker) can eat the edge. What does work: using seasonality as a filter. For example, opening longs on Friday morning (Asian) instead of on a random day statistically improves outcomes. Combined with momentum, volatility or news filters, seasonality adds value with no extra risk.
How many years of data do you need for seasonality analysis to be reliable?
For daily returns you need at least 15-20 years (~4,000-5,000 observations) for a 0.05% daily bias to be statistically significant at 5%. For monthly returns, 20-25 years (n≈250) is the minimum. With less data, the patterns you see may be noise. Our analysis uses 23 years of XAUUSD, which is the lower bound of acceptable for monthly seasonality.
Has gold's seasonal pattern changed after COVID?
Yes, partially. The 'Friday effect' weakens in 2020+ (from +0.127% to +0.046%) and Monday flips from negative to positive. The likely reason: gold has become more of a macro hedge asset than a monetary commodity, reducing purely technical calendar effects. The Asian session stays bullish in both periods, suggesting it's a more structural pattern. For 2026, we recommend using pre-2020 data with a smaller weight and giving more importance to the 2020+ split.
#XAUUSD#oro#gold#seasonality#estacionalidad#day of week#session#UTC#2026#análisis cuantitativo

Manage your risk with precision. Automated portfolios and tools for MT5.

Explore products →
Join DiscordChat on WhatsApp