Advantage Analysis Strategy brief · Research stage · October 2026

Intraday equity index · SPDR S&P 500 ETF (SPY)

SPY Averaging Ladder

An automated intraday strategy that buys SPY in small, equal lots on a 0.05% price grid that widens as the day moves, and sells lots in pairs as soon as a pair clears 0.10% after commissions. It aims to earn from the normal back-and-forth of the index during the session, not from its direction.

Instrument
SPY US-listed, highly liquid ETF
Execution
Interactive Brokers Automated, API-connected
Grid step
0.05% base +0.01% per 0.1% from the day open
Lot size
10 shares One lot per price level
Profit target
+0.10% Per pair of lots, after costs
Daily buy limit
30 lots Up to 300 shares, about $231k
Holding period
Minutes to hours Intraday by design
Session
04:00 – 16:00 ET Premarket and regular hours
§ 1

In brief

The ladder buys SPY at many nearby prices during the session and sells the cheapest lots as soon as the market lets them clear a small, fixed gain. Each buy is small. The strategy relies on SPY moving back and forth more often than it moves in one direction.

  • Over 445 backtested sessions, from 2 January 2025 to 12 October 2026, the profit-taking engine realised +$54,062 after commissions. It was positive in every one of the 22 months.
  • The loss is concentrated. On the 25% of sessions where SPY's range from 04:00 to the close exceeded 1.5%, the ladder lost −$19,057. The remaining 75% of sessions made +$10,161.
  • The latest changes reduced the loss but did not remove it. Trading from 04:00 and widening the step as the day moves improved the net result from −$13,232 (regular hours, fixed step) to −$8,896. Widening the step also halved the sessions that used all 30 lots, from 43% to 21%.
  • The current settings were chosen on 2 October 2026 using data up to 1 September. Over the 28 sessions since, which played no part in choosing them, the ladder took +$2,421 in profit and finished −$200 net, in line with the earlier results.
  • The strategy is in research. Current work focuses on standing aside, or holding fewer shares, on trending days before any capital is committed.
§ 2

How it works

The same six rules run on every price update. They are applied in this order, and the live system and the backtest use the same code.

  1. 01

    Set the day open and reference

    At startup the system loads the one-minute bars since midnight New York time. The first bar's open, normally 04:00 premarket, is the day open. The first live quote becomes the reference. The previous day's close is never used.

  2. 02

    Step the grid

    Whenever the price moves one step from the reference, up or down, the reference moves to the new price and a 10-share buy is triggered. The step is 0.05%, plus 0.01% for every 0.1% SPY has moved from the day open in either direction.

  3. 03

    Hold one lot per level

    A buy is skipped if a lot is already held within one step of the price. Selling a lot frees its level. No more than 30 buys are placed per session.

  4. 04

    Sell in pairs

    The two cheapest lots are sold together once the pair shows at least +0.10% on its cost after all four commissions: two buys and two sells.

  5. 05

    Sell only at the floor or better

    Every sell is a limit order at the lowest price that still meets the target, so a stale quote cannot turn a planned gain into a loss.

  6. 06

    Pause, then resume

    After a sale the system waits 10 seconds before buying again, so it does not immediately buy back the level it just sold.

§ 3

Worked example

SPY's day open, the 04:00 premarket bar, was $699.50, and it is now trading at $700.00. Every price below stays within 0.1% of the day open, so the step stays at its base of 0.05%, which is $0.35 at this price. Commission follows the Interactive Brokers fixed tier: $0.005 per share with a $1.00 minimum, so each 10-share order costs $1.00.

StepSPYWhat the ladder doesLots held
1700.00Reference set—
2699.65BuyDown one step. Lot A, 10 sharesA 699.65
3699.30BuyDown one step. Lot BA · B 699.30
4698.95BuyDown one step. Lot CA · B · C 698.95
5699.30SkipUp one step, but B already holds this levelA · B · C
6699.65SkipUp one step, but A already holds this levelA · B · C
7700.00BuyUp one step to an empty level. Lot DA · B · C · D 700.00
8700.03SellCheapest pair C + B clears +0.10% after costs. Limit sell of 20 shares at 700.03A · D
Pair cost$13,982.50
Sale proceeds$14,000.60
Commissions−$4.00
Net gain+$14.10 · +0.10%

At $700.00 the pair would have made only +0.097% after costs, so the ladder waits for $700.03. Lots A and D stay open and follow the same rule as a pair. The four $1.00 minimum commissions use up almost a third of the target on a trade this size, which is why the target is always measured after costs. Had SPY been 0.1% or more from its day open, the step would have been 0.06%, and buys would have come $0.42 apart rather than $0.35.

