TDLab — Trading Discipline Lab
All articles
trading seasonalityseasonal curvemarket context

Trading Seasonality Explained: What a Seasonal Curve Actually Tells You

By TDLab Editorial TeamAugust 28, 20269 min read

Product research based on TDLab workflows, hands-on testing and cited source material.


Trading seasonality is the study of recurring calendar tendencies in a market’s historical returns. It asks whether certain parts of the year have repeatedly looked stronger, weaker or less consistent across completed years. It does not claim that a calendar date causes price to move.

Short answer

A seasonal curve compounds historical daily percentage returns from a common base of 100. It makes the average path through the year visible. It is a descriptive map, not a forecast for the current year.

Why normalize the curve to 100?

Raw prices from different years cannot be averaged meaningfully when one year traded at 2,000 and another at 5,000. Percentage returns solve that scale problem. Each annual path starts from the same base, and daily returns are compounded through the calendar.

If the aggregated curve rises from 100 to 106, it means the historical path gained 6% from its normalized starting point. It does not mean the market is expected to trade at a price of 106.

Average and median are not the same

The average includes the magnitude of every accepted year and can be pulled by exceptional moves. The median selects the middle observation and is less sensitive to extreme years. When they point in the same direction, the tendency is easier to describe. When they diverge, a few unusual years may be influencing the average.

What positive-years percentage adds

A positive-years percentage tells you how often the return was above zero across the sample. A positive average with a low positive-years percentage can indicate that a small number of large positive years dominate the result. That is why curve direction, median, percentile range and sample size belong together.

Choosing 5, 10 or 20 years

  • 5 years: more recent, but a smaller and potentially less stable sample.
  • 10 years: a compromise between recency and breadth.
  • 20 years: more history, but older regimes receive equal calendar representation.

There is no universally correct window. TDLab does not average the three into one final score; the trader chooses which history to inspect.

Calendar days versus market sessions

A useful seasonal curve needs a stable calendar alignment without pretending that weekends were trading sessions. TDLab maps annual paths to a normalized 366-position calendar. Non-session dates carry the last value, while contextual slope measures use the next five actual market sessions.

The look-ahead problem

Suppose you inspect a trade opened in 2018 using a seasonal curve built with data through 2025. The curve contains years the trader could not have known. That is look-ahead bias even if no future realized prices from the specific trade are displayed.

Market Lab solves this with vintages. For a trade in year Y, the 5Y, 10Y or 20Y seasonal context uses only completed years through Y−1. Three nearby anchors confirm the direction of the historical five-session path. Weak or conflicting slopes become Neutral rather than forcing a direction.

How seasonality becomes personal

Market Lab compares aligned, opposed and neutral seasonal trades with the baseline for the same canonical market and direction. The useful result is not “December is bullish.” It is closer to: “When I took NQ Longs with an aligned 10Y seasonal path, how did my Win Rate and Profit Factor compare with all my NQ Longs?”

What seasonality cannot do

A recurring historical path does not account for every structural, macroeconomic or event-driven change. It cannot replace a trading plan, define an entry or guarantee that the current year follows the sample.

Read the full Market Lab seasonality guide, then compare the idea with COT positioning and policy-rate context.

Compare seasonal context with your trades.

Market Lab builds point-in-time seasonal vintages and shows how your Long and Short trades performed when the historical five-session path aligned, opposed or remained neutral.