BACKTEST RESULTS

Opening range breakout strategy backtest results

SPY 5-minute data, 2024 to 2026: the 09:30–10:00 range, out by 15:55 rule, long and short, lost 52.4% after costs over 597 trades, winning 35.7% of them, against +44.4% for holding SPY. Long only it lost 36.7%. The least bad of 6 runs was 09:30–10:00 range, out by 15:55 on QQQ, long only: -28.4%, held-out did not survive. Every run, every trade and the script are on this page.

SPY · 5-minute data · 09:30–10:00 range, out by 15:55 · long and short
Net after costs
-52.3%
Holding SPY
+44.4%
Trades
597
Win rate
35.7%
Profit factor
0.63
Max drawdown
54.1%
Held out, last third: did not survive
Long only: -36.7% on 414 trades, held-out did not survive
4 June 2024 to 23 October 2026
  • Checked 25 October 2026
  • Alpaca 5-minute data from the last 600 sessions, and 1-minute data from the last 120 sessions
  • 0.05% commission + 0.025% slippage per fill
  • last third of the history held out
  • 6 runs, 2712 trades
  • Updated 1 November 2026

The short answer

Answers here: Does the opening range breakout work? · 15 or 30 minutes? · What is the win rate?

SPY 5-minute data, 4 June 2024 to 23 October 2026, long and short: 597 trades, lost 52.4% after costs, 35.7% of trades won, profit factor 0.63, worst drawdown 54.1%, 65% of the time in the market. Holding SPY returned +44.4% over the same period.

Held out on its own, the last third (8 January 2026 to 23 October 2026) lost 25.3% on 198 trades: it did not survive its held-out period.

Long only, the same rule lost 36.7% on 414 trades (38.2% won, profit factor 0.65, held-out did not survive): the short side cost 15.6 points of return in a period when SPY rose 44.4%.

597 trades in 2.4 years is about 251 a year; at 0.15% a round trip, costs alone came to roughly 90% of the account over the period. On minute charts the cost of trading is the first thing a rule has to beat, before any indicator.

Across all 6 runs on this page, 0 made money after costs, 0 survived the held-out third, and 0 beat holding the symbol (1 had too few trades to judge).

The least bad run was 09:30–10:00 range, out by 15:55 on QQQ, long only: -28.4% net on 394 trades, profit factor 0.79, worst drawdown 31.9%, held-out did not survive. The tester's verdict on it reads "lost money on this data".

One symbol's past after modelled costs is not a forecast. Prices are split-adjusted and not dividend-adjusted, so every return here is a price return; the period is the last two and a half years of sessions, one market regime, and a rule tested on it can look different in the next one. These are research results, not investment advice.

What the script does

Opening Range Breakout Strategy, from the strategy library.

The high and low of the first 30 minutes of the session (09:30 to 10:00 New York) set the range; a close above the range goes long, a close below it goes short, and every trade is closed by 15:55. A 15-minute range was run as well. The data comes from the last 600 sessions for 5-minute runs and the last 120 for 1-minute runs.

The indicator itself, with its Pine code drawn on real market data: Opening Range Breakout.

The numbers, run by run

Net and holding the symbol are after costs over the same period. Held-out is the verdict on the last third of the history judged alone: survived, decayed, did not survive, or too few trades to judge.

SymbolTimeframeSettingsDirectionTradesWin rateNetHoldingProfit factorMax drawdownHeld-out
SPY5-minute09:30–10:00 range, out by 15:55long and short59735.7%-52.3%+44.4%0.6354.1%did not survive
QQQ5-minute09:30–10:00 range, out by 15:55long and short59038.8%-51.1%+55.8%0.7457.1%did not survive
SPY5-minute09:30–09:45 range, out by 15:55long and short59930.7%-54.4%+44.4%0.6054.6%did not survive
SPY1-minute09:30–10:00 range, out by 15:55long and short11830.5%-19.6%+5.2%0.3220.3%did not survive
SPY5-minute09:30–10:00 range, out by 15:55long only41438.2%-36.7%+44.4%0.6537.6%did not survive
QQQ5-minute09:30–10:00 range, out by 15:55long only39445.7%-28.4%+55.8%0.7931.9%did not survive

Year by year

09:30–10:00 range, out by 15:55 on SPY, long and short, the same rule long only, and SPY itself, each calendar year after costs. A partial first or last year counts the sessions it has.

