FreeIndicators·ThinkorSwim
Seasonal Analysis
Historical seasonality patterns for any symbol.
How to install in ThinkorSwim
- In ThinkorSwim, open a chart, then go to Studies → Edit Studies.
- Click Create, clear the editor, and paste the code.
- Name it, click Apply, then OK, and it draws on your chart.
How to Use — WeTradePro Seasonal Analysis
A label that tells you the average historical return and up-month win rate for the calendar month you're currently in, based on this chart's loaded history. Educational, not advice.
What it is (one line)
A seasonality label: for the current calendar month, it averages every prior year's same-month return (first open → last close) and reports the average % move and how often that month closed up.
Who it's for & best timeframe
| Trader type | How you use it | Best timeframe | Recommended setting |
|---|---|---|---|
| Day trader | Background bias only — know if the month is historically a tailwind | Daily (for the read) | load max history |
| Swing trader | Best fit — lean long in historically strong months, cautious in weak ones | Daily | "max" / 10y+ range |
| Position trader | Time entries around strong/weak seasonal windows | Daily / Weekly | "max" range |
Best overall: Daily chart, "max" date range. The tool needs many years of the same month to produce a meaningful average — more history = more reliable.
What you see (overlay — labels only)
- `Seasonal — <Month>` — the month being analyzed (the rightmost bar's month).
- `Avg <Month> return: X%` — average historical return for this month across all loaded years. Green if positive, red if negative.
- `Up-month rate: X%` — how often this month closed up. Green ≥ 50%, red below.
- `Years sampled: N` — number of completed same-month instances behind the average. Trust it only when N is reasonably large.
- Light green panel tint when the month's average is positive (a calendar tailwind).
How to trade it (the core play)
- Use it as context, never a trigger. Seasonality is a probability lean, not a timing signal.
- Check `Years sampled` — under ~8 years the average is noisy; weight it lightly.
- In a historically strong month (green, high win rate), favor your long setups and give them room.
- In a historically weak month, tighten risk and be quicker to take profits on longs.
- Combine with a real entry tool (breakout, RSI band, momentum cross) — seasonality picks the season, the entry tool picks the bar.
Settings (inputs)
- None. The accuracy is driven entirely by how much history you load — set the chart to "max" / 10y+ on a Daily.
Best on
- Indices and large, long-listed names with strong seasonal records: SPY, QQQ, DIA, AAPL, MSFT, XLE, GLD. Avoid recent IPOs (too few years).
Common mistakes
- Trading it as a signal — it's a bias, not an entry.
- Ignoring `Years sampled` — a "+4%" average off 3 years is meaningless.
- Using it on a young ticker — not enough same-month history.
- Short chart range — load max history or the averages are thin.
- Forgetting it's path-agnostic — it measures open→close of the month, not the intramonth drawdown.
Video script outline (for your WeTradePro tutorial)
- Hook: "Is this month historically your friend or your enemy?"
- Show the label flipping as the calendar changes.
- Explain the math: average of every prior same-month move.
- Why
Years sampledis the credibility check. - Strong month vs weak month — how it changes your risk.
- Pairing seasonality (the season) with an entry tool (the bar).
- Recap + "load max history" + "import link in description."
Educational analysis, not financial advice.
← Back to all 103 indicators