§ 4

Backtest results

Premarket and regular hours, from 04:00 New York time to the regular close, 2 January 2025 to 12 October 2026. Settings as in the term sheet above, including the widening step. Each session starts with no position, and any lots unsold at the close are valued at the closing price.

Sessions tested
4452 Jan 2025 – 12 Oct 2026
Profit taken
+$54,062After $14,886 in commissions
Positive sessions
67.4%300 of 445
Largest drawdown
−$10,215Peak to trough, cumulative net

Cumulative profit taken and SPY close, by week

  • Profit taken, after commissions (left axis)
  • SPY close (right axis)
Show the monthly figures
MonthSessionsProfit takenHeld at closeNet

Results by intraday range

Intraday range is the session's high minus its low from 04:00 to the close, as a percentage of the close. The median session moved 1.05%.

Intraday rangeSessionsSharePositiveAvg profit takenAvg held at closeAvg netTotal net
Up to 0.75%11425.6%71.9%+$56−$35+$22+$2,461
0.75 – 1.0%9521.3%70.5%+$95−$72+$23+$2,143
1.0 – 1.5%12427.9%72.6%+$146−$102+$45+$5,557
1.5 – 2.0%5512.4%54.5%+$162−$255−$93−$5,128
Above 2.0%5712.8%54.4%+$204−$448−$244−$13,929
All sessions445100%67.4%+$122−$142−$20−$8,896

Configurations tested

SessionStepAvg buysLimit reachedProfit takenNetLargest drawdown
Regular hoursFixed 0.05%20.131%+$51,577−$13,232−$14,282
Regular hoursWiden 0.01%, both ways14.89%+$37,838−$10,344−$10,815
Regular hoursWiden 0.01%, down only17.418%+$44,340−$10,886−$11,545
04:00 – closeFixed 0.05%23.143%+$65,354−$9,337−$12,151
04:00 – closeWiden 0.01%, both ways Current19.021%+$54,062−$8,896−$10,215
04:00 – closeWiden 0.005%, both ways21.031%+$59,377−$8,541−$10,448
04:00 – closeWiden 0.01%, down only21.229%+$59,032−$9,482−$10,289
04:00 – closeWiden 0.005%, down only22.235%+$62,253−$9,135−$10,787

All rows cover the same 445 sessions with 10-share lots, a 30-lot limit and a +0.10% pair target. "Widen 0.01%" adds 0.01% to the step for every 0.1% SPY moves from its day open; "down only" widens only while SPY is below it. "Limit reached" is the share of sessions in which all 30 lots were bought. Trading from 04:00 adds profit taken without a matching rise in losses at the close. From 04:00, widening the step mainly reduces risk: it lowers the worst sessions and the drawdown and holds fewer lots on trending days, while improving the net result by up to $800. The 0.005% setting has the best net result, but the margin over 0.01% is under $1 per session, too small to tell apart from chance.

§ 5

Reading the results

+$125

Average session when SPY closes at or above its 04:00 price

239 sessions. Prices come back through the grid, pairs keep clearing, and few lots are left at the close.

−$188

Average session when SPY closes below its 04:00 price

206 sessions. The ladder keeps buying into the decline. The widening step spaces those buys further apart, but most of them are still held at the close.

The profit-taking side works as designed. It adds to the total at a steady pace in quiet and volatile sessions alike, and it earns more on wider-range days because more pairs clear. The loss comes from the lots that never recover during the session. Five sessions account for −$9,321 of the net result. The largest was 20 November 2025, when SPY fell from $670.98 at 04:00 to $652.53 at the close and the day ended −$2,354. With a fixed step, that session lost −$3,509 in regular hours alone.

The widening step is a first answer to the trending-day problem. Spacing buys further apart as the day moves cut the worst session by about a third and halved the sessions that used all 30 lots, but it did not make the result positive. Research is now focused on three questions. First, whether early signs of a trending session, such as range or opening direction, can switch the ladder off or reduce the lot limit. Second, how to size the lot limit relative to the day's volatility. Third, what happens when unsold lots are carried into the next session. The live system carries them and sells only above the account's average cost, while the backtest values them at the close. Sections 6 and 7 describe the modelling tools and the news signals for these questions. This brief will be updated as results come in.

§ 6

Monte Carlo and Markov chains

A backtest follows one price history. Two standard quantitative tools can show how much the result depends on that history. They can also show whether the sessions that cause the losses can be spotted early enough to act. The figures below come from the 445 backtested sessions of the current setup. They show what each tool can do, not a finished model.

