QQQ Premarket Oversold Bounce — Backtest

Strategy 1099 · QQQ, long only · entries 04:00–09:30 ET on 15-minute bars · Jan 6, 2016 – Oct 23, 2026 · 100 shares per trade · paper account PA3PJANDI40H

$27,078
Net P&L, after costs (100 sh)
299
Trades (~28 per year)
77%
Winning trades
+2.43
Sharpe 2023–2026 (out of sample)
$18,099
2023–2026 out of sample

Cumulative P&L

Cumulative net P&L for 100 shares, by exit date. The dashed line marks Jan 1, 2023: the rules were chosen on data to its left only. Prices are split- and dividend-adjusted, so early-year dollar amounts reflect QQQ's lower price then.

Rules

Median hold 4.8 hours; 32% of trades are held more than 6.5 hours, and the position is in the market 3.1% of the time. Exits: RSI 144, upper band 120, MACD fading 35.

In sample vs out of sample

PeriodTradesWin rateAvg / tradeNet P&LMax drawdown
2016–2022 (in sample)18174%+23.6 bp$8,979$1,530
2023–2026 (out of sample)11881%+31.0 bp$18,099$1,637
Total29977%+26.5 bp$27,078$1,637

Daily Sharpe ratio, idle days counted as zero: +1.26 in sample, +2.43 out of sample.

How the rules were chosen

This strategy came out of a study of strategy 1026 (QQQ mean reversion on 1-minute bars, 04:00–20:00 ET). With realistic fills, 1026's own rules lose money in every period, so 11,520 variations were tested: bar length (1, 5, 15 min), RSI threshold, entry session, stop, exit rule, time limit, overnight holding, a trend filter and up-bar confirmation. Only 428 were profitable in 2016–2022. The rules above had the best 2016–2022 Sharpe ratio; 2023–2026 was not used to choose them.

Same fill model, 2016–2026TradesAvg / tradeNet P&L (100 sh)Sharpe in / out
Original 1026 rules (1-min bars, all sessions, 0.2% stop)8,852-3.0 bp-$69,234-4.48 / -1.15
This strategy299+26.5 bp$27,078+1.26 / +2.43

Checks against luck

Cost sensitivity

CostsSharpe 2016–22Sharpe 2023–26Avg 2016–22Avg 2023–26
No costs+1.46+2.54+27.5 bp+32.6 bp
1× costs+1.26+2.43+23.6 bp+31.0 bp
2× costs+1.07+2.33+19.8 bp+29.4 bp
3× costs+0.86+2.22+15.9 bp+27.8 bp

Neighbouring settings (one change at a time)

ChangeSharpe 2016–22Sharpe 2023–26TradesAvg 2023–26
5-minute bars-0.24+1.11920+5 bp
30-minute bars+0.38+1.46152+41 bp
RSI < 20+0.79+1.52113+29 bp
RSI < 30+0.53+0.78541+9 bp
2% stop+1.02+2.00304+36 bp
1% stop+0.89+1.54311+28 bp
Exit at RSI > 50+0.71+1.42300+19 bp
Exit at middle band+0.72+1.61305+16 bp
Pre-market + after-hours entries+1.20+2.22348+27 bp
All-session entries-0.40+0.41636+5 bp
No up-bar confirmation+0.97+1.87275+26 bp
Flat every night+1.11+1.30304+29 bp

Results by year

YearTradesWin rateAvg / tradeNet P&LMax drawdown
20161464%+8.9 bp$97$207
20171883%+10.2 bp$245$206
20183577%+23.2 bp$1,252$446
20192568%+7.2 bp$309$604
20202291%+79.7 bp$3,790$263
20212767%-1.4 bp-$170$1,530
20224070%+31.5 bp$3,457$1,041
20232983%+32.9 bp$2,957$634
20242770%+8.0 bp$815$1,637
20252997%+54.2 bp$8,396$160
20263373%+27.7 bp$5,932$595

Worst trades

EntryExitReturnP&L
2024-07-24 09:002024-07-25 09:00-211 bp-$989
2022-08-19 05:452022-08-23 10:15-300 bp-$953
2021-01-27 08:152021-01-28 07:15-249 bp-$785
2021-03-03 09:002021-03-04 09:00-243 bp-$743
2024-01-02 07:002024-01-04 04:15-172 bp-$689

Risks

Generated Oct 29, 2026 from python_trading/qqq_premarket/research/ on the MT4 server. Trade list: qqq_premarket_oversold_bounce_1099_backtest.csv.