TradesViz Seasonality

Screen the dates you
actually plan to hold.

Entering next week and holding for 30 days? Compare that window across past years, inspect the losses, and search nearby dates before deciding which symbols to research.

Included in Platinum

Recorded on September 29, 2026

AAPL and SPY over the same 30 days.

We compared AAPL and SPY from October 5 to November 4, a 30-calendar-day hold, using the same dates in 2016 through 2025.

Mode / direction
Fixed window / bullish
Planned entry
October 5, 2026
Holding period
30 calendar days
History
10 years
Historical underlying returns, with all ten annual observations included
SymbolPositive yearsMedianAverageWorst year
AAPL6/10 (60%)+1.31%+1.97%-10.11%
SPY7/10 (70%)+0.83%+1.05%-5.01%

US listings; at least 5 usable years, 60% positive years and a nonnegative median. No sector, price or liquidity restriction was applied to these two preselected symbols.

Calculated from the checked local closing-price histories available through September 28, 2026. These two symbols were chosen as case studies, not selected as market-wide leaders. Values are rounded; calculation rules appear below.

AAPL's higher average came with a larger historical loss. SPY had more positive years but a smaller median move. Neither row tells you what the next trade will earn.

Why we built this

A calendar month is rarely your trade.

A trader asked us how to find a seasonal move before opening an options spread. A monthly average did not answer his question: when could he enter, and how long would he hold?

We added fixed windows and a bounded date search. Searching more dates also makes it easier to find a pattern by chance, so the search lets you reserve recent years and inspect neighboring windows.

Two different questions

“How was October?” and “What happened after an October 12 entry?” use different dates.

Calendar period October 1 to 31
Planned trade October 12 + 45 days
Use the calendar Screener for broad periods. Use Upcoming Windows for your entry and holding dates.

Already have a symbol?

Select a stock. Drag the dates you want to examine.

In Returns, choose a symbol and its seasonal window loads automatically. Drag across the full-year chart, then adjust either edge. Releasing the selection updates the summary, yearly paths and annual results. The Selected range labels show which dates each section covers.

The Returns screenshots below were captured on October 2, 2026. They use different windows from the September 29 AAPL/SPY scan examples elsewhere on this page. Select any image to view it at full size.

AAPL.US with May 21 to July 14 selected on the full-year chart, 9 of 10 positive years, a +6.606% median and a -3.221% worst year
AAPL.US, May 21 to July 14: nine positive years out of ten, a +6.606% median, and a worst year of -3.221%. The overview uses completed calendar years from 2016 to 2025. Latest stored price: September 28, 2026.

You can also type entry and exit dates in MM-DD format and choose 1 to 20 history years. Use the fields for a window crossing New Year, such as December 1 to January 31, then select Analyse window. While a range updates, a loading indicator appears and the previous results stay in place.

Follow the move within the window

For the next two screenshots, we changed the selection to June 1 to July 22. Each yearly path starts at its entry close. Hover to see the return since entry and how many years contribute to the mean at that point.

June 1 to July 22 yearly paths with a Day 38 tooltip showing a +11.158% mean across seven available years
Day 38: +11.158% across seven available years. This is an intermediate return since entry, not the final outcome.

Compare the completed result in each year

The annual bar chart and AG Grid show the same completed window returns. Sorting or filtering the grid updates the bars. To remove a year from the calculation, use Exclude years and analyse again.

June 1 to July 22 annual return chart beside AG Grid, showing +18.120% in 2021, +6.296% in 2025 and a losing 2017
The 2021 window returned +18.120%; 2017 lost money. Actual dates show how weekends and holidays were matched.

Keep window returns and calendar returns separate

The calendar charts use the independent Calendar range at the top of Returns. In this example, the June 1 to July 22 window returned +6.296% in 2025, while the calendar-year return was +11.49%. Both use split-adjusted closes; they measure different dates. The first and last calendar years can be partial.

Calendar charts labelled October 2, 2021 to October 2, 2026, with a 2025 yearly return of +11.49%
Each calendar chart displays its own Selected range: October 2, 2021 to October 2, 2026. Changing the window above does not change these dates.

