Month-of-Year Seasonality in Trading

Jan 17, 2026

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

Introduction: 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.

In this study, we analyze EUR/USD daily OHLC data spanning 2005–2025, applying a complete, statistically disciplined Month-of-Year framework to one of the most liquid markets in the world.

The result 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.

CHART 1 — Raw prices vs Returns

eurusd-chart-raw-prices-vs-returns
eurusd-chart-raw-prices-vs-returns
eurusd-chart-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?

CHART 2— Average Monthly Returns (Descriptive Only)

chart-eurusd-average-monthly-returns-boxplot
chart-eurusd-average-monthly-returns-boxplot
chart-eurusd-average-monthly-returns-boxplot

At this point, 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

  • p-values

A practical interpretation:

  • |t| < 1.5 → noise

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

  • |t| ≥ 2 → statistically meaningful

CHART 3 - Month-of-Year t-Statistics

chart-eurusd-moy-t-stat-barplot
chart-eurusd-moy-t-stat-barplot
chart-eurusd-moy-t-stat-barplot

Result:
No month crosses the ±2 threshold.

This means:

There is no statistically detectable Month-of-Year return edge.

Stage 4 — Statistical Power: Why This Result Matters

A common reaction is:

“Maybe the sample is too small.”

That is a valid concern — which is why statistical power must be examined.

Statistical power depends on:

  1. Effect size

  2. Volatility

  3. Number of years observed

  4. Significance threshold

CHART 4 - Sample size vs t-stat

chart-eurusd-moy-t-stat-barplot
chart-eurusd-moy-t-stat-barplot
chart-eurusd-moy-t-stat-barplot

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

CHART 5 - Win rate vs t-statistics scatter plot

chart-eurusd-moy-t-stat-barplot
chart-eurusd-moy-t-stat-barplot
chart-eurusd-moy-t-stat-barplot

Top-right quadrant
→ frequent wins + strong statistical edge (clean, stable)

Top-left quadrant
→ low win rate but strong t-stat (asymmetric payoff, trend-like)

Bottom-right quadrant
→ high win rate but weak edge (danger zone)

Bottom-left quadrant
→ noise

Reference lines:

  • |t| = 2 → minimum statistical credibility

  • win_rate = 50% → coin-flip baseline

    Observation:

    • Some months win more often

    • Others have slightly higher returns

    • None combine frequency, magnitude, and statistical strength

    This confirms the earlier conclusion

Stage 6 — What “No Significant Months” Actually Means

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.

Conclusion

This study demonstrates an uncomfortable but important truth:

Month-of-Year seasonality does not provide a standalone trading edge.

That conclusion is not pessimistic — it is liberating.
It prevents wasted effort, false confidence, and overfitting.

Good research does not aim to find something.
It aims to find the truth.

In markets, knowing where there is no edge
is just as valuable as knowing where there is one.

What Comes Next

Month-of-Year analysis removes false expectations.
Seasonality doesn’t disappear — it moves to finer resolution.

Next in this series:

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

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

Same framework. Higher resolution.