Year09:30–10:00 range, out by 15:55, long and short09:30–10:00 range, out by 15:55, long onlyHolding SPY
2024-13.0%-8.3%+11.4%
2025-25.0%-16.3%+16.0%
2026-26.0%-17.5%+11.0%

Every trade

The newest 400 of the 597 trades of 09:30–10:00 range, out by 15:55 on SPY, long and short, oldest first: side, entry and exit days, fill prices after slippage, and the return after both commissions. The other runs' trades open below.

SideInOutEntryExitReturn
long2025-03-202025-03-21568.30559.14-1.7%
long2025-03-212025-03-24561.62570.65+1.5%
long2025-03-242025-03-25573.17575.15+0.2%
long2025-03-252025-03-25575.95573.87-0.5%
short2025-03-262025-03-27572.79567.35+0.8%
long2025-03-272025-03-28568.66565.37-0.7%
short2025-03-282025-03-31563.58549.97+2.3%
long2025-03-312025-04-01551.53557.30+0.9%
short2025-04-012025-04-01555.40558.73-0.7%
long2025-04-022025-04-03560.66544.96-2.9%
short2025-04-032025-04-04543.10523.87+3.4%
short2025-04-042025-04-07518.28489.32+5.5%
long2025-04-072025-04-08513.98521.73+1.4%
long2025-04-082025-04-08524.24517.65-1.4%
short2025-04-092025-04-09493.09502.18-1.9%
short2025-04-102025-04-11527.52523.05+0.7%
short2025-04-112025-04-11520.66528.98-1.7%
short2025-04-142025-04-15538.50539.82-0.3%
short2025-04-152025-04-16538.87531.82+1.2%
long2025-04-162025-04-16534.59529.78-1.0%
short2025-04-172025-04-17525.90529.45-0.8%
short2025-04-212025-04-22516.67520.26-0.8%
long2025-04-222025-04-23523.15540.28+3.2%
short2025-04-232025-04-24538.45536.88+0.2%
long2025-04-242025-04-25539.83546.50+1.1%
short2025-04-252025-04-25544.45548.27-0.8%
short2025-04-282025-04-29549.36549.060.0%
long2025-04-292025-04-30552.33547.44-1.0%
long2025-04-302025-05-01547.95560.22+2.1%
long2025-05-012025-05-01561.90558.50-0.7%
long2025-05-022025-05-05566.45562.40-0.8%
long2025-05-052025-05-06563.62557.78-1.1%
long2025-05-062025-05-07560.11560.00-0.1%
long2025-05-072025-05-07561.78559.37-0.5%
short2025-05-082025-05-08563.31565.79-0.5%
short2025-05-092025-05-12565.60581.65-2.9%
short2025-05-122025-05-12578.12581.89-0.8%
long2025-05-132025-05-14585.88587.67+0.2%
short2025-05-142025-05-15585.98585.72-0.1%
long2025-05-152025-05-16586.97591.09+0.6%
short2025-05-162025-05-16589.27591.58-0.5%
long2025-05-192025-05-20592.17592.95+0.0%
long2025-05-202025-05-20593.90591.88-0.4%
long2025-05-212025-05-21590.74588.26-0.5%
long2025-05-222025-05-23584.83575.83-1.6%
long2025-05-232025-05-27578.42585.91+1.2%
long2025-05-272025-05-27586.95584.21-0.6%
short2025-05-282025-05-29590.30593.22-0.6%
short2025-05-292025-05-30588.94589.07-0.1%
long2025-05-302025-05-30589.38586.24-0.6%
short2025-06-022025-06-02585.72589.90-0.8%
long2025-06-032025-06-04593.58596.79+0.4%
short2025-06-042025-06-05596.50597.79-0.3%
long2025-06-052025-06-05598.54593.75-0.9%
short2025-06-062025-06-09597.83599.90-0.4%
long2025-06-092025-06-10600.22600.06-0.1%
long2025-06-102025-06-10601.39600.00-0.3%
long2025-06-112025-06-11604.68602.09-0.5%
long2025-06-122025-06-13601.62598.34-0.6%
short2025-06-132025-06-13597.64600.53-0.6%
long2025-06-162025-06-17603.61600.06-0.7%
long2025-06-172025-06-17601.32599.02-0.5%
long2025-06-182025-06-18599.76597.20-0.5%
short2025-06-202025-06-23596.86595.20+0.2%
long2025-06-232025-06-23597.48593.44-0.8%
long2025-06-242025-06-25605.82607.75+0.2%
short2025-06-252025-06-26607.15609.17-0.4%
long2025-06-262025-06-27609.63612.72+0.4%
long2025-06-272025-06-27615.27612.54-0.5%
short2025-06-302025-06-30615.73617.65-0.4%
long2025-07-012025-07-01617.99616.09-0.4%
long2025-07-022025-07-03617.84622.28+0.6%
long2025-07-032025-07-07625.01623.18-0.4%
short2025-07-072025-07-08622.59621.52+0.1%
short2025-07-082025-07-08620.37621.84-0.3%
short2025-07-092025-07-10622.39624.37-0.4%
long2025-07-102025-07-11624.99622.57-0.5%
long2025-07-112025-07-14623.75623.00-0.2%
long2025-07-142025-07-15623.70627.34+0.5%
short2025-07-152025-07-16625.33623.93+0.1%
short2025-07-162025-07-16621.73624.29-0.5%
long2025-07-172025-07-18626.61629.12+0.3%
short2025-07-182025-07-21628.26628.93-0.2%
long2025-07-212025-07-21631.05628.50-0.5%
long2025-07-222025-07-23629.39631.38+0.2%
long2025-07-232025-07-24631.97634.42+0.3%
long2025-07-242025-07-25635.58634.89-0.2%
long2025-07-252025-07-28635.88637.33+0.1%
long2025-07-282025-07-28638.13636.91-0.3%
short2025-07-292025-07-30637.03636.13+0.0%
long2025-07-302025-07-30636.73635.12-0.4%
short2025-07-312025-08-01637.09626.47+1.6%
short2025-08-012025-08-04620.88625.84-0.9%
long2025-08-042025-08-05629.58631.64+0.2%
short2025-08-052025-08-06630.53629.22+0.1%
long2025-08-062025-08-06630.47628.10-0.5%
short2025-08-072025-08-08634.75634.240.0%
long2025-08-082025-08-11636.52637.30+0.0%
long2025-08-112025-08-11638.12636.71-0.3%
long2025-08-122025-08-13640.40644.74+0.6%
short2025-08-132025-08-14644.08642.95+0.1%
long2025-08-142025-08-15644.66645.82+0.1%
short2025-08-152025-08-18643.50643.030.0%
long2025-08-182025-08-18644.01642.36-0.4%
long2025-08-192025-08-19644.26641.81-0.5%
short2025-08-202025-08-21634.20636.45-0.5%
long2025-08-212025-08-21636.92634.14-0.5%
long2025-08-222025-08-25643.10643.86+0.0%
long2025-08-252025-08-25644.61643.24-0.3%
long2025-08-262025-08-27643.34644.40+0.1%
long2025-08-272025-08-28645.83647.10+0.1%
long2025-08-282025-08-29648.32647.29-0.3%
short2025-08-292025-09-02644.43637.67+0.9%
long2025-09-022025-09-02639.62635.88-0.7%
short2025-09-032025-09-03641.45643.40-0.4%
short2025-09-042025-09-04643.91645.47-0.3%
short2025-09-052025-09-08650.33648.79+0.1%
short2025-09-082025-09-08647.74649.23-0.3%
short2025-09-092025-09-09647.45649.67-0.4%
long2025-09-102025-09-10654.31652.51-0.4%
long2025-09-112025-09-12655.88657.42+0.1%
long2025-09-122025-09-12658.34656.97-0.3%
long2025-09-152025-09-15660.99659.30-0.4%
short2025-09-162025-09-17659.86660.18-0.1%
short2025-09-172025-09-17659.38660.84-0.3%
long2025-09-182025-09-19662.92662.15-0.2%
short2025-09-192025-09-19661.11662.88-0.4%
long2025-09-222025-09-23663.86666.53+0.3%
short2025-09-232025-09-24666.28664.68+0.1%
short2025-09-242025-09-25662.00658.15+0.5%
long2025-09-252025-09-25658.18654.91-0.6%
short2025-09-262025-09-26658.65662.08-0.6%
long2025-09-292025-09-29665.27663.54-0.4%
short2025-09-302025-09-30661.59663.46-0.4%
long2025-10-012025-10-02665.71670.29+0.6%
short2025-10-022025-10-03668.43670.17-0.4%
long2025-10-032025-10-03671.82669.75-0.4%
short2025-10-062025-10-06669.42671.83-0.5%
short2025-10-072025-10-08671.63670.44+0.1%
long2025-10-082025-10-09671.47673.34+0.2%
short2025-10-092025-10-10671.36672.32-0.2%
short2025-10-102025-10-13668.95660.83+1.1%
long2025-10-132025-10-13663.21659.63-0.6%
long2025-10-142025-10-15657.73666.64+1.3%
long2025-10-152025-10-15669.13665.87-0.6%
short2025-10-162025-10-16665.64668.26-0.5%
long2025-10-172025-10-17663.31658.06-0.9%
long2025-10-202025-10-21669.90671.28+0.1%
long2025-10-212025-10-22672.26671.80-0.2%
short2025-10-222025-10-23670.26668.27+0.2%
long2025-10-232025-10-24671.20676.28+0.7%
long2025-10-242025-10-27677.99682.55+0.6%
long2025-10-272025-10-28683.54686.89+0.4%
long2025-10-282025-10-29687.45688.54+0.1%
short2025-10-292025-10-30687.94684.08+0.5%
short2025-10-302025-10-31680.84685.22-0.7%
short2025-10-312025-11-03682.44685.84-0.6%
short2025-11-032025-11-04681.93676.29+0.7%
long2025-11-042025-11-04679.18674.49-0.8%
long2025-11-052025-11-06677.83676.29-0.3%
short2025-11-062025-11-07672.41668.09+0.5%
short2025-11-072025-11-07664.06668.16-0.7%
short2025-11-102025-11-10676.72679.38-0.5%
short2025-11-112025-11-11678.73681.03-0.4%
short2025-11-122025-11-13682.90680.69+0.2%
short2025-11-132025-11-14677.06665.58+1.6%
long2025-11-142025-11-17669.96669.52-0.2%
short2025-11-172025-11-18668.49662.27+0.8%
short2025-11-182025-11-18656.88664.44-1.3%
long2025-11-192025-11-19666.33659.93-1.1%
long2025-11-202025-11-20675.47672.29-0.6%
short2025-11-212025-11-21652.92656.64-0.7%
long2025-11-242025-11-25666.12668.45+0.3%
long2025-11-252025-11-26670.61677.42+0.9%
long2025-11-262025-11-28679.74680.67+0.0%
long2025-11-282025-11-28682.17680.32-0.4%
long2025-12-012025-12-02682.24681.74-0.2%
long2025-12-022025-12-02683.22681.31-0.4%
long2025-12-032025-12-04682.39685.12+0.3%
short2025-12-042025-12-05682.49685.63-0.6%
long2025-12-052025-12-05687.80685.14-0.5%
short2025-12-082025-12-09684.75683.34+0.1%
long2025-12-092025-12-09684.74682.64-0.4%
long2025-12-102025-12-11683.80684.93+0.1%
long2025-12-112025-12-12686.62687.99+0.1%
short2025-12-122025-12-15686.52685.900.0%
short2025-12-152025-12-16681.31679.40+0.2%
short2025-12-162025-12-17677.13680.07-0.5%
short2025-12-172025-12-18676.77677.78-0.2%
long2025-12-182025-12-18679.19675.51-0.6%
long2025-12-192025-12-22680.30683.75+0.4%
short2025-12-222025-12-22682.71684.71-0.4%
long2025-12-232025-12-24686.51687.77+0.1%
long2025-12-242025-12-26689.05690.46+0.1%
short2025-12-262025-12-29690.07687.73+0.2%
short2025-12-292025-12-30686.93687.63-0.2%
short2025-12-302025-12-30686.63688.71-0.4%
short2025-12-312026-01-02684.96685.89-0.2%
short2026-01-022026-01-05683.68686.72-0.5%
long2026-01-052026-01-06688.10687.75-0.2%
long2026-01-062026-01-07690.37692.02+0.1%
short2026-01-072026-01-07691.44693.27-0.4%
long2026-01-082026-01-09689.98690.470.0%
short2026-01-092026-01-09689.44692.48-0.5%
long2026-01-122026-01-13694.10695.34+0.1%
short2026-01-132026-01-14693.61691.18+0.2%
short2026-01-142026-01-15688.08694.75-1.1%
long2026-01-152026-01-15695.00693.00-0.4%
short2026-01-162026-01-20691.43681.67+1.3%
short2026-01-202026-01-20680.93683.49-0.5%
long2026-01-212026-01-21682.94678.79-0.7%
short2026-01-222026-01-22687.14690.85-0.6%
long2026-01-232026-01-26689.47690.29+0.0%
long2026-01-262026-01-27693.28694.00+0.0%
long2026-01-272026-01-28695.72696.88+0.1%
short2026-01-282026-01-29696.43696.53-0.1%
short2026-01-292026-01-30690.21691.96-0.4%
short2026-01-302026-02-02690.90689.76+0.1%
long2026-02-022026-02-03694.68696.03+0.1%
short2026-02-032026-02-04692.69690.53+0.2%
short2026-02-042026-02-05687.10681.12+0.8%
short2026-02-052026-02-06676.68681.64-0.8%
long2026-02-062026-02-09687.08689.24+0.2%
long2026-02-092026-02-10691.97694.77+0.3%
long2026-02-102026-02-10696.39693.27-0.5%
short2026-02-112026-02-12693.52694.46-0.2%
short2026-02-122026-02-13691.79681.86+1.3%
long2026-02-132026-02-17684.28679.94-0.7%
short2026-02-172026-02-17675.94682.98-1.1%
long2026-02-182026-02-19687.77683.68-0.7%
short2026-02-192026-02-20682.24682.50-0.1%
long2026-02-202026-02-23687.12687.640.0%
short2026-02-232026-02-24685.10682.08+0.3%
long2026-02-242026-02-25686.50690.01+0.4%
long2026-02-252026-02-26692.39693.10+0.0%
short2026-02-262026-02-27690.16683.24+0.9%
long2026-02-272026-03-02684.90678.52-1.0%
long2026-03-022026-03-03684.44674.87-1.5%
short2026-03-032026-03-03670.88677.28-1.1%
long2026-03-042026-03-05684.64681.89-0.5%
short2026-03-052026-03-06680.86673.57+1.0%
long2026-03-062026-03-09674.31666.21-1.3%
long2026-03-092026-03-10668.30677.53+1.3%
short2026-03-102026-03-10674.73678.97-0.7%
short2026-03-112026-03-11675.34678.68-0.6%
short2026-03-122026-03-13667.88669.46-0.3%
short2026-03-132026-03-16668.67668.52-0.1%
long2026-03-162026-03-16671.17667.51-0.6%
short2026-03-172026-03-18671.64668.51+0.4%
short2026-03-182026-03-19666.98657.14+1.4%
long2026-03-192026-03-20659.53656.34-0.6%
short2026-03-202026-03-23652.75658.21-0.9%
long2026-03-232026-03-23661.35655.90-0.9%
long2026-03-242026-03-25653.59658.51+0.7%
short2026-03-252026-03-26654.98652.22+0.3%
short2026-03-262026-03-27650.19642.70+1.1%
short2026-03-272026-03-30638.15640.29-0.4%
short2026-03-302026-03-31634.37639.11-0.8%
long2026-03-312026-04-01645.04653.71+1.2%
long2026-04-012026-04-02656.36646.25-1.6%
long2026-04-022026-04-06650.46655.69+0.7%
long2026-04-062026-04-06658.84655.35-0.6%
short2026-04-072026-04-07653.33657.75-0.8%
short2026-04-082026-04-09673.56675.02-0.3%
short2026-04-092026-04-09674.24675.97-0.4%
long2026-04-102026-04-10682.13679.99-0.4%
long2026-04-132026-04-14679.91687.51+1.0%
long2026-04-142026-04-15690.55695.08+0.6%
long2026-04-152026-04-16696.82700.87+0.5%
long2026-04-162026-04-17701.61705.96+0.5%
long2026-04-172026-04-20709.05708.60-0.2%
short2026-04-202026-04-21707.92710.47-0.5%
long2026-04-212026-04-21711.22708.56-0.5%
long2026-04-222026-04-23709.72709.31-0.2%
long2026-04-232026-04-23711.67709.03-0.5%
long2026-04-242026-04-27711.36712.98+0.1%
short2026-04-272026-04-27712.37714.60-0.4%
short2026-04-282026-04-29709.89711.19-0.3%
long2026-04-292026-04-29711.56709.47-0.4%
long2026-04-302026-05-01715.49721.06+0.7%
long2026-05-012026-05-01724.55720.55-0.7%
long2026-05-042026-05-04721.17719.06-0.4%
long2026-05-052026-05-06723.37727.98+0.5%
long2026-05-062026-05-07730.28734.86+0.5%
long2026-05-072026-05-07735.38733.36-0.4%
long2026-05-082026-05-11736.93736.27-0.2%
long2026-05-112026-05-12739.67736.71-0.5%
short2026-05-122026-05-12733.85737.41-0.6%
long2026-05-132026-05-14738.85743.46+0.5%
long2026-05-142026-05-15746.27741.60-0.7%
long2026-05-152026-05-18742.30739.63-0.5%
short2026-05-182026-05-19737.23734.94+0.2%
short2026-05-192026-05-19732.71736.49-0.6%
long2026-05-202026-05-21737.49738.48+0.0%
long2026-05-212026-05-21740.59737.22-0.6%
short2026-05-222026-05-22745.35748.36-0.5%
long2026-05-262026-05-26751.52748.93-0.4%
short2026-05-272026-05-28748.95750.45-0.3%
long2026-05-282026-05-29750.83755.70+0.5%
short2026-05-292026-06-01754.92755.54-0.2%
long2026-06-012026-06-02757.25756.82-0.2%
long2026-06-022026-06-03757.98757.94-0.1%
short2026-06-032026-06-04753.92752.30+0.1%
long2026-06-042026-06-05754.39752.11-0.4%
short2026-06-052026-06-08748.11743.56+0.5%
long2026-06-082026-06-08745.18740.60-0.7%
short2026-06-092026-06-10741.35733.58+0.9%
long2026-06-102026-06-10737.35731.31-0.9%
short2026-06-112026-06-11725.38731.75-1.0%
long2026-06-122026-06-15741.83751.65+1.2%
long2026-06-152026-06-16754.40754.38-0.1%
short2026-06-162026-06-17753.79751.49+0.2%
long2026-06-172026-06-17752.31749.66-0.5%
short2026-06-222026-06-23747.29733.93+1.7%
long2026-06-232026-06-24738.21734.95-0.5%
long2026-06-242026-06-24738.51734.11-0.7%
long2026-06-262026-06-26732.39726.67-0.9%
short2026-06-292026-06-29734.89740.10-0.8%
long2026-06-302026-07-01744.72744.76-0.1%
long2026-07-012026-07-02745.62747.20+0.1%
short2026-07-022026-07-06746.69748.89-0.4%
long2026-07-062026-07-07749.87750.07-0.1%
short2026-07-072026-07-08746.81743.36+0.4%
short2026-07-082026-07-08742.07745.13-0.5%
long2026-07-092026-07-10749.70751.85+0.2%
short2026-07-102026-07-10750.78753.44-0.5%
short2026-07-132026-07-14751.31751.09-0.1%
long2026-07-142026-07-15752.24754.04+0.1%
short2026-07-152026-07-16752.88752.94-0.1%
long2026-07-162026-07-16754.07750.47-0.6%
long2026-07-172026-07-20745.52746.86+0.1%
short2026-07-202026-07-21745.14746.49-0.3%
long2026-07-212026-07-22747.05746.42-0.2%
long2026-07-222026-07-23749.17739.16-1.4%
short2026-07-232026-07-24737.97738.73-0.2%
long2026-07-242026-07-24740.79737.24-0.6%
short2026-07-272026-07-28740.77739.43+0.1%
long2026-07-282026-07-29740.77739.77-0.2%
short2026-07-292026-07-29735.22740.59-0.8%
long2026-07-302026-07-30738.88734.44-0.7%
short2026-07-312026-07-31740.10746.51-1.0%
long2026-08-032026-08-04754.09760.42+0.7%
long2026-08-042026-08-05764.08775.64+1.4%
short2026-08-052026-08-06773.72770.41+0.3%
long2026-08-062026-08-06771.73768.85-0.5%
short2026-08-072026-08-07770.20772.57-0.4%
long2026-08-102026-08-10773.88772.30-0.3%
short2026-08-112026-08-12772.25774.91-0.4%
short2026-08-122026-08-13771.74775.07-0.5%
long2026-08-132026-08-14778.43778.34-0.1%
short2026-08-142026-08-17777.33776.38+0.0%
short2026-08-172026-08-18774.87768.90+0.7%
short2026-08-182026-08-19767.58770.56-0.5%
long2026-08-192026-08-20771.36765.75-0.8%
short2026-08-202026-08-20765.24767.95-0.5%
long2026-08-212026-08-24766.45764.56-0.3%
long2026-08-242026-08-25765.15765.97+0.0%
short2026-08-252026-08-26765.26764.88-0.1%
short2026-08-262026-08-26763.95767.10-0.5%
long2026-08-272026-08-28770.42771.56+0.0%
short2026-08-282026-08-28770.79773.07-0.4%
short2026-08-312026-08-31764.81767.82-0.5%
long2026-09-012026-09-01763.12760.97-0.4%
long2026-09-022026-09-03763.94767.66+0.4%
short2026-09-032026-09-03767.63770.25-0.4%
short2026-09-042026-09-08771.33769.26+0.2%
short2026-09-082026-09-09766.21764.28+0.2%
short2026-09-092026-09-09762.84764.58-0.3%
long2026-09-102026-09-11759.58764.49+0.5%
short2026-09-112026-09-14763.84759.19+0.5%
long2026-09-142026-09-14761.07758.25-0.5%
short2026-09-152026-09-16758.30759.70-0.3%
long2026-09-162026-09-16760.72758.52-0.4%
short2026-09-172026-09-17760.02763.61-0.6%
short2026-09-182026-09-18758.88761.96-0.5%
long2026-09-212026-09-22767.99773.83+0.7%
short2026-09-222026-09-23773.33772.99-0.1%
short2026-09-232026-09-24769.81764.27+0.6%
long2026-09-242026-09-24766.17763.42-0.5%
short2026-09-252026-09-25767.39770.51-0.5%
short2026-09-282026-09-28766.24768.81-0.4%
short2026-09-292026-09-30764.32766.61-0.4%
long2026-09-302026-09-30768.79765.80-0.5%
short2026-10-012026-10-01759.88765.54-0.8%
long2026-10-022026-10-02772.54768.87-0.6%
long2026-10-052026-10-06772.01777.96+0.7%
long2026-10-062026-10-07780.22775.57-0.7%
short2026-10-072026-10-07773.69776.35-0.4%
long2026-10-082026-10-08776.01774.25-0.3%
long2026-10-092026-10-12777.27778.58+0.1%
short2026-10-122026-10-13777.53777.54-0.1%
short2026-10-132026-10-14776.80775.13+0.1%
short2026-10-142026-10-15772.83766.44+0.7%
long2026-10-152026-10-16767.73773.04+0.6%
short2026-10-162026-10-19770.69767.43+0.3%
long2026-10-192026-10-19768.55766.00-0.4%
long2026-10-202026-10-21768.94770.98+0.2%
short2026-10-212026-10-21768.65771.54-0.5%
short2026-10-222026-10-23764.22760.10+0.4%
long2026-10-232026-10-23761.83759.72-0.4%

