← all research
STUDY

"Intraday Real Effects (post-timezone-fix)"

2026-08-26

After fixing UTC/NY bug: 'reversal' was artifact. Real effects:

  1. Gap fill (SPY gaps down -> recovers), 2. Monday effect,
  2. Momentum (morning green -> afternoon green).

1. Gap fill (buy at open if gapped down, sell at close)

Full window results:

Gap thresholdRet (full day)SharpeMaxDDPFDays
gap < -1.0%+10.80%0.38-6.66%1.4139
gap < -0.5%+47.45%1.07-5.68%1.80114
gap < -0.3%+56.14%1.08-7.55%1.53219
gap < -0.2%+29.48%0.58-18.01%1.21314

Gap fill (gap < -0.3%)

SegmentSignalRetSharpeMaxDDPFDays
ISGap fill (gap < -0.3%) (signal)+49.65%1.31-5.94%1.61172
ISbaseline (always long)+67.38%0.95-22.05%1.15996
OOSGap fill (gap < -0.3%) (signal)+4.33%0.44-5.39%1.2547
OOSbaseline (always long)+24.92%0.93-17.08%1.17500

OOS bootstrap p(no edge): 0.834

2. Monday effect (reversal on Mondays)

Full window:

SignalRet (last-15min)SharpeMaxDDPFDays
Monday+11.71%1.36-2.01%1.63278
Tuesday-3.63%-0.45-7.24%0.86311
Wednesday-10.90%-1.02-14.23%0.67308
Thursday-0.40%-0.03-3.08%0.99299
Friday+8.15%0.62-3.11%1.34298

Monday + dir=-1 (last-15min)

SegmentSignalRetSharpeMaxDDPFDays
ISMonday + dir=-1 (last-15min) (signal)+5.26%1.05-1.05%1.8082
ISbaseline (always long)-3.92%-0.21-18.15%0.96994
OOSMonday + dir=-1 (last-15min) (signal)+1.44%0.90-0.56%1.5946
OOSbaseline (always long)+7.53%1.42-2.69%1.25500

OOS bootstrap p(no edge): 0.914

Monday (full day)

SegmentSignalRetSharpeMaxDDPFDays
ISMonday (full day) (signal)+75.10%2.43-6.98%2.42182
ISbaseline (always long)+67.38%0.95-22.05%1.15996
OOSMonday (full day) (signal)+14.29%1.40-4.45%1.6896
OOSbaseline (always long)+24.92%0.93-17.08%1.17500

OOS bootstrap p(no edge): 0.695

3. Momentum (morning green -> afternoon green)

Full window:

SignalRet (last-15min)SharpeMaxDDPFDays
dir=+1+8.18%0.54-8.77%1.14749
dir=+1 AND gap>0-5.87%-0.65-9.67%0.83413
ret_15>0+8.18%0.54-8.77%1.14749

Momentum (dir=+1, last-15min)

SegmentSignalRetSharpeMaxDDPFDays
ISMomentum (dir=+1, last-15min) (signal)+1.32%0.14-8.77%1.03510
ISbaseline (always long)-3.92%-0.21-18.15%0.96994
OOSMomentum (dir=+1, last-15min) (signal)+6.78%2.14-1.40%1.58239
OOSbaseline (always long)+7.53%1.42-2.69%1.25500

OOS bootstrap p(no edge): 0.558

4. Combined: gap fill OR Monday

Either signal triggers a trade.

SegmentSignalRetSharpeMaxDDPFDays
IScombined (signal)+111.19%2.12-5.06%1.80306
ISbaseline+67.38%0.95-22.05%1.15996
OOScombined (signal)+15.43%1.17-5.86%1.43133
OOSbaseline+24.92%0.93-17.08%1.17500

OOS bootstrap p(no edge): 0.685

Decision memo

Post-timezone-fix validation of real intraday effects.

Adopt if OOS Sharpe > 0, p<0.05 for gap fill or Monday.

VERDICT (2026-08-25): REJECT ALL -- timezone bug invalidated prior work

CRITICAL: All prior intraday studies (open_close_edge, deep_dive, expansion, expansion2) used UTC timestamps as if they were local time. The filter hour==9 captured 9 AM UTC = 4 AM EST (pre-market), not 9:30 AM EST (market open). This created a SPURIOUS "reversal" effect (p=0.002) that was actually pre-market -> mid-morning noise.

After fixing to NY timezone:

  1. Gap fill (gap < -0.3%): IS Sharpe 1.31, OOS Sharpe 0.44, p=0.834 -- NO EDGE
  2. Monday: IS Sharpe 2.43, OOS Sharpe 1.40, p=0.695 -- NO EDGE
  3. Momentum (dir=+1): IS Sharpe 0.14, OOS Sharpe 2.14, p=0.558 -- NO EDGE
  4. Combined: OOS Sharpe 1.17, p=0.685 -- NO EDGE

All OOS p-values > 0.5. Cannot reject null hypothesis. NONE are adoptable.

The "SPY intraday reversal" was a BUG, not an edge. The prior PASS verdicts should be RETRACTED. Fee-free trading does not change this -- the signal itself is noise after timezone correction.