Ethereum seasonality: day, month, session (9 years)
Strategy7 min read

Ethereum seasonality: day, month, session (9 years)

3.7 million M1 candles of Ethereum (2017-2026): which day and month carry a bias, when it moves and what the spread really costs.

Does Ethereum have days, months or hours with a bias you can actually measure? We aggregated 3,667,336 M1 candles of ETHUSD from December 2017 to October 12, 2026 by day of week, calendar month, session and UTC hour, and ran every result through a significance test. Bottom line: 1 of the 18 calendar buckets comes out at p < 0.05, but it does not survive a multiple-comparison correction. A hint, not a rule.

3.7M candles
M1 candles (UTC)
9 years
2017-12 → 2026-10-12
Best day
Sunday
+0.608% · 53.5% win · p=0.020
Best month
April
+18.29% · 66.7% win · p=0.127
Most volatile hour
14:00 UTC
mean range 1.553% · 28.4 $

📊 The data behind this article, as tables and CSV: /stats/ETHUSD publishes Ethereum seasonality, sessions and spread as a downloadable reference, and /data has the OHLCV candles (D1 down to M1) so you can replicate every table. This article is the analysis, with its tests; those pages are the raw numbers.

1. Seasonality by day of the week

Each day closes at 00:00 UTC (UTC calendar day). Note: the Dukascopy CFD does not trade on Saturdays, so the Sunday return also contains Saturday's move. Test: one-sample t-test against zero; bold marks what survives a Bonferroni correction.

📅 Table 1 · Daily return by day of week (2018–2026)n=2,512 days
DaynMean %Median %Std %Win ratet-statp-value
Monday451+0.218%+0.167%4.935%51.2%0.940.349
Tuesday457-0.129%-0.193%4.306%46.4%-0.640.522
Wednesday457+0.394%+0.097%4.814%51.0%1.750.081
Thursday458-0.335%-0.260%5.167%46.1%-1.390.166
Friday345+0.116%+0.119%4.333%51.9%0.500.618
Sunday344+0.608%+0.303%4.829%53.5%2.340.020

Reading: days with p < 0.05:

  • Sunday: +0.608% on average, 53.5% win rate, p=0.020, but it does not clear the Bonferroni threshold for 6 tests (0.0083). Across the two halves of the sample (2018–2022: +1.152%; 2022–2026: +0.257%) the sign holds.

Bar chart: mean return by day of week and by month for Ethereum, 2018-2026


2. Seasonality by month of the year

104 complete months (the current month is left out). Each month's return = last close of the month against the last close of the previous month.

📆 Table 2 · Monthly return by calendar monthn=104 months
MonthnMean %Median %Std %Win ratet-statp-value
January8+12.01%-1.20%35.94%37.5%0.950.376
February9+3.41%+8.23%27.13%66.7%0.380.716
March9-3.44%+9.09%28.95%66.7%-0.360.731
April9+18.29%+7.26%32.22%66.7%1.700.127
May9+8.72%+0.21%28.54%55.6%0.920.386
June9-11.69%-8.62%17.75%22.2%-1.980.084
July9+16.56%+8.27%28.68%66.7%1.730.121
August9+2.52%-7.46%27.62%44.4%0.270.791
September9-5.22%-5.58%10.64%44.4%-1.470.179
October8+6.28%+3.54%18.22%62.5%0.980.362
November8+3.06%-4.62%35.26%50.0%0.250.813
December8-0.14%-3.66%14.82%37.5%-0.030.980

Reading: no month reaches p < 0.05. The best on average is April (+18.29%) and the worst June (-11.69%), but with 9 observations per month a single extreme year moves those averages a lot.

Chart: month-by-month cumulative return of Ethereum, each year and the mean

Each thin line is one year; the red one is the mean. When the thin lines fan out, a month's average says little about next year.


3. Seasonality by trading session (UTC)

Fixed UTC windows, the same across the whole series. Drift = session close against its open; range = high minus low, as % of the open.

🌍 Table 3 · Drift and range by session (UTC)2018–2026 · n=12,944 sessions
SessionnMean drift %Win ratep-valueMean range %
Asia (00–07 UTC)2,588-0.0450%48.8%0.3113.083%
London (07–12 UTC)2,586+0.0170%51.4%0.6542.501%
New York (12–17 UTC)2,593+0.0382%48.4%0.4093.362%
NY late (17–22 UTC)2,591+0.0393%52.6%0.3242.812%
Day end (22–24 UTC)2,586+0.0370%52.2%0.1561.711%
  • New York (12–17 UTC) is where it moves: mean range 3.362%, 2.0× that of Day end (22–24 UTC).
  • No session has a significant drift: it moves, but with no preferred direction.

4-panel chart: drift, range, win rate and hourly volatility for Ethereum


4. Day × session heatmap

