TradeWave detects repeating seasonal patterns over a lookback you choose - 1 to 99 years, by calendar or by election cycle - then scores each one with a machine-learning model. The method is deterministic: same inputs, same output, every time. This page shows exactly how it works, the peer-reviewed evidence behind it, and the public record you can audit. We would rather be audited than believed.
Seasonal and calendar effects in stock returns are among the most studied anomalies in financial economics. Peer-reviewed research across top-tier journals has consistently documented their existence, persistence, and economic significance.
What this means for your trading: some stocks tend to rise or fall around the same time every year, and that tendency is consistent enough to study and trade. TradeWave finds those repeating windows for you and tells you how often each one has paid off. The journal references below are the receipts. If you want the proof before the payoff, read on. If you just want to use it, jump straight to the patterns.
The findings above describe the effect. TradeWave hands you the controls. You choose the lookback - anywhere from 1 to 99 years - and the lens: consecutive calendar years, or the four-year presidential election cycle (PE+X), which lines up each year against the same point in the political term. Widen the window for a long, stable read; tighten it to weight recent behavior. Switch lenses to see whether a pattern holds by the calendar, by the cycle, or both. The computation is deterministic, so the same window always returns the same numbers - nothing is hidden, and nothing changes between visits.
Knowing a pattern exists is one thing. Knowing which patterns are worth acting on right now is another. Recent research from leading institutions confirms that machine-learning models read these patterns far better than traditional methods - they spot when conditions favor a pattern and when they do not.
This is the core idea behind TradeWave's ML layer. The seasonal pattern is the raw history. The model then weighs today's conditions - trend, volatility, the calendar, where the stock sits in its range - to estimate the chance each pattern works out from here. History tells you what usually happens; the model tells you how the odds look this time.
TradeWave scores every seasonal pattern with a three-model ensemble (LightGBM + XGBoost + CatBoost). For each one it estimates the likely return and the maximum favorable excursion, or MFE - in plain terms, the best paper gain the trade typically reaches before the window closes, which is what tells you where a sensible profit target sits.
In plain terms: the model reads each pattern through 62 measurements, learns from 26 years of market history, and rescores all 503 stocks in the S&P 500 every day.
The model evaluates each pattern using 62 features across six categories:
Pattern Intrinsic - historical win rate, average return, Sharpe ratio, consistency across years
Technical - current price relative to moving averages, trend strength, momentum indicators
Market Regime - VIX level, broad market trend, sector performance
Context - position within 52-week range, recent earnings, volume patterns
Calendar - day of week, month, proximity to holidays, days to earnings
Interactions - cross-feature combinations that capture non-linear relationships
No single model dominates across all market regimes, so we run three and blend them for stability.
| Year | LightGBM | XGBoost | CatBoost | Ensemble |
|---|---|---|---|---|
| 2018 | 0.618 | 0.601 | 0.615 | 0.614 |
| 2019 | 0.490 | 0.592 | 0.666 | 0.637 |
| 2020 | 0.663 | 0.641 | 0.618 | 0.651 |
| 2021 | 0.601 | 0.603 | 0.620 | 0.611 |
| 2022 | 0.550 | 0.569 | 0.546 | 0.564 |
| 2023 | 0.616 | 0.630 | 0.645 | 0.644 |
| 2024 | 0.581 | 0.630 | 0.608 | 0.623 |
| 2025 | 0.669 | 0.667 | 0.640 | 0.671 |
AUC scores by model and year. AUC measures how well the model ranks winners above losers: 0.50 is a coin flip, 1.00 is perfect, so 0.62 means a real but modest edge. In 2019, LightGBM produced a null model (0.490). XGBoost and CatBoost rescued the ensemble. No single model is consistently best.
The model is validated using expanding-window walk-forward testing: train on all data up to year Y, then score year Y+1 using only information available at the time. No future data is ever used. No data leakage. The AUC scores above are reported on each year's held-out data under this protocol.
Walk-forward testing is about process integrity, not a headline number: it proves the model only ever uses information that existed at the time, the same way it runs in production. But a backtest is our claim, not your proof. So we put the live record in the open - every daily pick is published before the market opens and kept on a public scorecard, wins and losses alike. You do not have to take the numbers on faith. You can audit them.
Being honest about the limits matters as much as any performance number. This is a real edge, not a crystal ball - here is exactly where it stops.
It is a weak classifier with a strong filter. The model's average AUC of 0.62 is above random (0.50) but below the "strong" threshold (0.70+). It works because seasonal patterns already have inherent edge, and filtering to the top 30% amplifies a small edge across massive sample sizes.
Predicted returns are ranking indications, not price targets. The model's predicted return is useful for sorting opportunities but should not be treated as a precise forecast. Probability of hitting the exact predicted return ranges from 54-61%.
Individual trades can still lose. No filter eliminates losing trades, and a meaningful share of patterns close lower than their entry. Risk management, position sizing, and diversification remain essential.
The model does not operate in panic regimes. Samples with VIX above 35 were removed from training. The model has no data for true market panic conditions and should not be relied upon during them.
The same model already drives a proprietary trading strategy. Pattern data and model scores are available to institutional desks, quantitative researchers, and fintech platforms - over the same auditable record described on this page, not a separate marketing feed.
Universe. Full S&P 500 coverage, all 503 constituents scored, with the broader large-cap indices (Dow 30, Nasdaq 100, Russell 1000) available on the same schema.
History. 26 years of end-of-day price history feed the patterns, with up to a 99-year lookback exposed per query by calendar or presidential election cycle.
Freshness. EOD data lands and the full universe is rescored on each US market close, so the scores you pull are the scores the live scorecard publishes - same numbers, same day.
Delivery. A clean REST API returns patterns, scores, and MFE for any ticker or screen. TradeWave also speaks MCP, so the same patterns and scores pull directly inside ChatGPT or Claude with no glue code.
Every pattern in TradeWave is scored by the model described on this page. Pick your window, set your lens, and check the data yourself.
Start Your Free 7-Day Trial