Month-of-Year Seasonality in Trading EURUSD

Jan 18, 2026

eurusd-daily-average-returns-across-20-years

What Happens When You Do the Analysis Correctly

Keywords: month of year seasonality, seasonality in trading, calendar effects trading, trading seasonality analysis, statistical power trading

Reading time: ~7–9 minutes

The Myth of Month-of-Year Effects

Month-of-Year (MOY) seasonality is one of the most persistent ideas in trading folklore.
Claims like “January is bullish” or “September is weak” are repeated so often that they are rarely questioned.

But repetition is not evidence.

This article documents a complete, statistically disciplined Month-of-Year analysis — and reaches a result that surprises many traders:

After proper testing, no calendar month shows a statistically significant return edge.

This is not a negative outcome.
It is a correct outcome.

Stage 1: Data Preparation and Calendar Alignment

The analysis begins with strict data hygiene:

  • Daily returns, not prices

  • Alignment by calendar month

  • Pooling the same month across all years

  • Treating each year as an independent observation

  • No smoothing, no pre-filtering

At this stage, the objective is simple:

Ensure January is always January.

No assumptions are made about profitability.

eurusd-raw-prices-vs-returns
eurusd-raw-prices-vs-returns
eurusd-raw-prices-vs-returns

Stage 2: Descriptive Aggregation by Month

For each calendar month, we compute:

  • Average return

  • Standard deviation

  • Win rate

  • Number of years observed

This step is intentionally descriptive.
It answers:

What does the raw data appear to show?

eurusd-average-monthly-returns-boxplot

Average montly returns boxplot shows that some months may look better or worse than others. This is exactly where most analyses stop — and exactly where mistakes begin.

Stage 3: Statistical Significance Testing

To test whether apparent patterns are real, each month’s average return is evaluated against the null hypothesis:

H₀: Average monthly return = 0

We compute:

t-statistics - a measure of how significant a result is, calculated by comparing the size of an observed effect to the amount of "noise" or random variation in the data.

p-value - is the probability that the results you observed occurred purely by random chance, assuming there is no real effect or difference.

A practical interpretation:

  • |t| < 1.5 → noise

  • 1.5 ≤ |t| < 2 → weak / unstable

  • |t| ≥ 2 → statistically meaningful

  • |p-value| < 0.05 the result is likely "real" and not just a fluke. Researchers often call this "statistically significant."

  • |p-value| > 0.05 the result could easily be a coincidence or "noise," meaning there is no strong evidence of a real effect.

eurusd-t-stat-by-months-barchart

t-Stat by months barchart shows that there is no month crosses the ±2 threshold. This means: There is no statistically detectable Month-of-Year return edge.

Stage 4: Statistical Power: Why “No Signal” Often Means “Not Enough Evidence”

A failed significance test does not always mean no edge.
It often means low statistical power.

Statistical power depends on:

  1. Effect size

  2. Volatility

  3. Sample size (years)

  4. Significance threshold

In financial markets, effects are small — power matters more than intuition.

eurusd-sample-size-vs-t-stat

Key insight:

  • Most months have adequate sample size

  • Yet |t| remains low

  • This indicates absence of edge, not lack of data

This is an important distinction:

  • Low power + no signal → inconclusive

  • Adequate power + no signal → no edge

We observe the latter.

Stage 5: Quality Filtering Confirms the Result

To ensure nothing meaningful is missed, we examine quality dimensions:

  • Win rate vs t-statistic

  • Directional consistency

  • Economic magnitude

eurusd-winrate-vs-t-stat-scatterplot
eurusd-winrate-vs-t-stat-scatterplot
eurusd-winrate-vs-t-stat-scatterplot
  • Some months win more often

  • Others have slightly higher returns

  • None combine frequency, magnitude, and statistical strength

This confirms the earlier conclusion.

Summary

This result does not mean:

  • Markets are random

  • Seasonality is useless

  • Research failed

It means something much more precise:

Month-of-Year alone is too coarse to capture persistent market structure.

Calendar effects that survive tend to exist at finer granularity:

  • Day-of-Month

  • Day-of-Year

  • Event-driven windows

  • Regime-dependent conditions

Month-level aggregation averages away these effects.

Key Insights

  1. No calendar month shows a statistically significant return edge

  2. Apparent patterns disappear under proper testing

  3. Statistical power is sufficient to trust the result

  4. Month-of-Year effects are weaker than commonly believed

  5. Finer-grained seasonality is more informative

Conclusion

This study shows that Month-of-Year seasonality doesn’t survive proper testing.
That result isn’t the end — it’s the starting point.

When seasonality fails at the month level, it usually means the signal lives at finer resolution.

The next articles in this series zoom in:

  • Day-of-Month (DOM): flow-driven calendar effects

  • Day-of-Year (DOY): short seasonal windows that months average away

Same framework. Same statistical discipline. Higher resolution.

Month-level analysis removes false expectations.
Day-level analysis shows where structure actually appears.

Next: Day-of-Year seasonality
Then: Day-of-Month seasonality