Wyckoff + Seasonality — Time-Based Bias Filter
Cycle Layer — What the Calendar Forces Markets to Do

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.

Test Your Understanding

4 questions — instant feedback, no scoring stored.