| always long (full day) | +110.15% | 0.95 | -22.05% | 1.16 | 1497 |
Extensions of SPY intraday reversal finding.
1. QQQ intraday reversal (same signal as SPY)
Window: 2020-01-02 .. 2025-12-30 (1497 days)
QQQ last-15min (3:45-4:00)
| baseline (always long) | +9.60% | 0.39 | -14.51% | 1.07 | 1492 |
| Signal | Ret | Sharpe | MaxDD | PF | Days |
|---|---|---|---|---|---|
| dir=-1 (contrarian) | -4.71% | -0.24 | -10.95% | 0.94 | 721 |
| dir=+1 (momentum) | +15.02% | 0.82 | -8.90% | 1.21 | 771 |
| ret_15<0 | -4.97% | -0.26 | -11.01% | 0.94 | 716 |
| closepos<0.4 | -5.06% | -0.28 | -10.53% | 0.92 | 587 |
| closepos>0.6 | +9.92% | 0.64 | -7.74% | 1.17 | 660 |
| vol_ratio>1.5 | +3.33% | 0.25 | -4.66% | 1.15 | 155 |
| vol_ratio<0.5 | -3.17% | -0.84 | -3.98% | 0.37 | 33 |
| gap<0 | +19.42% | 0.93 | -4.45% | 1.30 | 635 |
| gap>0 | -8.39% | -0.53 | -14.56% | 0.90 | 840 |
| vwap_signal=-1 | +1.42% | 0.10 | -8.38% | 1.03 | 715 |
QQQ last-hour (3:00-4:00)
| baseline (always long) | -7.83% | -0.16 | -23.09% | 0.97 | 1495 |
| Signal | Ret | Sharpe | MaxDD | PF | Days |
|---|---|---|---|---|---|
| dir=-1 (contrarian) | -22.71% | -0.84 | -31.07% | 0.81 | 724 |
| dir=+1 (momentum) | +19.25% | 0.71 | -13.35% | 1.18 | 771 |
| ret_15<0 | -22.55% | -0.83 | -30.93% | 0.81 | 719 |
| closepos<0.4 | -11.26% | -0.41 | -18.43% | 0.89 | 589 |
| closepos>0.6 | +8.84% | 0.38 | -12.90% | 1.10 | 661 |
| vol_ratio>1.5 | +1.61% | 0.10 | -7.47% | 1.06 | 155 |
| vol_ratio<0.5 | -6.92% | -1.04 | -8.38% | 0.27 | 32 |
| gap<0 | +9.99% | 0.36 | -9.41% | 1.10 | 636 |
| gap>0 | -15.48% | -0.61 | -21.41% | 0.87 | 842 |
| vwap_signal=-1 | -13.50% | -0.46 | -24.35% | 0.89 | 717 |
QQQ IS/OOS (dir=-1, last-15min)
| Segment | Signal | Ret | Sharpe | MaxDD | PF | Days |
|---|---|---|---|---|---|---|
| IS | baseline | +1.82% | 0.13 | -14.51% | 1.02 | 995 |
| IS | dir=-1 | -3.41% | -0.24 | -10.95% | 0.94 | 467 |
| OOS | baseline | +7.64% | 1.25 | -2.91% | 1.21 | 497 |
| OOS | dir=-1 | -1.34% | -0.27 | -3.53% | 0.94 | 254 |
OOS bootstrap p: 0.996
2. SPY Opening Range Breakout (ORB)
Does breaking the 9:30-9:45 high/low predict direction? Window: 2020-01-02 .. 2025-12-30 (1498 days)
| Signal | Ret | Sharpe | MaxDD | PF | Days |
|---|---|---|---|---|---|
| orb_clean_up (break high, no false break) | +266.63% | 4.16 | -2.97% | 11.44 | 181 |
| orb_clean_dn (break low, no false break) | -66.65% | -4.01 | -66.65% | 0.06 | 147 |
| orb_break_up (any break up) | +529.48% | 2.30 | -13.53% | 1.45 | 1349 |
| orb_break_dn (any break dn) | -42.74% | -0.58 | -51.91% | 0.91 | 1315 |
| orb_both (whipsaw) | +71.69% | 0.79 | -22.39% | 1.15 | 1168 |
| no orb break (range holds) | +0.10% | 0.49 | 0.00% | inf | 1 |
ORB + contrarian combination
| Signal | Ret | Sharpe | MaxDD | PF | Days |
|---|---|---|---|---|---|
| dir=-1 AND orb_clean_up | -3.61% | -0.75 | -3.64% | 0.55 | 81 |
| dir=-1 AND orb_clean_dn | -0.93% | -0.18 | -3.47% | 0.89 | 92 |
| dir=-1 AND no orb break | -0.04% | -0.49 | -0.04% | 0.00 | 1 |
| dir=+1 AND orb_clean_up | -0.29% | -0.08 | -2.03% | 0.96 | 100 |
| dir=+1 AND orb_clean_dn | +3.45% | 0.96 | -0.97% | 2.19 | 55 |
3. Consecutive red mornings (SPY)
Does the reversal effect strengthen after 2-3+ red mornings?
| Consecutive red | Ret (last-15min) | Sharpe | Days |
|---|---|---|---|
| 1 | -2.65% | -0.23 | 390 |
| 2 | -8.20% | -1.12 | 185 |
| 3 | +5.78% | 0.60 | 94 |
| 4 | +1.21% | 0.40 | 38 |
| 5 | +0.52% | 0.37 | 17 |
Consecutive green mornings (last-15min tends DOWN)
| Consecutive green | Ret (last-15min) | Sharpe | Days |
|---|---|---|---|
| 1 | +8.81% | 0.72 | 392 |
| 2 | -0.53% | -0.06 | 180 |
| 3 | +1.97% | 0.42 | 87 |
| 4 | -0.26% | -0.15 | 42 |
| 5 | -0.33% | -0.22 | 24 |
4. VWAP at 9:45 signal (SPY)
Does price relative to VWAP at 9:45 predict last-15min?
| Signal | Ret (last-15min) | Sharpe | MaxDD | PF | Days |
|---|---|---|---|---|---|
| always long | +3.56% | 0.18 | -18.15% | 1.03 | 1495 |
| close > vwap_945 | -1.80% | -0.11 | -13.00% | 0.97 | 763 |
| close < vwap_945 | +5.45% | 0.32 | -8.16% | 1.09 | 732 |
| vwap_dist < -0.001 (below VWAP) | +0.54% | 0.05 | -7.57% | 1.02 | 271 |
| vwap_dist > 0.001 (above VWAP) | -0.41% | -0.02 | -5.13% | 0.99 | 235 |
| vwap_dist < -0.002 | +7.50% | 0.56 | -3.02% | 1.49 | 97 |
| vwap_dist > 0.002 | +3.30% | 0.41 | -3.43% | 1.40 | 67 |
5. Monotonicity: last-15min ret by ret_15 quintile (SPY)
| Q(ret_15) | Mean last-15min ret | Sharpe | Days |
|---|---|---|---|
| Q1 | +3.2691% | 0.24 | 299 |
| Q2 | -5.9680% | -0.75 | 299 |
| Q3 | -2.6845% | -0.45 | 299 |
| Q4 | +3.5338% | 0.54 | 298 |
| Q5 | +5.8437% | 0.46 | 300 |
6. Best combinations IS/OOS (SPY last-15min)
| Segment | Signal | Ret | Sharpe | MaxDD | PF | Days |
|---|---|---|---|---|---|---|
| dir=-1 | ||||||
| IS | baseline | -3.69% | -0.19 | -18.15% | 0.97 | 995 |
| IS | dir=-1 | -5.16% | -0.40 | -12.38% | 0.90 | 484 |
| OOS | baseline | +7.53% | 1.42 | -2.69% | 1.25 | 500 |
| OOS | dir=-1 | +0.71% | 0.18 | -2.86% | 1.04 | 261 |
| OOS bootstrap p: 0.993 |
dir=-1 AND orb_clean_up | IS | baseline | -3.69% | -0.19 | -18.15% | 0.97 | 995 | | IS | dir=-1 AND orb_clean_up | -2.40% | -0.67 | -2.70% | 0.58 | 56 | | OOS | baseline | +7.53% | 1.42 | -2.69% | 1.25 | 500 | | OOS | dir=-1 AND orb_clean_up | -1.24% | -1.04 | -1.46% | 0.50 | 25 | OOS bootstrap p: 0.973
dir=-1 AND consec_red>=2 | IS | baseline | -3.69% | -0.19 | -18.15% | 0.97 | 995 | | IS | dir=-1 AND consec_red>=2 | -1.79% | -0.17 | -5.82% | 0.94 | 229 | | OOS | baseline | +7.53% | 1.42 | -2.69% | 1.25 | 500 | | OOS | dir=-1 AND consec_red>=2 | -0.11% | -0.03 | -2.25% | 0.99 | 126 | OOS bootstrap p: 0.972
dir=-1 AND vwap_dist<-0.001 | IS | baseline | -3.69% | -0.19 | -18.15% | 0.97 | 995 | | IS | dir=-1 AND vwap_dist<-0.001 | -1.47% | -0.12 | -7.13% | 0.95 | 189 | | OOS | baseline | +7.53% | 1.42 | -2.69% | 1.25 | 500 | | OOS | dir=-1 AND vwap_dist<-0.001 | -0.19% | -0.05 | -2.42% | 0.98 | 70 | OOS bootstrap p: 0.982
Decision memo
Expanded intraday research across ETFs and signal families.
- QQQ: tests cross-asset replication.
- ORB: tests opening range breakout (classic pattern).
- Consecutive: tests strengthening after repeated signals.
- VWAP: tests institutional flow proxy. All fee-free assumed. Adopt if OOS Sharpe > 0, p<0.05.