TRAI quant day-trading research

Signal scorecard & walk-forward backtest

Does each bucket actually work? Every signal day is re-screened using only data available at that close, then scored on the next session. Primary outcome: enter at next open, exit at next close.

Computed: Nov 6, 2026, 5:34 PM ET · Data through: 2026-11-06
Source: Yahoo Finance public chart API (daily, 2y; 5-minute 60d for the live-rule column) + TRAI stored runs in Vercel Blob.

Key finding (2026-05-08 → 2026-11-05, 126 signal days): best historical expectancy was Mean reversion — fade-short leg (after big up day) at 31.2 bp per trade net (hit 55.3%, t = 2.47, n = 358); worst was Short momentum at -23.1 bp (t = -1.88). Statistically meaningful (|t| ≥ 2): Mean reversion — fade-short leg (after big up day) (31.2 bp); Mean reversion (fade, both sides) (21.3 bp).
A negative expectancy for a short bucket means the shorted names tended to rise the next day. Screening/research, not investment advice.

Historical replay — all picks in each bucket (open→close proxy)

Open→close proxy: enter at the next session’s open, exit at its close. This is not TRAI’s live rule set (no entries before 10:00 ET, 1×ATR stop, 2×ATR target, 60-minute time stop); live picks are also scored on those rules below.

BucketTradesHit rateAvg winAvg lossPayoffExp. grossExp. nett-statC→C netO→C ATRSharpe netLiq-adj Sharpe
Long momentum39350.9%+2.45%-2.22%1.1015.6 bp10.6 bp0.6832.1 bp0.0222.131.63
Short momentum45746.0%+1.88%-1.95%0.96-18.1 bp-23.1 bp-1.88-31.9 bp-0.048-3.80-4.35
Mean reversion (fade, both sides)59654.9%+1.81%-1.62%1.1226.3 bp21.3 bp2.2914.4 bp0.0980.02-0.57
Mean reversion — fade-long leg (after big down day)23852.5%+1.63%-1.56%1.0411.5 bp6.5 bp0.4813.9 bp0.0370.680.23
Mean reversion — fade-short leg (after big up day)35856.4%+1.92%-1.67%1.1536.2 bp31.2 bp2.4714.7 bp0.1390.20-0.31
Baseline: every liquid name, long (benchmark)1501649.2%+1.71%-1.65%1.040.8 bp-4.2 bp-2.22-0.9 bp-0.002-0.80-2.29

Historical replay — top 3 ranked picks per day only (open→close proxy)

BucketTradesHit rateAvg winAvg lossPayoffExp. grossExp. nett-statC→C netO→C ATRSharpe netLiq-adj Sharpe
Long momentum22450.4%+2.68%-2.10%1.2831.4 bp26.4 bp1.2741.9 bp0.0722.461.97
Short momentum24445.1%+1.86%-1.94%0.96-21.7 bp-26.7 bp-1.60-15.2 bp-0.051-3.42-3.98
Mean reversion (fade, both sides)27851.4%+1.77%-1.63%1.0812.2 bp7.2 bp0.537.0 bp0.0490.21-0.34
Mean reversion — fade-long leg (after big down day)10652.8%+1.60%-1.42%1.1318.0 bp13.0 bp0.6728.0 bp0.0670.820.44
Mean reversion — fade-short leg (after big up day)17250.6%+1.87%-1.76%1.068.7 bp3.7 bp0.20-6.0 bp0.0380.530.09
Cumulative net open→close return of each bucket's equal-weight daily portfolio (sum of daily returns)
-73%-43%-13%17%47%2026-05-082026-07-102026-09-092026-11-05
Long momentumShort momentumMean reversion (fade, both sides)Mean reversion — fade-long leg (after big down day)Mean reversion — fade-short leg (after big up day)Baseline: every liquid name, long (benchmark)

Which signals work in which regime?