Read the Returns walkthrough and chart explanations

When your dates are flexible

Compare nine windows before choosing one.

Switch to Find historical windows. This recorded comparison tested three entries and three holding periods for each of the same two symbols.

Entries / step
October 5, 12 and 19, 2026 / 7 days
Holds / step
15, 30 and 45 days / 15 days
Selection requirements
5+ years, 60%+ positive, median at least 0%
Ranking
Median directional return

With 10 years of history and two reserved for validation, the earlier eight years selected these dates:

Selected using 2016-2023; validation results use 2024-2025
SymbolSelected datesHoldPositive selection yearsSelection medianValidation median
AAPLOct 19 to Dec 345 days6/8+6.93%+5.48%
SPYOct 5 to Nov 1945 days7/8+4.97%+1.31%

Both selected 45 days. That is the strongest qualifying median within these nine tests, not a forecast of the next move's duration. In the detail heatmap, compare the selected cell with its neighbors; overlapping windows share prices and are not independent confirmations.

Read the reserved years separately

SPY's positive median included a losing year.

The search chose SPY's 45-day window without using its two most recent years. Those years returned +3.96% in 2024 and -1.34% in 2025, producing a +1.31% validation median.

8 selection yearsChoose and rank the dates
20162017201820192020202120222023
2 validation yearsInspect the selected dates afterward
20242025
Two observations are a small check. Repeatedly changing settings after reading them uses those years to choose the result too.

Open View window

AAPL's selected window lost 15.72% in 2018.

The October 19 / 45-day result had a +6.93% selection median. Its 2018 observation, from October 19 to December 3, still lost 15.72%. Read the annual paths and actual dates before treating a summary row as a trade idea.

The chart shows daily closing-price paths. The annual grid provides each year's endpoint return, direction and year group. Neither describes every intraday excursion.

Chart or export the observations

The result and annual tables use AG Grid. Select numeric cells to create a range chart, or export CSV and Excel files. Keep the file with the original scan settings so later experiments do not replace your starting point.

An attractive average can fail the screen

Why the search rejected AAPL's 30-day window.

For the October 5 / 30-day candidate, reserving 2024-2025 leaves eight selection years. The average remains positive, but only four of those eight years rose.

The summary that could catch your eye

Selection average
+1.79%
Selection median
+0.57%
Positive selection years
4/8 (50%)

Rejected by the 60% matching-years requirement. A positive average does not override that filter. This candidate is omitted from the qualifying list; the figures here were calculated from its annual observations.

What the annual results reveal

The best year was 2019: +13.40%. The worst was 2018: -10.11%. As a sensitivity check, excluding the best year reduces the average from +1.79% to +0.13%.

The other seven years still have a positive average, so one year does not explain the whole result. All eight remain in the actual calculation.

See all eight selection years
AAPL, nominal October 5 entry plus 30 calendar days; actual trading dates below
YearActual entryActual exitReturn
20162016-10-052016-11-04-3.72%
20172017-10-052017-11-06+12.12%
20182018-10-052018-11-05-10.11%
20192019-10-072019-11-04+13.40%
20202020-10-052020-11-04-1.33%
20212021-10-052021-11-04+6.98%
20222022-10-052022-11-04-5.48%
20232023-10-052023-11-06+2.47%

For options research

Filter the underlying's activity, then check the contracts.

Both Screener and Upcoming Windows offer Optionable and Min avg options volume filters. The average uses 20 completed sessions of OCC equity-options volume, across calls, puts, strikes and expiries. It is complete daily activity, separate from filtered Options Flow trades.

N/A volume means the average is unavailable, incomplete or stale. Unknown optionability means there is no verified Yes or No. Neither label means zero trading volume.

After narrowing the list, inspect the intended expiry and strikes. Aggregate activity cannot tell you their current bid/ask spread, available size or execution cost.

Keep the original question

Record why you kept or rejected the candidate.

