Home · Guides · XAU/USD session analysis: Asia, London and New York hours with 1-minute data
GUIDE · XAU/USD · SESSIONS · UTC · CATALOG VERIFIED 2026-10-08
XAU/USD session analysis: Asia, London and New York hours with 1-minute data
To compare XAU/USD across the Asia, London and New York sessions you need intraday bars on one clock. AI Options Data Store sells XAU/USD spot 1-minute OHLC from 15 Mar 2009 to 2 Oct 2026 as Parquet with UTC timestamps, so each session can be cut by its local hours with tz_convert, which also takes care of daylight-saving shifts.
Get the XAU/USD packXAU/USD historical dataBacktest guide Free sample (no email)
Download the sample → check the columns
Dates on this page are read from the live file catalog, not typed by hand. Full matrix: /coverage.
Session windows used in this guide (local time)
| Session | Local hours | Approx. UTC (winter / summer) |
|---|---|---|
| Asia | 09:00–15:00 Tokyo | 00:00–06:00 (Tokyo has no DST) |
| London | 08:00–16:30 London | 08:00–16:30 / 07:00–15:30 |
| New York | 08:00–17:00 New York | 13:00–22:00 / 12:00–21:00 |
Tag every minute with its session
Define sessions in local time and convert, rather than hard-coding UTC hours: the London and New York windows move by an hour twice a year, and on different dates.
import pandas as pd
df = pd.read_parquet('XAUUSD_SPOT_1min_2025-01-01_2025-12-31.parquet').set_index('datetime')
def in_session(idx, tz, start, end):
t = idx.tz_convert(tz)
m = t.hour * 60 + t.minute
return (m >= start) & (m < end) # minutes after local midnight
df['asia'] = in_session(df.index, 'Asia/Tokyo', 9 * 60, 15 * 60)
df['london'] = in_session(df.index, 'Europe/London', 8 * 60, 16 * 60 + 30)
df['ny'] = in_session(df.index, 'America/New_York', 8 * 60, 17 * 60)
Range per session, per day
All three windows fall inside one UTC date, so grouping by UTC date gives one row per day with the high-low range of each session. The London and New York overlap is counted in both.
out = {}
for s in ['asia', 'london', 'ny']:
x = df[df[s]]
g = x.groupby(x.index.date)
out[s] = g['high'].max() - g['low'].min()
ranges = pd.DataFrame(out) # USD per ounce, one row per UTC date
print(ranges.describe())
print(ranges.groupby(pd.to_datetime(ranges.index).dayofweek).median())
Things to watch
Prices are bid-side quotes; ranges are unaffected, but entries at the ask need a spread assumption.
Minutes without a quote are absent, not filled, and the market is shut from Friday evening to Sunday evening UTC. Holiday sessions can be short, so filter days with too few minutes before comparing.
Session hours are conventions, not rules; change the windows to match your own definition.
Exactly which fields are in the files
XAU/USD 1-minute files
| Column | Type | Meaning |
|---|---|---|
| datetime | timestamp (UTC) | Minute start, timezone-aware UTC |
| open / high / low / close | float | Bid-side XAU/USD quote OHLC, US dollars per troy ounce |
Not included: ask-side prices, futures, options, implied volatility or Greeks. 1-minute bars, not tick data.
Format: Parquet (XAUUSD_SPOT_1min_….parquet), UTC. Try the code on the free September 2026 sample first.
FAQ
What data do I need for XAU/USD session analysis?
Intraday bars with reliable timestamps. AI Options Data Store sells XAU/USD 1-minute OHLC in UTC from 15 Mar 2009 to 2 Oct 2026 as Parquet.
What are the London and New York session hours in UTC?
With the windows used here, London is 08:00–16:30 UTC in winter and 07:00–15:30 UTC in summer; New York is 13:00–22:00 UTC in winter and 12:00–21:00 UTC in summer. Converting from local time handles the switch.
Are the timestamps affected by daylight saving?
No. The files are in UTC, normalised across daylight-saving changes; convert to local time in pandas when you need session hours.
Can I do this in Excel?
Convert a year to CSV with df.to_csv(), but a full year of 1-minute rows is easier to handle in pandas or DuckDB.
Is there a free sample to test the code?
Yes. September 2026 at 1-minute, same columns as the pack, no email needed.
Get the data
Free sample · Schema · Ask the AI for your data
Get the XAU/USD packXAU/USD historical dataBacktest guide Free sample
Related guides
- XAU/USD 1-minute (M1) data: files, columns and how to get CSV
- Backtest an XAU/USD intraday strategy in Python with 1-minute data
- XAU/USD timeframes: resample 1-minute (M1) data to M5, H1, H4 and daily
- Bitcoin 1-minute historical data: what is in the files and how to load them
- Crypto funding rate history and 1-minute perpetual futures data
- Backtest crypto perpetual futures in Python, with funding included
- Ethereum 1-minute historical data: ETH perpetual futures, funding and files
- XAU/USD historical data
- All Crypto & XAU/USD packs
- Datasets index
XAU/USD is the international spot rate in US dollars per troy ounce, not an MCX contract.