Same trades split by the regime on the signal day. Cells: net expectancy · hit rate · trades · t-stat. Small n cells are anecdotes, not evidence.

Signal days by regime — VIX label: transitional 100, stress 11, calm 15 · Quant regime: risk-on 95, neutral 30, risk-off 1 · Trend (ADX): mixed 37, trending 25, choppy 64

VIX regime (legacy label)

Bucketcalm: exp. net · hit · n · ttransitional: exp. net · hit · n · tstress: exp. net · hit · n · t
Long momentum7.4 bp · 53% · 73 · 0.213.0 bp · 50% · 302 · 0.7-17.6 bp · 50% · 18 · -0.2
Short momentum-43.5 bp · 50% · 58 · -1.2-30.1 bp · 42% · 326 · -2.124.2 bp · 49% · 73 · 0.8
Mean reversion (fade, both sides)16.6 bp · 63% · 41 · 0.515.2 bp · 52% · 470 · 1.557.6 bp · 62% · 85 · 2.1
Mean reversion — fade-long leg (after big down day)-98.7 bp · 30% · 10 · -2.02.5 bp · 52% · 183 · 0.246.1 bp · 56% · 45 · 1.2
Mean reversion — fade-short leg (after big up day)53.8 bp · 74% · 31 · 1.223.3 bp · 51% · 287 · 1.770.6 bp · 70% · 40 · 1.8

Quantitative regime score (regime model)

Bucketrisk-on: exp. net · hit · n · tneutral: exp. net · hit · n · trisk-off: exp. net · hit · n · t
Long momentum10.9 bp · 50% · 315 · 0.69.4 bp · 51% · 78 · 0.3—
Short momentum-30.3 bp · 44% · 312 · -2.0-32.4 bp · 44% · 109 · -1.467.4 bp · 50% · 36 · 1.4
Mean reversion (fade, both sides)25.6 bp · 54% · 398 · 2.210.4 bp · 53% · 190 · 0.668.1 bp · 63% · 8 · 0.6
Mean reversion — fade-long leg (after big down day)3.6 bp · 52% · 135 · 0.25.3 bp · 52% · 95 · 0.268.1 bp · 63% · 8 · 0.6
Mean reversion — fade-short leg (after big up day)36.9 bp · 56% · 263 · 2.515.5 bp · 55% · 95 · 0.6—

Trend state (SPY ADX)

Buckettrending: exp. net · hit · n · tmixed: exp. net · hit · n · tchoppy: exp. net · hit · n · t
Long momentum82.3 bp · 62% · 87 · 2.01.2 bp · 49% · 112 · 0.1-16.2 bp · 46% · 194 · -0.8
Short momentum-17.1 bp · 46% · 68 · -0.6-49.9 bp · 45% · 128 · -2.7-11.5 bp · 43% · 261 · -0.6
Mean reversion (fade, both sides)8.1 bp · 52% · 143 · 0.4-3.6 bp · 52% · 157 · -0.240.9 bp · 56% · 296 · 2.9
Mean reversion — fade-long leg (after big down day)13.9 bp · 53% · 62 · 0.5-2.6 bp · 55% · 53 · -0.16.6 bp · 50% · 123 · 0.3
Mean reversion — fade-short leg (after big up day)3.6 bp · 51% · 81 · 0.1-4.0 bp · 50% · 104 · -0.265.3 bp · 61% · 173 · 3.3

Live scorecard — picks from stored runs (open→close)

Actual picks published by the engine (deduplicated per session date, post-close preferred), scored on the following session once it completes.

Runs scanned: 23 · unique picks: 244 · scored: 240 · awaiting next session: 4

