Cycles · Price Cycle Analyser

See the cycles behind a symbol’s price

The Price Cycle Analyser draws a symbol’s fitted cycles over its price, projects them past today, and lists every trade the model made in a test period it was not fitted on.

Training cutoffTodayBuyShortNext2575Cycle oscillatorPriceTest periodCycleProjection

Try it free on ES=F

The full Price Cycle Analyser for S&P 500 E-Mini Futures (ES=F) is open to everyone, with no account: the fitted cycles, the oscillator, the projection and every trade in the test period, exactly as Pro members see them.

Net return is the model’s result over its nine-month test period, after 5 bps costs per side. The model was picked from 5,000 settings by that same return, so it describes the past rather than an expected result. Projected entry dates do not allow for exchange holidays.

What you can do with it

The model on the chart

Price, the composite cycle fitted to it and the dashed projection past today on one chart, with the training cutoff and the grey test period marked, so you can see where the fit ends and the test begins.

Every trade, listed

Each trade in the nine-month test period with its dates, prices and return, plus the position open today and the next projected entry. Expand a trade to see it on its own chart.

The cycles, one by one

The spectrum shows which cycle lengths are strongest in the price history, and the active cycles table lists each one in the model with its fitted size and Bartels score. Pick a cycle to draw it alone over the price.

Two results to compare

Switch between Highest return and Best with ≥5 trades, the two results saved for each symbol. The chart, the oscillator and the trade list follow the one you pick.

Worked example

ES=F, trade by trade

The free E-mini S&P 500 futures (ES=F) model combines two cycles, of 8 and 79 trading days. In the two years of prices before its training cutoff of December 26, 2025, the 79-day cycle, roughly 16 weeks, repeated six times and scored 91.9 on the Bartels test, where higher means steadier. Its oscillator thresholds are 10 and 90, so it waits for deep troughs and high crests.

After the cutoff the model was frozen and traded the nine months to September 28, 2026. Three of its five trades made money, for +18.6% after costs, and the largest fall in daily equity along the way was 4.5%.

The five trades of the ES=F Best with ≥5 trades model in its 2026 test period
TurnSideEntryExitEntry priceExit priceReturn
Jan 15ShortJan 20Mar 246,918.256,635.00+3.99%
Mar 20LongMar 24May 146,635.007,477.50+12.59%
May 12ShortMay 14Jul 207,477.507,485.00-0.20%
Jul 16LongJul 20Sep 97,485.007,681.00+2.52%
Sep 4ShortSep 9Sep 28 (open)7,681.007,746.75-0.96%
Compounded, after costs+18.64%
The Best with ≥5 trades result for ES=F as the analyser showed it on October 9, 2026, with dates in 2026. The turn is the day the oscillator turned, and each trade fills at the open after the next close confirms it. The last short was still open when the test ended and is marked at that day’s close.

Reading a result like this one

Two results, not one
ES=F’s Highest return is larger, +31.8%, but it came from two trades and made money in only one of its three earlier validation windows, losing 4.8% across them. The Best with ≥5 trades result above was profitable in all three.
The best of 5,000 settings
On ES=F, 2,172 of the 5,000 settings made money in the test, fewer than half, and the page shows the best. Choosing it by its test result flatters it, so the figures describe a historical search, not an expected return.
The market over the same months
ES=F itself rose about 11% over the test period. Simply holding the market is the benchmark that matters.
The trades behind the total
One long ride can carry a whole result, so the drawdown and the trade list matter as much as the headline return. Here the March long alone made +12.6%.
Read the full guide to price cycle analysis

Price cycles × seasonality

Check today’s cycle against the calendar

Preview seasonality opens the symbol’s seasonal curve beside its cycle model. It takes today’s cycle position, long or short, follows it to the next seasonal peak or trough, and shows how those calendar days went in past years: every trade, beside only those taken when the price cycle pointed the same way at entry.

Today’s position, on the calendar
A long runs from today to the next peak on the seasonal curve and a short to the next trough, or to the year’s end when none is left, so the window follows the cycle’s current direction.
Past years, filtered by the cycle
For each past year, the model’s cycle lengths are refitted on prices from before that year’s entry. The Cycle aligned column counts only the years when that fit pointed the same way, with win rate, returns and compounded equity beside the full record.
One click to the full seasonality
Open Seasonality takes the same window to the Seasonality Analyser, with its year-by-year trades, equity curve and regime.
Part of the Pro plan

Trade Filter Comparison

BLDR · Long · 10 years

MetricAll tradesCycle aligned
Trades104
Win Rate30%75%
Avg Return-1.46%+0.72%
Total Return-14.63%+2.87%
Compounded Equity$861$1,029
Max Win+2.21%+2.21%
Max Loss-5.52%-1.06%

Cycle filter method · Current cycle, historical refits · 10/10 entries covered

BLDR on October 9, 2026: a seasonal long window with 10 trades over the last 10 years. Four trades is a small sample, where one year moves the win rate by 25 points, and the cycle lengths come from today’s model, so the comparison is retrospective, not a forecast. The filter does not improve every window.

How it works

  1. Step 01

    Pick a symbol

    Open a symbol from the Price Cycle Screener or choose one in the app’s symbol search. The analyser loads its saved cycle model; nothing is recalculated when you open it.

  2. Step 02

    Choose a result

    Highest return opens by default, and Best with ≥5 trades is a click away when the symbol has one. Each shows its net return, trades and drawdown, and the settings of its model.

  3. Step 03

    Read the chart

    Price, the fitted cycle and its projection sit above the cycle oscillator. Arrows mark the fill that opened today’s position and the next projected fill, and dots on the oscillator mark every qualifying turn.

  4. Step 04

    Check the record

    The trade list shows every trade in the test period and the next projected signal. The search and validation details show how many settings were checked and how the model did in three earlier windows.

