AlphaTRADER Academy
Seasonality
Markets aren't memoryless. Every year tax deadlines, fiscal year-ends, harvest cycles, and rebalance windows force the same flows on roughly the same dates. The result is a calendar-anchored bias that recurs with surprising consistency. Seasonality measures it — not as prediction, but as structural prior you can stack on top of every other signal.
"Sell in May and go away" stuck around for 200 years for a reason — even bad heuristics survive when the flows behind them are real.
Anatomy — Reading the Chart
The Seasonality chart on the Asset Details page overlays multiple cycle averages on a single axis indexed to base=100 (Jan 1). All lines are normalised cumulative returns — directly comparable shape-to-shape.
What's Plotted
- {Year} YTDCurrent year cumulative return, base=100, past portion only.
- 5Y averageMean shape across last 5 calendar years.
- 10Y averageMean shape across last 10 years.
- 20Y averageMean shape across last 20 years.
- PresidentialCurrent 4-year cycle year (label shows which).
- ±1σ BandStandard deviation envelope around 10Y average — visualises typical year-to-year variance.
Reading Convention
- ▸X-axis: trading day of year (1–252).
- ▸Y-axis: indexed value, base=100 on day 1.
- ▸Lines above 100 = average gains since Jan 1.
- ▸Lines below 100 = average losses since Jan 1.
- ▸Slope = average daily return at that calendar position.
Lines are NOT prices — they're shape comparisons. A 10Y line ending at 108 means "average year delivered 8% by year end".
Why Seasonality Exists — The Mechanics
Seasonality isn't astrology. Each pattern has a documented flow behind it. Knowing the mechanic tells you when to trust the bias and when the regime has changed.
Institutional Rebalancing
Pension funds, mutual funds, sovereign wealth — rebalanced quarterly and at year-end to target weights.
- ▸ Quarter-end (Mar/Jun/Sep/Dec): forced flows into/out of asset classes
- ▸ Year-end "window dressing": funds buy winners to dress portfolio reports
- ▸ January effect: small caps rally as new year cash gets deployed
Tax-Driven Flows
US tax code creates predictable selling/buying windows.
- ▸ Tax-loss selling Oct–Dec: dump losers before year-end
- ▸ January bounce: same names get bought back after wash-sale window
- ▸ April 15: liquidation pressure to fund tax bills
Commodity Production Cycles
Crops, energy, metals — physical seasonality drives price.
- ▸ Grains: planting rally (spring), harvest pressure (autumn)
- ▸ Natural gas: winter heating demand spike
- ▸ Gold: Indian wedding season Q4 demand
Fiscal Year-End Repatriation
FX flows tied to corporate fiscal cycles and government budgets.
- ▸ Japan March 31 fiscal year-end → JPY repatriation flows
- ▸ UK April 5 tax year → GBP positioning shifts
- ▸ Sovereign FX reserves rebalancing on quarter-ends
Key insight: the BIGGER the institutional pool that's forced into the trade, the more reliable the seasonality. Tax-driven flows are mechanical — funds don't decide whether to liquidate for the IRS. That's why "January effect" survives despite being known.
5Y vs 10Y vs 20Y — Three Different Stories
The same asset can show wildly different shapes depending on the lookback window. Each tells you about a different timescale of regime.
| Window | Captures | Strengths | Weaknesses |
|---|---|---|---|
| 5Y | Current regime — post-2020 monetary policy, current macro context | Most relevant to today's flows | Small sample → high variance, noisy outliers weight heavily |
| 10Y | Spans regime changes — covers ZIRP era + rate normalisation | Best balance of relevance + sample size; default reference | Mixes structurally different regimes |
| 20Y | Long-run structural pattern — 2 full presidential terms × 5 | Smoothest, most statistically reliable | Includes pre-2008 era — different volatility regime |
When All Three Agree
High-conviction seasonal bias. Pattern survives across multiple regimes — structural, not cyclical.
Example: Sep–Oct equity weakness is visible in 5Y, 10Y, AND 20Y. Treat as durable.
When They Disagree
Recent regime has rewritten the pattern. Trust the SHORTER window for active trades, the LONGER for context.
Example: 20Y shows summer rally, 5Y shows summer drift. Recent regime weaker. Don't fight the 5Y.
Presidential Cycle — The 4-Year Calendar
US elections create a documented 4-year rhythm in equity returns. The platform plots the average shape of this specific year within the cycle, not a generic average.
| Cycle Year | Label | Historical Bias (S&P) | Driver |
|---|---|---|---|
| Year 1 (Post-election) | "Post" | Mid-positive — policy uncertainty digesting | New admin priorities, executive orders, fiscal direction unclear |
| Year 2 (Mid-term) | "Middle" | Weakest year — Sep–Oct often deeply negative | Mid-term elections drive policy gridlock anxiety, "October surprise" history |
| Year 3 (Pre-election) | "Pre" | STRONGEST year — historically > +15% on average | Incumbent stimulates economy ahead of election; Fed reluctant to tighten |
| Year 4 (Election) | "First" | Mid-positive but volatile — front-loaded gains, post-election turbulence | Election uncertainty discounted into prices, post-vote rally or sell-off |
Where Are We In The Cycle?
US elections happen on years divisible by 4 (2024, 2028, 2032…). The year AFTER an election is Post-election (Year 1), then Mid-term (Year 2), then Pre-election (Year 3), then Election (Year 4). Then it resets.
- ▸ 2025 — Post-election Year 1
- ▸ 2026 — Mid-term Year 2 (statistically the weakest year)
- ▸ 2027 — Pre-election Year 3 (historically the strongest)
- ▸ 2028 — Election Year 4 (front-loaded, volatile post-vote)
Cycle works on US equities — partially elsewhere. Strong on S&P, NASDAQ, broad indices. Weaker on FX. Almost meaningless on commodities. Always check whether the asset's price action correlates to US fiscal/political cycle before applying.
±1σ Band — How Wide Is Normal?
An average tells you the central tendency. The standard deviation tells you the dispersion — what counts as a "normal" deviation versus an anomaly.
Construction
For each trading day across the 10Y window, calculate the standard deviation of cumulative returns at that day. Then plot:
upper = 10Y_avg + 1×σ lower = 10Y_avg − 1×σ
Roughly 68% of historical paths fall inside the band. Outside means an outlier year.
How to Read It
- ▸Wide band = high cycle variance, low signal reliability
- ▸Narrow band = consistent seasonal pattern, high reliability
- ▸YTD inside band = current year tracking historical norm
- ▸YTD outside band = anomaly year, regime mismatch
Practical use: when YTD breaks above the upper band on light volume, mean-reversion to the band is the higher-probability move. When it breaks below the lower band on heavy volume, the pattern has likely structurally broken — don't fade it.
YTD Overlay — Current Year vs The Average Year
The green line on the chart is THIS year's actual cumulative return, indexed to the same base=100 (Jan 1). It lets you compare the live shape against historical averages directly.
What It Shows
- ▸NOT the absolute price — the cumulative % return from Jan 1.
- ▸Past portion only — line stops at today, no forecast.
- ▸Same scale as historical averages → directly comparable.
- ▸An asset can be at all-time-high in PRICE but have NEGATIVE YTD if it started the year higher.
Reading It
- ▸YTD tracks the average closely = textbook year, expect continuation toward average's projected end.
- ▸YTD ahead of all averages = strong year, watch for end-year mean reversion.
- ▸YTD behind all averages = weak year, "catch up" rally possible if cycle still has time.
- ▸YTD diverges from cycle average late = regime shift in progress.
Monthly Highs & Lows — Tradeable Seasonal Anchors
Beyond the annual shape, certain calendar months historically mark the high or low of the year. These are separate seasonal signals you can stack on top of the cycle averages.
Common "Low of Year" Patterns
- October low — Sep/Oct equity weakness historically marks bottoms
- March low — Tax-loss exhaustion + Q1 rebalancing
- December low — Tax-loss selling crescendo before rebound
Common "High of Year" Patterns
- July high — "Sell in May" effect peaking, summer rally exhausted
- September high — Pre-October weakness inflection
- April high — Tax-bill liquidation tops
Use as filter, not signal: "October Low" being a documented pattern doesn't mean THIS October will mark the low. It's a probability tilt — combine with Wyckoff Phase A signs in the actual chart before acting.
Seasonality = Wyckoff Cause & Effect at Calendar Resolution
Wyckoff's Cause & Effect Law states that accumulation builds energy that releases as a measurable trend. Seasonality is the same mechanic at calendar level — institutional flows BUILD a directional cause that releases on predictable dates.
| Wyckoff Concept | Seasonal Equivalent | Confluence Use |
|---|---|---|
| Cause & Effect | Pre-pattern flow accumulation (Q4 tax-loss build, year-end rebalance) | Cause = the calendar build-up. Effect = the post-deadline rally. |
| Phase A (SC) | "October Low" / tax-loss exhaustion month | Calendar bottom + Wyckoff capitulation = highest-conviction reversal entry. |
| Phase E (markup) | Pre-election Year 3 rally / Q1 January effect | Calendar tailwind + Phase E = ride the trend, scale on pullbacks. |
| UTAD (top) | "July High" / pre-election rally peak | Calendar top + UTAD pattern = premium short setup. |
| Range / Phase B | Mid-term Year 2 chop / summer drift | Calendar tells you to expect the range — don't fight it. |
Reading principle: seasonality is a TILT, not a trigger. It tells you which direction has tailwind. Combine it with Wyckoff phase to know when to act, with Pattern Engine for entry, with Sentiment for size. Seasonality alone is bias — never enough.
Failure Modes — When Seasonality Lies
Even strong seasonal patterns break. Here's where to expect it.
Regime Change
Structural shifts re-write seasonality entirely.
- ▸ Post-2008 Fed accommodation neutered "Sell in May" for a decade
- ▸ Algo-driven flows have compressed traditional rebalance windows
- ▸ Tax-law rewrites (TCJA 2017) altered tax-loss timing
- ▸ Watch divergence between 5Y and 20Y — that's your regime-change tell
Black Swan Years
2008, 2020, 2022 — single years dominate small samples.
- ▸ One outlier year dragging 5Y average → distorted picture
- ▸ Look at σ band width — wide = recent volatility
- ▸ Discard 5Y when it disagrees with 20Y AND σ is wide
News Override
Macro events trump seasonality in real time.
- ▸ Surprise rate hike in "October Low" month → bottom doesn't form
- ▸ War / banking crisis / pandemic = seasonality irrelevant
- ▸ Always check news context before betting on calendar
Asset-Class Mismatch
Not all seasonal effects apply to all assets.
- ▸ Presidential cycle: strong on US equity, weak on FX, none on crypto
- ▸ "Sell in May" is equity-specific — commodities follow harvest cycles
- ▸ FX has its own fiscal-year-end patterns (March/April for JPY/GBP)
Operational Cheatsheet
Pre-trade routine when checking the Seasonality chart.
| Read | Confirm With | Action |
|---|---|---|
| 5Y / 10Y / 20Y all trending up at this trading day | YTD also tracking inside band, near average | Strong long bias — combine with Wyckoff entry |
| 5Y / 10Y / 20Y all trending down | YTD also negative, σ band confirming | Strong short bias — wait for distribution pattern |
| Mid-term Year 2 in progress | 5Y showing weak summer / Sep-Oct dip historically | Defensive positioning — reduce size in weak window |
| Pre-election Year 3 setting up | Strongest cycle year + Q4 stimulus tailwind | Aggressive long bias for the year |
| YTD diverges sharply above σ upper band | Anomalous strength + high RSI / overbought | Mean reversion likely — trim, don't add |
| YTD diverges sharply below σ lower band | Anomalous weakness + check for regime change news | Don't bottom-fish — pattern may be broken |
| 5Y disagrees with 20Y | Recent regime ≠ long-run pattern | Trust 5Y for entries, 20Y for context |
| Approaching documented monthly high/low date | Wyckoff Phase A/UTAD signs in actual chart | Strong reversal setup if structure confirms |
Closing principle: seasonality is the structural tide. Wyckoff is the wave you ride. Pattern Engine is the surfboard. The trader who catches the wave moving WITH the tide gets the longest ride. Going against either alone shortens the trade.
Connect the Dots
Test Your Understanding
4 questions — instant feedback, no scoring stored.