BucketTradesHit rateAvg winAvg lossPayoffExp. grossExp. nett-statC→C netO→C ATRSharpe netLiq-adj Sharpe
Long momentum5145.1%+1.93%-2.99%0.65-77.0 bp-82.0 bp-1.95-88.7 bp-0.2950.880.08
Short momentum8552.9%+2.94%-1.48%1.9986.2 bp81.2 bp2.6153.0 bp0.1285.945.45
Mean reversion (fade, both sides)10455.8%+2.28%-1.95%1.1741.0 bp36.0 bp1.3232.8 bp0.2340.49-0.19
Mean reversion — fade-long leg (after big down day)4839.6%+1.40%-2.17%0.65-75.4 bp-80.4 bp-2.37-61.9 bp-0.140-3.52-4.09
Mean reversion — fade-short leg (after big up day)5669.6%+2.71%-1.59%1.71140.7 bp135.7 bp3.69113.9 bp0.5552.361.85

Live picks scored on TRAI’s live rules

The same live picks, re-scored the way the live rules would trade them on the next session: enter at the open of the first 5-minute bar at or after 10:00 ET, stop 1×ATR(14), target 2×ATR(14), and exit at 11:00 ET if neither is hit (60-minute time stop). If one 5-minute bar touches both the stop and the target, the stop is assumed. R = net result in ATR units after the same 5 bp + impact costs.

Measurement only — no edge claim until ≥ 30 distinct days scored. Picks from the same day are correlated (one market move hits them all), so judge the per-day mean R and its day-level 90% CI, not the per-trade meanR. The 90% CI column is a bootstrap CI of the per-day mean only (one number per signal day, 2000 day-resamples, fixed seed) — it is not a CI around the per-trade meanR. Those are different estimands: e.g. a per-trade meanR can sit outside the per-day CI without any arithmetic fault (the per-day mean is what the CI covers).

Coverage: 240 of 240 picks (100%) had 5-minute bars · 11 distinct signal days · 119 symbols

Exit-type mix (live rules)STOP / TARGET / TIME / NO_DATA · NO_DATA excluded from target-share %
STOP 5TARGET 0TIME 235NO_DATA 0
Long momentumtarget unreachable
Short momentumtarget unreachable
Mean reversion (fade, both sides)target unreachable
Mean reversion — fade-long legtarget unreachable
Mean reversion — fade-short legtarget unreachable
Target unreachable under the 60-minute window — effective live rule is a time-stop (with a 1×ATR stop). Across all scored exits, TARGET is 0 of 240 (0.0% < 2%). Counts: TIME 235 · STOP 5 · TARGET 0.
Open→close replay and liveRules measure different strategies: the replay holds to the next close; liveRules enter ≥10:00 ET and exit on stop, target, or the 60-minute time stop. When targets almost never hit, the liveRules column is effectively grading a time-stop rule.
BucketPicksCoverageHit rateMean R (per-trade)Median RMean netStop · Target · Time · No dataDaysPer-day mean R90% CI (per-day mean)
Long momentum target unreachable — effective rule is time-stop51100%27.5%-0.257-0.238-90.6 bp
5 · 0 · 46 · 0
10-0.128-0.25 … -0.00
Short momentum target unreachable — effective rule is time-stop85100%41.2%-0.038-0.0661.8 bp
0 · 0 · 85 · 0
10-0.064-0.14 … -0.00
Mean reversion (fade, both sides) target unreachable — effective rule is time-stop104100%53.8%0.0700.03816.9 bp
0 · 0 · 104 · 0
100.050-0.03 … 0.13
Mean reversion — fade-long leg target unreachable — effective rule is time-stop48100%54.2%0.0200.0266.4 bp
0 · 0 · 48 · 0
90.125-0.04 … 0.37
Mean reversion — fade-short leg target unreachable — effective rule is time-stop56100%53.6%0.1130.06725.9 bp
0 · 0 · 56 · 0
80.044-0.04 … 0.14
All live picks target unreachable — effective rule is time-stop240100%43.8%-0.037-0.042-11.3 bp
5 · 0 · 235 · 0
11-0.043-0.12 … 0.02
Assumptions & limits.