The daily range is mostly built before most day traders sit down. On EUR/USD 47.9% of the average day's range already exists by 08:00 UTC, 80.8% by 14:00, and 99.0% by 21:00 — and across 4,162 trading days, at least one side of the Asian session range is taken out on 99.0% of days. This page measures both, across 22 instruments, from bid-side hourly bars.
Key takeaways
- On EUR/USD, 47.9% of the daily range already exists by 08:00 UTC. By 14:00 it is 80.8% complete and by 21:00 it is 99.0% finished.
- An Asian range that survives the whole day is a 1-in-100 event. On EUR/USD the 00:00-07:00 UTC range is left intact on only 1.0% of days, while both sides break on 37.7%.
- US indices break the Asian range hardest — US100 takes out the Asian high on 82.0% of days — and AUD/JPY least, at 57.6%.
- The daily high and the daily low both land inside the 12:00-16:00 UTC overlap on just 6.2% of EUR/USD days, so the overlap is where the range is fastest, not where the day is decided.
- The raw “which hour prints the high” distribution is a statistical artefact, not a volatility signal. We explain why below instead of publishing the misleading version.
done by 08:00 UTC
Asian range
per FX pair
measured
The daily range clock
Each cell is the percentage of that day's eventual high-to-low range that had already been traded by the end of the UTC hour, averaged across every complete trading day in the sample. Colour is scaled within each row, so you are reading the shape of each instrument's own day.
| Instrument | 00 | 02 | 04 | 06 | 07 | 08 | 10 | 12 | 13 | 14 | 15 | 16 | 18 | 20 | 23 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| EUR/USD | 17% | 27% | 31% | 40% | 48% | 55% | 64% | 74% | 81% | 87% | 91% | 94% | 97% | 99% | 100% |
| GBP/JPY | 22% | 35% | 40% | 48% | 56% | 63% | 72% | 80% | 84% | 89% | 92% | 94% | 97% | 98% | 100% |
| Gold | 17% | 33% | 38% | 46% | 50% | 55% | 61% | 71% | 79% | 86% | 90% | 93% | 97% | 99% | 100% |
| US100 (Nasdaq) | 14% | 23% | 27% | 32% | 36% | 41% | 46% | 52% | 63% | 74% | 81% | 85% | 92% | 98% | 100% |
Two things fall out of this that matter more than any “best hour to trade” claim.
The first is that the day is already half over, range-wise, before London has done much. A trader who waits for the 12:00-16:00 UTC overlap to catch “the real move” arrives, on the average EUR/USD day, with about a quarter of the range left. That is not an argument against trading the overlap — it has the widest hourly ranges and the tightest spreads, both already measured in our hourly volatility study and spread cost study — but the overlap's advantage is speed and cost, not opportunity that did not exist earlier.
The second is how differently the index behaves. US100 has only 36.5% of its range built by 08:00 against EUR/USD's 47.9%, then jumps from 52.5% to 73.9% between 13:00 and 15:00 UTC as the US cash market opens. An index CFD is a nine-to-five instrument wearing a 23-hour costume.
When half the range is done
| Instrument | 50% done by UTC | 80% done by UTC | Asian share of range | Days |
|---|---|---|---|---|
| EUR/USD | 08:00 | 13:00 | 47.9% | 4,162 |
| GBP/USD | 08:00 | 13:00 | 46.9% | 4,162 |
| USD/CAD | 09:00 | 14:00 | 44.0% | 4,162 |
| USD/JPY | 06:00 | 13:00 | 59.4% | 4,162 |
| EUR/JPY | 07:00 | 12:00 | 57.9% | 4,162 |
| GBP/JPY | 07:00 | 12:00 | 55.9% | 4,163 |
| AUD/JPY | 04:00 | 12:00 | 65.2% | 4,163 |
| AUD/USD | 05:00 | 12:00 | 61.6% | 4,163 |
| EUR/GBP | 08:00 | 12:00 | 45.9% | 4,163 |
| EUR/CHF | 08:00 | 13:00 | 50.3% | 4,162 |
| NZD/CHF | 07:00 | 13:00 | 56.2% | 4,163 |
| AUD/CAD | 06:00 | 13:00 | 59.3% | 4,162 |
| CAD/CHF | 09:00 | 14:00 | 43.1% | 4,162 |
| Gold | 08:00 | 13:00 | 50.3% | 4,309 |
| Silver | 08:00 | 13:00 | 52.3% | 3,965 |
| Brent crude | 09:00 | 14:00 | 40.3% | 3,796 |
| US100 (Nasdaq) | 12:00 | 15:00 | 36.5% | 2,576 |
| US30 (Dow) | 12:00 | 15:00 | 36.6% | 2,576 |
| US500 (S&P) | 12:00 | 15:00 | 38.3% | 2,562 |
| GER40 (DAX) | 07:00 | 12:00 | 52.6% | 2,453 |
| BTC/USD | 07:00 | 14:00 | 53.7% | 2,952 |
| ETH/USD | 07:00 | 14:00 | 54.6% | 2,830 |
The JPY and AUD pairs front-load their day — AUD/JPY is half finished by 04:00 UTC and books 65.2% of its range during the Asian session — because their home session is the Asian session. USD/CAD and Brent are the opposite, reaching halfway only at 09:00 and 09:00 UTC and leaning on the North American afternoon.
How often the Asian range gets taken out
Measured on the 00:00-07:00 UTC session, then asking whether the rest of the same day traded outside it.
| Instrument | Asian high broken | Asian low broken | Both broken | Neither broken |
|---|---|---|---|---|
| US100 (Nasdaq) | 82.0% | 73.8% | 56.2% | 0.4% |
| US500 (S&P) | 80.1% | 72.0% | 52.5% | 0.4% |
| US30 (Dow) | 79.6% | 73.4% | 53.6% | 0.5% |
| Brent crude | 74.7% | 74.1% | 49.5% | 0.8% |
| USD/CAD | 74.0% | 72.1% | 46.6% | 0.5% |
| CAD/CHF | 70.9% | 74.7% | 46.2% | 0.6% |
| EUR/GBP | 69.5% | 70.6% | 41.0% | 1.0% |
| EUR/USD | 68.2% | 68.4% | 37.7% | 1.0% |
| GBP/USD | 67.8% | 69.3% | 38.4% | 1.3% |
| GER40 (DAX) | 67.4% | 62.7% | 32.2% | 2.2% |
| Gold | 67.0% | 64.8% | 34.7% | 2.9% |
| EUR/CHF | 66.3% | 69.3% | 37.4% | 1.8% |
| Silver | 65.9% | 65.1% | 34.2% | 3.2% |
| BTC/USD | 63.2% | 61.1% | 28.4% | 4.1% |
| GBP/JPY | 62.5% | 61.9% | 28.4% | 4.0% |
| AUD/CAD | 62.3% | 60.1% | 26.5% | 4.2% |
| NZD/CHF | 62.2% | 63.7% | 28.4% | 2.5% |
| ETH/USD | 62.0% | 59.2% | 25.5% | 4.3% |
| EUR/JPY | 61.0% | 58.9% | 24.1% | 4.2% |
| AUD/USD | 59.5% | 57.3% | 21.7% | 4.9% |
| USD/JPY | 59.2% | 57.0% | 22.6% | 6.4% |
| AUD/JPY | 57.6% | 54.0% | 18.4% | 6.8% |
The last column is the one worth quoting. An Asian range that holds all day is a 1-in-100 event on EUR/USD (1.0%) and roughly a 1-in-250 event on US100 (0.4%). A break of the Asian range is close to guaranteed. What is not remotely guaranteed is that it breaks one way: both sides go on 37.7% of EUR/USD days. For anyone trading an Asian-range breakout, that is the real risk — whipsaw, not the absence of a signal.
Notice too that the “both broken” rate runs inversely to the Asian share of range. AUD/JPY books 65.2% of its range before 08:00 and has both sides broken only 18.4% of the time, because by the time Europe arrives the range is already wide enough to contain the rest of the day.
Why we are not publishing “the daily high forms at 00:00 UTC”
The obvious version of this study — count which hour printed the daily high — produces a table that looks meaningful and is not. On EUR/USD the top hours for the daily high are 00:00 (8.8%), 14:00 (7.9%), 12:00 (6.6%), 15:00 (6.6%), 13:00 (6.4%), and the daily low peaks at 00:00 with 10.6%.
Reading that as “the high usually forms at midnight UTC” would be wrong. For any random walk observed over a fixed window, the time of the maximum is arcsine-distributed — U-shaped, with mass piled at both ends of the window — regardless of when the walk is actually most volatile. The first and last hours of any measurement window are over-represented as a matter of arithmetic. Our day boundary is 00:00 UTC, the same boundary as our own daily bars, so that arithmetic lands on 00:00 and 23:00. Move the boundary to a 17:00 New York close, as many brokers do, and the bumps move with it.
What survives the artefact is the middle of the distribution, where the overlap hours 12:00-15:00 each carry 6.4-7.9% against a flat-line expectation of 4.2% — real, but a far smaller effect than the boundary bumps make it look. The two tables above are boundary-independent, which is why they are the ones we publish.
The one place the raw distribution is genuinely informative is instruments with a hard session. AAPL, TSLA and NVDA print both daily extremes inside 13:00-20:00 UTC on 100% of days, clustering at 13:00 — the cash open — on 24-28% of days. That is a real open-driven effect rather than an artefact, because there the window boundary and the session boundary coincide.
Methodology
- Source: Dukascopy bid OHLC hourly bars, as held in the FxBacktest archive and replayed by the simulator.
- Window: full available H1 history per instrument. EUR/USD 2010-07-15 to 2026-07-28 (4,162 usable days); gold from 2009-11-12 (4,309 days); US indices from 2013-05-22 (2,576 days); BTC/USD from 2017-05-23 (2,952 days).
- Day definition: UTC calendar day, the same boundary as our daily bars. A 17:00 New York boundary changes the extreme-hour counts (see the arcsine note above) though it barely moves the range-completion curve.
- Range completion: computed per day as (running high − running low) ÷ (final daily range) at the end of each hour, then averaged across days — not computed on averaged ranges, which would flatter the early hours.
- Exclusions: any bar where high equals low (no ticks arrived, so the print is stale), and all Saturday and Sunday bars except for BTC/USD and ETH/USD, which genuinely trade through the weekend.
- Complete days only: a day is used when it carries at least 80% of that instrument's median quoted hours, so holidays and early closes cannot fake an extreme hour. This is why the index samples are much smaller than the FX ones — index CFDs have far more short sessions.
- Caveat: bid range only, spread excluded. See the spread cost study for what a round turn actually costs in each hour.
- Note on ADR: the average daily ranges implied here are H1-derived under the complete-day filter and differ slightly from the D1-derived figures on our average daily range study (EUR/USD 89.8 vs 90.7 pips). Neither is wrong — they are different filters, and the ADR page is the one to cite for ADR.
What to do with this
If you trade an Asian-range breakout, size for the whipsaw rather than the no-trade. The range holds all day 1.0% of the time on EUR/USD, and both sides break 37.7% of the time. Your losing scenario is being stopped on the first break and watching the other side run, not sitting on your hands.
Stop treating “the range is done” as a feeling. By 17:00 UTC EUR/USD has completed 93.5% of its range on average, so a breakout entry at 19:00 UTC is a bet on the last 3%. And match the instrument to the hours you actually have: if you can only trade 05:00-09:00 UTC, AUD/JPY and AUD/USD deliver most of their day in that window while US100 delivers under 40.7%.
Every hour and instrument above is loadable in the simulator, so you can test the session you trade rather than assuming one backtest carries across the day — see where to place a stop loss and backtesting across market conditions.
Cite or republish this data
This research is free to quote, screenshot, or republish — in an article, a video, a newsletter, or a course — as long as you credit FxBacktest with a link back to this page. Copy the attribution below.
Frequently asked
What time does the daily range usually finish?
On EUR/USD, 99.0% of the average daily range exists by 21:00 UTC and 93.5% by 17:00 UTC, measured over 4,162 trading days. US indices finish later, reaching 97.9% only by 21:00 UTC.
Is the Asian session range usually broken?
Yes, and close to always. At least one side of the 00:00-07:00 UTC range is taken out on 99.0% of EUR/USD days. Both sides are taken out on 37.7% of days, so a break happening is nearly certain while its direction is not.
Which hour does the daily high form in?
No hour dominates: on EUR/USD the most common hour holds 8.8% of days against a flat-line 4.2%, and the shape of that distribution is driven mostly by the arcsine law of random walks plus wherever the day boundary sits. The useful question is how much range is left at a given hour, which the range clock on this page answers.
Does the London/New York overlap set the day's high and low?
Rarely both. On EUR/USD the daily high and daily low both fall inside 12:00-16:00 UTC on only 6.2% of days. The overlap has the widest hourly ranges, but the day's extremes are usually spread much wider than it.
Which instruments break their Asian range most often?
US indices. US100 takes out the Asian session high on 82.0% of days and the low on 73.8%. AUD/JPY is least likely at 57.6% and 54.0%, because it has already built 65.2% of its daily range during the Asian session itself.