Markov chain: do volatile sessions cluster?

Each session is classed as calm, normal or volatile by its intraday range. A Markov chain estimates the probability of each class tomorrow given the class today. In the table, each row is the previous session and the shading shows probability.

Previous sessionNext calm
≤ 1.0%
Next normal
1.0 – 1.5%
Next volatile
> 1.5%
Avg net
next session
Calm63.9%13325.0%5211.1%23−$30
Normal43.5%5432.3%4024.2%30−$37
Volatile19.6%2228.6%3251.8%58+$20
4.7×

Volatility clusters

A volatile session is followed by another 52% of the time, compared with 11% after a calm one. Regimes persist, which is what a Markov model is built to capture.

36 of 54

Most volatile spells last one day

Sessions after a volatile day made +$20 on average, better than sessions after a calm day. Most volatile spells are single days that arrive after calmer ones, so yesterday's class alone does not flag the losing days.

The useful signal therefore has to come from within the session. Possible uses under study:

  • Intraday regime detection

    A hidden Markov model on one-minute returns and the running range would estimate, through the day, the probability that the session is trending. The ladder would stop buying or reduce its lot limit once that probability passes a threshold.

  • Regime-based lot limit

    The prior-day class, which does carry information about tomorrow's range, would set the starting lot limit: 30 after a calm day and fewer after a volatile one.

  • Grid as a Markov chain

    Each grid step is treated as a move up or down with probabilities estimated per regime. This gives the expected time to clear a pair and the probability of reaching the 30-lot limit, which can be checked against the backtest.

  • Regime-aware settings

    The step already widens as SPY moves away from its day open. A regime model could also set the base step, the widening rate and the profit target before the session starts, based on the expected regime.

Monte Carlo: how likely is the result?

Monte Carlo simulation builds many possible trading years and runs the strategy through each, so a setting is judged on a distribution of outcomes rather than one history. As a first pass, the backtested sessions were resampled into 20,000 simulated years of 252 sessions. Sessions were drawn in blocks of five, so volatile spells stay together.

Median year
−$4,863Current settings
Bad year, 5th percentile
−$12,5891 year in 20 is worse
Good year, 95th percentile
+$2,1571 year in 20 is better
Years with a loss
87.0%Of 20,000 simulated
Median drawdown
−$7,230Peak to trough within a year
Deep drawdown, 5th pct.
−$13,974Guide for capital buffers

With the current settings the loss is not bad luck in the test period. It appears in about seven of every eight simulated years. Any change to the strategy has to move this whole distribution, not just improve the one historical path. The simulation can go further in three ways:

  • Synthetic price paths

    One-minute SPY paths would be generated from the regime model above, and the strategy's code would run on them, so settings are tested on many more sessions than history provides.

  • Parameter robustness

    Grid step, target and lot limit would be compared by their full outcome distributions. This favours settings that hold up across paths over settings that fit one history.

  • Stress tests

    Extra trend days, gap opens, and spread and slippage costs would be added to measure how far results worsen outside the backtest's assumptions.

  • Capital and sizing

    The drawdown distribution would set the capital held against the 300-share maximum position and the point at which trading is suspended.

How the two fit together

  1. 01

    Estimate regimes

    A Markov model is fitted to one-minute SPY data, with transition probabilities between calm, normal and trending states.

  2. 02

    Simulate sessions

    Monte Carlo generates thousands of price paths that switch between those states with realistic frequency and persistence.

  3. 03

    Run the strategy

    The same code that trades live runs on every path, with and without the regime filter, under the same costs.

  4. 04

    Compare distributions

    A change is adopted only if it improves the median year and the bad-year and drawdown tails together.

§ 7

AI sentiment analysis

The sessions that cost the ladder money are usually trending sessions, and trends are often started by news: an inflation print, a Federal Reserve decision, or results from one of the index's largest companies. Price-based models, including the Markov model in section 6, detect a trend only after it has begun. Language models can read news and official text as it is published and score its tone and relevance. That could give an earlier warning, or one that does not depend on price. This section describes how sentiment could be used. It has not yet been tested.

What would be read

SourceWhat the model extractsWhen it is available
Economic calendarScheduled releases (CPI, payrolls, FOMC), and how far the actual figure differs from consensusKnown in advance; surprise at release
News headlines and wire storiesDirection and strength of tone, relevance to the US index as a whole, and whether a story is new or a repeatContinuously, within seconds
Central bank communicationHawkish or dovish tone of statements, press conferences and speeches, compared with the previous messageAt scheduled times
Earnings of the largest index membersTone of results, guidance and call commentary for the companies with the most weight in the S&P 500Mostly before the open or after the close
Overnight and pre-market newsA single score for how unsettled the news backdrop is before the session opensBefore 04:00 ET, and through the premarket