📅 Table 4 · Day × session heatmap (mean drift %)6 × 5
DayAsia (00–07)London (07–12)New York (12–17)NY late (17–22)Day end (22–24)
Monday-0.139%+0.032%+0.109%+0.086%+0.135%
Tuesday-0.154%+0.027%-0.000%-0.064%+0.095%
Wednesday+0.122%+0.019%+0.052%+0.134%+0.055%
Thursday-0.130%-0.041%-0.056%-0.046%-0.093%
Friday-0.011%+0.047%+0.095%+0.023%+0.007%
Sunday+0.084%+0.019%+0.026%+0.134%+0.013%
  • Most bullish cell: Monday × Day end (+0.135%, p=0.024). Most bearish: Tuesday × Asia (-0.154%, p=0.135).
  • 1 of 30 cells comes out at p < 0.05; chance alone would give about 1.5. That is what chance produces: do not read the heatmap as a signal map.

Heatmap: mean drift by day of week and session for Ethereum


5. Most volatile hours (UTC)

⏰ Table 5 · The 6 most volatile hours (UTC)2018–2026
UTC hourMean range %Mean range ($)Std %Session
14:001.553%28.41.174NY
16:001.479%24.61.187NY
15:001.449%25.81.108NY
13:001.389%24.31.188NY
00:001.371%22.81.163Asia
12:001.270%21.21.181NY

The busiest hour (14:00 UTC) moves 1.6× more than the quietest (05:00 UTC, 0.966%). Unlike the calendar bias, this is stable year to year: it is the most useful part of this analysis for deciding when to be at the screen or where to place a stop.


6. What it costs to trade: the measured spread

The feed carries real bid and ask, so the spread is measured, not a broker's marketing figure. Median since 2017: 5.40 $. But a spread in $ does not say how heavy it is: what matters is how much of the hour's typical move it eats.

💸 Table 6 · Real cost by hour: median spread ÷ mean hourly range3 cheapest · 3 most expensive
UTC hourMedian spread ($)Mean range ($)Cost
14:005.4028.419.0%
15:005.4025.820.9%
16:005.4024.621.9%
05:005.4015.734.4%
04:005.4016.133.5%
06:005.4016.432.9%

Trading at 14:00 UTC costs 19.0% of the hour's range; at 05:00 UTC, 34.4%. The cross-market comparison is in the real spread by market and hour.


What this data does not tell you

  • Multiple comparisons: this article runs 53 tests (6 days, 12 months, 5 sessions and 30 cells). At a 5% threshold about 3 would come out "significant" by chance. That is why what survives Bonferroni is flagged separately.
  • Few years per month: each month has about 9 observations. One extreme year can create or erase a "bullish month".
  • An average bias is not a strategy: after spread, commission and swap, a drift of hundredths of a percent per session rarely survives. Before trading it, backtest with real costs and walk-forward.
  • This is not a 24/7 exchange price: it is the Dukascopy CFD, which pauses on Saturdays. A study on Binance or Coinbase would see seven days and split the weekend differently.
  • A young series with shifting regimes: crypto went from a retail market to spot ETFs within this sample. What held in 2018 may not hold today.

Methodology

  • Source: Dukascopy ticks aggregated to M1 candles by EV Trading Labs (Ethereum, 2017-12-11 → 2026-10-12).
  • Total: 3,667,336 M1 candles with at least one tick; 2,512 daily and 104 monthly returns.
  • Price: open and close at mid price (bid+ask)/2; high and low on the bid. Where the feed has no ask, bid.
  • Daily return: (C[t] − C[t−1]) / C[t−1] × 100, where C is the close at 00:00 UTC. Days with fewer than 60 candles, or whose last candle is more than 3 h before the cut-off, are dropped.
  • Monthly return: last daily close of the month against the previous month's; the current month is excluded.
  • Sessions: drift = (close − open) / open × 100; range = (high − low) / open × 100; sessions with less than 40% of their minutes are dropped.
  • Test: one-sample t-test against zero, p < 0.05; Bonferroni per block (days, months, sessions, cells). Stability: the same mean computed on each half of the sample.
  • Software: Python, pandas, scipy, matplotlib.

The full seasonality series

The same method applied to 19 markets. The contrast between them is the most useful part: a pattern that shows up in a single asset is more likely to be noise.

Frequently asked questions

What is the best day to trade Ethereum?
In 2018–2026, the day with the best average is Sunday (+0.608%, 53.5% up days, p=0.020). It is significant on its own, but not after correcting for multiple comparisons.
Which month is most bullish for Ethereum?
April has the best average (+18.29%, 66.7% of years up, p=0.127) and June the worst (-11.69%). Neither is significant with 9 years of data per month.
At what time does Ethereum move the most?
At 14:00 UTC: mean range of 1.553% (28.4 $) in that hour, 1.6× the quietest hour (05:00 UTC). By session, New York (12–17 UTC) has the widest range.
What is the real spread of Ethereum?
Median measured on the Dukascopy feed since 2017: 5.40 $. Relative to movement, the cheapest hour is 14:00 UTC (19.0% of the hour's range) and the most expensive 05:00 UTC (34.4%).
Can you trade Ethereum seasonality?
Not as a standalone signal. Calendar biases are small next to spread and commission, and most do not survive a multiple-comparison correction. What is useful and stable is the hourly volatility profile, for choosing when to trade and sizing the stop.
#Ethereum#ETHUSD#cripto#seasonality#estacionalidad#session#UTC#2026

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

Explore products →
Join DiscordChat on WhatsApp