S&P 500 stocks: buy the close after a weak day (low IBS) in an uptrend
Each day, buy S&P 500 stocks that closed near the bottom of their daily range while still above their 200-day average, and sell on the first strong close.
What they did
SetupAlpha tested S&P 500 members including delisted stocks (to avoid survivorship bias), price above $5, from 2000 to September 2026. Buy at the close when the Internal Bar Strength, (close − low) / (high − low), is below 0.2 and the stock is above its 200-day moving average. Sell on a close above yesterday's high, or after 5 days. Up to 10 positions at 10% each, IBKR commissions plus 5 basis points of slippage per side, dividends included.
How it went
Per the author: the full results are only in the post's image. The author's one text claim: 'Every stop I tried lowered the return.'
Sources:
Worth knowing
- We could only verify the rules, not the numbers, because the results are in an image.
- 'No stop' works in a backtest of an index universe. A single stock can still gap down hard, so keep a position size you can live with.
- Buying at the close needs a market-on-close order or a bot that trades just before 4:00 PM.
- Mean-reversion dip buying usually has many small wins and occasional big losses.
The prompt
Universe: current [S&P 500] members with price > $[5].
At [3:50 PM ET] each trading day, for each stock compute IBS = (last − day's low) / (day's high − day's low).
Candidates: IBS < [0.2] AND price above its [200]-day SMA.
If I have fewer than [10] open positions, propose buying the lowest-IBS candidates at the close, each sized at [10]% of my paper account, until I'm full.
Exits, checked at each close: sell if the close is above the previous day's high, OR the position has been held [5] trading days.
Optional disaster stop: [none / 15% below entry]. Track results with and without it.
Daily log: candidates, IBS values, fills, exits and P/L after $[0.005]/share plus [5] bps slippage per side.
SAFETY DEFAULTS (keep unless you deliberately change them):
- Use the PAPER trading account only. Never touch a live account.
- Before every order, show me: symbol, side, size, order type, limit price, stop, and the rule that triggered it. Then WAIT for my "approve".
- Hard limits: max [$500] per trade, max [3] open positions, stop all trading for the day after a loss of [$300].
- Log every signal, decision and fill to [a running log / spreadsheet] with timestamps.To go fully autonomous: (1) run on paper for at least [4–8 weeks] or [30+ trades]; (2) delete the 'WAIT for my approve' line and keep the hard limits; (3) switch to live keys or account. On Robinhood, turn off trade approvals in your agent settings, but note that some orders can still require in-app approval or acknowledging a pre-trade alert, so unattended execution isn't guaranteed for every order. On IBKR, standard AI Integration asks for approval on every order. Its new Autonomous Trading mode (eligible individual non-margin accounts, after 10 approved trades) lets the AI trade a funded AI Partition without per-order approval. Never remove the daily loss limit.