For this example, a useful note is specific: “AAPL, October 5 / 30 days; 10-year history, last two reserved; 4/8 positive selection years; failed my 60% rule.” Save the settings and export before trying another range.

If you take a trade based on seasonal research, tag it seasonality and record the actual instrument and exit rule. Later, filter those trades to compare the planned hold with your execution. The vs. My Trades tab provides monthly context; your notes preserve the exact-window decision.

Data and calculation details

Coverage
Stock seasonality: United States, India and Canada, subject to available history. Options reference and volume data: mapped US-listed underlyings.
Search limits
The last possible entry can be up to 60 calendar days after the first. Entries must fall within the next 365 days. Holds range from 7 to 180 calendar days. A search allows up to 240 entry/hold combinations and 1,500 qualifying symbols. Symbols × combinations × history years must not exceed 2 million.
Matching dates
Each historical year uses the same month and day. Entry and exit move independently to the first stored trading session on or after their nominal boundary, within seven days. February 29 maps to February 28 in non-leap years. Missing or invalid endpoints exclude that observation.
Return calculation
(exit close / entry close - 1) × 100, using split-adjusted closes without cash-dividend adjustments. These are underlying price returns before costs, not options-strategy profits.
Selection
Return and matching-year rankings choose each symbol's window using that metric. Stock/options-volume rankings select the window by median directional return, then rank symbols by volume. Reserved years do not select or qualify the window.
Universe
The screener uses currently active listings, not a reconstruction including every company later delisted. Searching many symbols and windows creates selection bias; an appealing historical result can occur by chance.

Read the full research guide

Platinum

Try the same research in your account.

Seasonality is included with these tools:

  • Single-stock analysis with draggable entry and exit dates
  • Calendar screening and fixed holding windows
  • Entry/holding searches with reserved validation years
  • Annual results, range charts and CSV/Excel export
  • US optionability and options-volume filters
  • Journal tags and vs. My Trades comparisons

Pro and Platinum both include REST API + hosted MCP access to your journal.

When the result needs a closer look

Why can a 10-year scan show fewer than 10 observations?

A listing may have a shorter history, or an annual window may have missing or invalid price data. History sets the years to examine; it does not guarantee a usable result in every year. Read the denominator in Matching years, and check selection and validation counts separately.

What should I check when a scan returns no matches?

Read the data-status message first. Missing or stale history is different from symbols failing your filters. If coverage is current, check the sector, liquidity and return thresholds one at a time. Changing a threshold cannot supply missing prices.

How should I read a bearish result?

Matching years counts historical down years. Directional returns reverse the sign of the underlying move: a stock falling 4% has a +4% bearish directional return. The price-path chart still shows the decline. This calculation does not include borrow costs, option premiums or trading fees.

What can I do with the TradesViz REST API?

Use Python, scripts or your own applications to read and search your TradesViz accounts, trades and executions, build custom reports, and manage notes and tags. With the required permissions, you can import supported executions, edit journal entries, update trade risk settings, split or merge trades, and delete selected journal data. Execution imports currently support eligible USD US stocks and fixed-multiplier USD futures, not every asset supported by the website.

Can I connect ChatGPT or Claude to my TradesViz journal using MCP?

Yes. Connect a compatible ChatGPT, Claude or other MCP client to the hosted TradesViz MCP server using browser sign-in; no local MCP server or REST API key is needed. Ask your assistant to summarize recent trades, compare results from retrieved trades, find trades by symbol or tag, or save a review note. Editing and other journal changes require the matching permissions. Connector availability depends on your AI client and workspace settings.

How do API and MCP permissions protect my trading journal?

You select the trading accounts and permissions each API key or MCP connection can use. Start with read access and grant editing or deletion separately when needed. Day notes, day tags and general journal notes require a separate opt-in. You can revoke access from the API/MCP dashboard. These tools manage your journal; they cannot place, change or cancel broker orders. AI responses can contain mistakes, so review proposed changes before approving them.

API & MCP overview · REST API documentation · MCP connection guide · API/MCP dashboard