Seasonal Index

The trading year, measured — not remembered

si.ziweipalace.com

The seasonal year

Monthly profile

Table view

Every month, every year

Reversal map — the average month

Average cumulative path inside each calendar month · ▲ peak day, ▼ trough day · 20-year sample

Favourable windows

Strongest recurring stretches, 20-year sample · found by exhaustive scan — t-stats are selection-biased upward; treat as a map, not a signal

Hostile windows

Weakest recurring stretches, 20-year sample · same scan, same selection-bias caveat

Event days

Average move on scheduled macro days · full sample

Inside the week & month

Average daily move · 20-year sample

Day of week

Around the month boundary

Method

Data. Daily closes from 1990 (or first available) through the latest session, refreshed with each publish. Returns are log daily changes; monthly and window figures compound them.

Lookback selection. For each instrument, every lookback window (5–30 years and full history) is walk-forward tested: the seasonal index for test year Y is built only from years before Y, then scored on direction accuracy against Y's actual months, across 2000–2025. The winning window is the site's default. The quoted accuracy is the best of seven tested windows and is therefore itself selection-biased upward — accuracy in the low-to-mid 50s is what genuine seasonality looks like; treat it as a tilt, not a timetable.

Roll adjustment. Futures data are spliced front-month continuous series, which embed a fake price jump each time the front contract rolls (worst in lean hogs, where seasonal calendar spreads reach 15–25%). Returns inside each contract's known roll window — on the correct side of the month boundary — that exceed 4 robust standard deviations are treated as splice gaps and zeroed; affected instruments are tagged "roll-adjusted continuous". Limits: routine sub-threshold contango/backwardation gaps (roughly 0.5–3% per roll in NatGas, gasoline, heating oil, sugar) remain in every figure, so commodity seasonal magnitudes are approximate; a true back-adjusted series would need per-contract data. Treat commodity numbers as pattern evidence, not P&L.

Significance. Cells and rows show win rate, Student's t and p-values. One dot marks p < 0.05, two dots p < 0.01. Most calendar effects are not significant — the honest ones are highlighted, the rest are context. Window t-stats come from an exhaustive scan and are selection-biased by construction.

Out-of-sample scorecard. The window scan is tested the only way that counts: for each year 2016–2025, windows are selected using the prior 20 years alone, then scored on that year. Result: the selected windows hit about as often as any random window of the same length in the same year, and realise a fraction of their "expected" move. 144 alternative selection rules were tried; the median adds nothing. The calendar map is therefore published as history, with this verdict beside it. A permutation null (each year's returns circularly shifted, so calendar alignment is destroyed but everything else kept) gives each instrument a noise threshold for the scan's max |t|; windows above it carry ◆.

What this is not. Seasonality is a prior, not a signal — and the scorecard shows how weak a prior. It says nothing about valuation, positioning or news. Nothing here is investment advice.

19 instruments · up to 36 years of daily history · sibling sites: cot · newcot · vix