How it could steer the ladder

  • Pre-session gate

    The overnight score and the day's event calendar would set the starting lot limit. The ladder would trade with fewer lots, or not at all, on sessions with major releases or an unusually negative news backdrop.

  • Intraday brake

    A sharp shift in headline tone during the session would pause new buys. Buying would resume after a set period without further shifts. Existing lots would still be sold at their normal targets.

  • Direction bias

    The ladder can already be set to buy on dips only, on rallies only, or both. Strongly negative news could switch it to rallies only, so that it stops buying into a news-driven decline.

  • Input to the regime model

    Sentiment scores would be added as an input to the Markov model in section 6. The probability of moving into a trending state would then depend on the news as well as on price.

How it would be tested

  1. 01

    Build a timed archive

    Headlines, releases and transcripts would be collected for every backtested session, each stamped with the minute it was first published.

  2. 02

    Score without hindsight

    Each item would be scored using only text available at that minute, with a fixed model version so scores can be reproduced.

  3. 03

    Test the signal

    Scores would be checked against each session's range and direction, and in particular against the sessions with a range above 1.5%.

  4. 04

    Test the strategy

    The ladder would run with the sentiment rules through the backtest and the Monte Carlo simulation. A rule is adopted only if the whole distribution improves.

Limits

  • Look-ahead bias. A language model trained on data after a test date may already know what happened. Backtests would use models whose training data ends before the period being tested, or keep the most recent period for testing only.
  • False alarms have a cost. Sessions up to a 1.5% range, 75% of the total, made money. A gate that closes too often would give up that profit to avoid the losing days.
  • Speed. Markets react to headlines in seconds. The ladder works on minutes, so sentiment is better suited to limiting risk than to trading on the news itself.
  • Data and model dependence. News feeds and model access add running costs and outside dependencies. Their output can also change when a vendor updates a model, which is why model versions would be fixed.
§ 8

Risk controls

  • Daily buy limit

    No more than 30 buys per session. This caps what can be held at 300 shares.

  • Sell floor

    Every sale is a limit order at or above the price that meets the target after commissions. No sale is sent at a price below it.

  • Average-cost guard

    Sales are also held above the account's average cost for the whole position, so the broker never records a sale as a realised loss.

  • Stale-price guard

    The system does not trade on the previous close. If only delayed data is available, it warns the operator, and its sell limits keep delayed quotes from causing losses.

  • Extended-hours orders

    Outside regular hours, buys are limit orders at the ask. Market orders are never used outside regular hours.

  • Startup reconciliation

    On restart, the system rebuilds its lots from seven days of executions and cancels any orders it did not place, so it does not act on an outdated position.

  • Widening step

    As SPY moves away from its day open, buys are spaced further apart. On a trending day the 30 lots cover a wider price range, and fewer of them are bought.

  • Day-open fallback

    If the bars since midnight are not available, the first live price of the day becomes the day open. The day open resets at midnight New York time.

§ 9

Method and disclosures

The backtest replays one-minute SPY bars from Interactive Brokers through the same strategy code that runs live, from 04:00 New York time to the regular close (13:00 on early-close days). The day open is the open of the first bar after midnight, which was the 04:00 bar on every tested day but one. Only the broker is simulated. A market order fills in full at the close of the bar that triggered it, and a limit order fills at its limit price. Commissions follow the Interactive Brokers fixed US tier: $0.005 per share, a $1.00 minimum per order, and a cap of 1% of trade value.

The bid-ask spread, slippage and queue position are not modelled, so the fills above are more favourable than live trading would give. Each session starts with no position, and any lots still held at the close are valued at the closing price. The largest amount held at the close in any session was $112,485. The average was $30,166.

Session classes in section 6 use the range from 04:00 to the close: calm up to 1.0%, normal 1.0–1.5%, volatile above 1.5%. The transition table counts 444 consecutive session pairs. The Monte Carlo figures resample the 445 daily net results in blocks of five consecutive sessions, 20,000 simulated years of 252 sessions each. They inherit every assumption of the backtest above.

All figures are hypothetical backtest results. They do not reflect actual trading and do not include financing costs or taxes. Past performance, simulated or actual, does not guarantee future results. This brief is for information only and is not an offer to sell, or a solicitation of an offer to buy, any security or investment service.