What you’ll see

The analyser shows one saved cycle model for one symbol: how it was fitted, where it projects next and how it traded. These are the panels and what they mean.

Result and model settings
Highest return or Best with ≥5 trades, each with its net return, trades and drawdown over the test period. Below them sit the model’s settings: the history it was fitted on, the candidate pool, the minimum cycle length, the oscillator thresholds and the cost per side.
Training cutoff and test period
The training cutoff is the last price bar the cycles were fitted on. After it the model is frozen: the grey test period shows the prices the results and trades cover, and the dashed cycle carries on past the last price.
Selected cycles
The cycle lengths in the model, in bars. Pick one to draw that cycle on its own over the price chart, on the combined cycle’s scale, so its size shows how much it contributes.
Cycle oscillator
The composite cycle on a 0 to 100 scale with the model’s long and short thresholds. A trough at or below the long threshold opens a long and a crest at or above the short threshold opens a short; dots mark each qualifying turn.
Arrows on the price chart
They mark the fill that opened the current position and the next projected fill. Cover / Buy exits a short and goes long; Sell / Short exits a long and goes short.
Cycle spectrum and active cycles
The spectrum plots how strongly each cycle length appears in the prices up to the training cutoff, with the model’s lengths marked. Active cycles lists each one’s fitted size and Bartels score, a measure of how regular the cycle has been, not of future profit.
Trade list and next signal
Every trade in the test period with its entry and exit dates, prices and return, the trade count and win rate, and the next projected signal with its direction and date.
Search and validation details
How many settings the search checked, how the shown result was chosen, and the rolling validation: how each cycle count did in the three three-month windows before the final test.
Preview seasonality
A button that opens the symbol’s seasonal curve in a side panel, with a window from today to the next seasonal peak or trough in the direction of the current cycle position, and a table comparing that window’s past trades with those the cycle agreed with at entry.

How the numbers are calculated

The analyser reads one saved calculation per symbol. The chart, the oscillator, the statistics and the trades all come from it, and nothing is refitted when the page opens.

Fitting the cycles

Daily closes up to the training cutoff are detrended and scanned for their strongest cycle lengths. The strongest single cycles form a candidate pool, and combinations of up to six are fitted jointly as sine waves and ranked on the year before the cutoff. No price after the cutoff shapes the fit.

Turning a cycle into trades

The composite cycle is scaled to a 0 to 100 oscillator. A trough at or below the long threshold, or a crest at or above the short threshold, is confirmed at the next close and traded at the following open, reversing any open position. Each trade uses the whole account without leverage, with 5 bps costs per side and no borrow costs or dividends.

Projection and next entry

The fitted cycle is projected 120 trading days past the last saved price, and the next entry is the first qualifying turn in that projection, found with the same rules as past trades. Projected dates do not allow for exchange holidays, and the projection shows timing, not a price target.

How the shown results are chosen

Each symbol’s search checks 5,000 settings, and Highest return and Best with ≥5 trades are picked by their net return in the nine-month test. The cycles were not fitted on those prices, but picking the best of many settings by their results flatters them. The figures describe a historical search, not an expected return.

Newer prices and refresh

Models are recalculated each January from prices through December 31; until the first annual run, the latest saved run is shown as a historical result. Daily closes added since then continue the price line on the chart but never refit the model or change its results, trades or projection.

Seasonality and the cycle

The seasonality comparison keeps the cycle lengths of the saved model and refits them before each past seasonal entry, on prices from before that entry only. A year counts as Cycle aligned when the refitted model held a long position at entry for a long window, or a short one for a short window. The seasonal entry and exit dates and returns are unchanged. The lengths were chosen with today’s data, so the comparison is retrospective, and with one trade a year the samples are small.

Which plans include Price Cycle Analyser

14-day money-back guarantee. Cancel anytime.

Compare every tool by plan

Questions about Price Cycle Analyser

What does the Price Cycle Analyser show?

One symbol’s saved cycle model: the cycles fitted to its daily prices, the composite cycle and its projection on the price chart, the 0 to 100 cycle oscillator, the cycle spectrum and every trade the model made in its nine-month test period, after costs.

Can I try the Price Cycle Analyser for free?

Yes. The full analyser for E-mini S&P 500 futures (ES=F) is open to everyone, with no account, and so is Apple (AAPL). Every other symbol is part of the Pro plan.

Does the analyser recalculate when I open a symbol?

No. It reads the model saved by the latest run, so the chart, the statistics and the trades are the same for everyone and do not change between visits. Newer daily closes are drawn on the chart without refitting anything.

Is the projected cycle a price forecast?

No. The dashed cycle shows when the fitted rhythm would turn, not how far the price will move, and it holds only as long as the past rhythm keeps repeating. The projected entry dates do not allow for exchange holidays.

What is the Bartels score in the Price Cycle Analyser?

A statistical test of how regularly a cycle has repeated in the price history before the training cutoff. A high score means a steady rhythm in the past; it says nothing directly about future profit.

Why do Highest return and Best with ≥5 trades differ?

Highest return is the setting with the best net return in the test period. Best with ≥5 trades also needs at least five trades, a positive return and positive earlier validation, so it rests on more trades. Both were picked by their results in that period, so treat them as a historical search.

Can I see how the price cycle affects a seasonal pattern?

Yes, with the Pro plan. Preview seasonality follows today’s cycle position to the next seasonal peak or trough and compares how those calendar days went in past years: all trades against only those where the cycle, refitted before each entry, pointed the same way. The cycle lengths come from today’s model, so the comparison is retrospective.

Try Price Cycle Analyser

Create your account and start researching.

Get started

All statistics are historical and for research purposes. Past performance does not indicate future results.