QQQ 5-minute opening range breakout (paper vs. replications)
Trade QQQ in the direction of the first 5-minute candle, stop at the other side of that candle, and target 10R or exit at the close.
What they did
In 'Can Day Trading Really Be Profitable?', Zarattini & Aziz tested a 5-minute ORB on QQQ for 2016–2023: take the direction of the first 5-minute candle, enter at the next candle's open, place the stop at the opposite extreme of the first candle, and target 10× the risk or exit at the session close. Two independent groups later re-ran it with execution costs.
How it went
The paper's claims: 1,484% total return using TQQQ versus 169% for buy-and-hold QQQ (2016–2023), and an annualized alpha of 33% net of commissions. The replications' claims: the GitHub replication reproduces the gross edge but says it roughly vanishes at about 2.2¢/share slippage, with much of the profit coming from 2022. Krueger Algorithms reproduces the gross result on five indices (2015–2026) but finds about zero edge net of spread and slippage.
Sources:
Worth knowing
- Costs decide everything here. Use realistic slippage in paper trading, not perfect fills.
- The win rate is low (around 24% in the replication), so long losing streaks are normal.
- Leverage (TQQQ, or about 4× in the paper) magnifies drawdowns. Paper-test unleveraged first.
The prompt
Trade QQQ intraday using a 5-minute opening range breakout.
At [9:35 AM ET], read the first 5-minute candle (9:30–9:35):
- If it closed up, propose a LONG at the next candle's open; if it closed down, propose a SHORT. If it's a doji (open = close), no trade.
- Stop: the opposite extreme of the first candle. Risk per trade: [1]% of account. Size = risk ÷ (entry − stop).
- Target: [10]× risk, otherwise exit at [3:59 PM ET].
One trade per day max. Log entry, stop, exit, R-multiple, and estimated slippage (difference between signal price and fill).
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. IBKR's AI connector always asks for approval; use its regular API for unattended trading. Never remove the daily loss limit.