The script

Pine v6, exactly as it ran for 09:30–10:00 range, out by 15:55 on SPY, long and short. The variants change only the inputs listed in the table.

//@version=6
strategy("Opening Range Breakout Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100000, commission_type=strategy.commission.percent, commission_value=0.05, slippage=1, margin_long=0, margin_short=0)

sess       = input.session("0930-1000", "Opening window (exchange time)", group="Session")
exitHour   = input.int(15, "Flat at hour (exchange time)", minval=0, maxval=23, group="Session")
exitMinute = input.int(55, "Flat at minute", minval=0, maxval=59, group="Session")
useLong    = input.bool(true, "Trade longs", group="Direction")
useShort   = input.bool(true, "Trade shorts", group="Direction")

// the window and the exit run on the exchange clock, never GMT
inWindow = not na(time(timeframe.period, sess, syminfo.timezone))
newDay   = timeframe.change("D")
flatTime = hour == exitHour and minute >= exitMinute

var float orHigh = na
var float orLow  = na
var bool  traded = false
if newDay
    orHigh := na
    orLow  := na
    traded := false
if inWindow
    orHigh := na(orHigh) ? high : math.max(orHigh, high)
    orLow  := na(orLow) ? low : math.min(orLow, low)

rangeSet = not inWindow and not na(orHigh) and not flatTime
longSig  = rangeSet and not traded and close > orHigh and barstate.isconfirmed
shortSig = rangeSet and not traded and close < orLow and barstate.isconfirmed

plot(rangeSet ? orHigh : na, "Opening range high", color=color.new(#16A56A, 0), linewidth=1, style=plot.style_linebr)
plot(rangeSet ? orLow : na, "Opening range low", color=color.new(#E5484D, 0), linewidth=1, style=plot.style_linebr)
bgcolor(inWindow ? color.new(#E3A008, 92) : na, title="Opening window")

if longSig and useLong
    strategy.entry("Long", strategy.long)
    strategy.exit("Long stop", "Long", stop=orLow)
    traded := true
if shortSig and useShort
    strategy.entry("Short", strategy.short)
    strategy.exit("Short stop", "Short", stop=orHigh)
    traded := true
if flatTime and barstate.isconfirmed
    strategy.close_all()

How it was tested

Alpaca 5-minute data from the last 600 sessions, and 1-minute data from the last 120 sessions, 0.05% commission and 0.025% slippage on every fill, the last third of the history held out, textbook settings and nothing tuned. The engine, fills and what it does not model are written out once, in data and methodology.

Run the Opening range breakout strategy on your own symbol, free

Describe the rule in your own words or paste the script. The Free plan writes the Pine v6 script with the AI, runs it on any US stock or ETF with the same costs and the same held-out check, and shows every trade on the chart. No card.

Every strategy tested

Seventeen popular rules through the same engine, the same costs and the same held-out check, with every trade listed. Next: VWAP strategy, Time-of-day strategy, Donchian breakout (turtle) strategy.

Questions

Does the Opening range breakout strategy work?

SPY, 5-minute data, 2024 to 2026, long and short: 09:30–10:00 range, out by 15:55 lost 52.4% after costs over 597 trades (35.7% won, profit factor 0.63) against +44.4% for holding SPY, and the held-out third did not survive. Long only it lost 36.7%. Across all 6 runs on the page, 0 made money after costs, 0 survived their held-out third and 0 beat holding the stock.

What is the win rate of the Opening range breakout strategy?

From 30.5% to 45.7% across the 6 runs. The classic setting, 09:30–10:00 range, out by 15:55 on SPY long and short, won 35.7% of 597 trades. The win rate alone does not decide the result: that run's profit factor was 0.63, so its losers outweighed its winners, and the net return was -52.3%.

What are the best Opening range breakout settings?

Of the 2 settings tested, 09:30–10:00 range, out by 15:55 on QQQ (long only) did least badly: -28.4% net, profit factor 0.79, held-out did not survive. That is the best of 6 tries on 2.4 years of 5-minute data of one symbol, which is already a fitted number. A setting that works on one symbol or one period only is a coincidence, not a setting; run it on your own symbol and timeframe before trusting it.

Does the Opening range breakout strategy beat holding the stock?

0 of the 6 runs did. SPY itself returned +44.4% between 4 June 2024 and 23 October 2026, so a rule that is out of the market part of the time has a lot to make up; what a timing rule usually gets you is a smaller drawdown, not a bigger return. The classic run's worst drawdown was 54.1% with 65% of the time in the market.

Did the Opening range breakout strategy hold up out of sample?

The last third of every run's history (8 January 2026 to 23 October 2026 for the lead run) was judged on its own, with no fitting on it: 0 of 6 runs survived, 0 decayed, 6 did not survive and 0 had too few trades there to judge. Survived means a positive Sharpe ratio on the held-out part at least half the fitted period's; it is a check on one later stretch, not a forecast.

How was this tested?

With the free Alpha Charts tester's own engine: the Pine v6 scripts on this page, run on Alpaca 5-minute data from the last 600 sessions, and 1-minute data from the last 120 sessions, split-adjusted and not dividend-adjusted, one position at a time with the whole account, fills at the next candle's open, a commission of 0.05% and slippage of 0.025% on every fill, the last third of the history held out. The settings are the textbook ones and every variant is stated; nothing was tuned to make the page look better.

Every number on this page is the output of the Alpha Charts backtest engine on 25 October 2026, on Alpaca market data; the scripts are the strategy library's templates, shown as they ran. Symbols are US-listed ETFs and stocks; results are price returns after the costs stated. Past results are not a forecast and nothing here is investment advice. TradingView and Pine Script belong to TradingView, Inc.; Alpha Charts is not affiliated with it.