⬇ DB

Sweeper — volume cohorts

DB: /database/signals.db

Outcome distribution — what to expect, where to stop

The cohort tables below show which alerts work; this one shows the distribution of what happens after any alert — every number is the day-N close (a price you could transact at), measured from the intraday alert price. Volume alerts fire mid-session, so day 0 is already a held position. close return percentiles p10 / p25 / median / p75 / p90 give the spread of outcomes; the median is the typical case. dd-p10 is the deep-drawdown tail over day 0..N — a stop has to sit below dd-p10 to survive the typical-bad alert. green = share closing positive. edge vs SPY = median of (alert return − SPY return) over the same day-0 → day-N window, measured close-to-close — a positive median is only a real edge if this is also positive; if it sits near zero the alerts are just riding the market. (A bracketed count shows how many alerts had SPY data when it is fewer than n.) 598 alerts; n shrinks down the table as fewer alerts are that mature.

dayn p10p25 median p75p90 dd-meddd-p10 green edge vs SPY median close
0 598-2.36%-1.38%-0.14%+0.90%+2.50%-1.81%-4.71% 47%
1 598-4.30%-1.69%-0.04%+1.71%+4.74%-2.34%-6.56% 49%
2 598-5.89%-3.09%-0.65%+2.01%+5.61%-2.79%-7.90% 43%
3 598-6.92%-3.35%-0.58%+2.22%+5.96%-3.16%-9.13% 45%
4 594-8.19%-3.63%-0.35%+2.99%+6.56%-3.32%-10.11% 47%
5

Cohorts — which alerts work best

For each cohort, three maturity windows side by side: day 0 (alert-day only), day 1 (alert day + next session — only counts alerts that have a next-day bar), settled (only alerts with all 5 days complete). Comparing them tells you whether alerts hold up over time or fade. Empty rows = no alerts in that bucket yet. "hit@+2%" = % of alerts in the bucket that reached at least +2% high during the window.

By sector

sector ETF day 0 day 1 settled (5d)
navg-gainhit@+2% navg-gainhit@+2% navg-gainavg-ddhit@+2%
XLK 180 +3.2% 67% 180 +5.5% 80% 180 +9.5% -8.2% 89%
XLV 123 +1.3% 25% 123 +2.3% 50% 123 +3.7% -3.4% 68%
XLF
XLY
XLC 31 +3.2% 61% 31 +3.9% 68% 30 +4.7% -6.1% 77%
XLI 109 +1.6% 26% 109 +2.2% 39% 108 +3.2% -4.3% 57%
XLP
XLE 34 +1.3% 26% 34 +2.7% 59% 34 +5.6% -2.4% 79%
XLU 58 +0.8% 12% 58 +1.5% 17% 58 +2.4% -2.2% 45%
XLRE 63 +0.6% 0% 63 +1.4% 21% 63 +2.7% -3.0% 56%
XLB
unknown

By RVAT bucket

RVAT day 0 day 1 settled (5d)
navg-gainhit@+2% navg-gainhit@+2% navg-gainavg-ddhit@+2%
1.5–2x 231 +2.1% 42% 231 +3.4% 58% 230 +6.2% -5.7% 80%
2–3x 139 +2.1% 38% 139 +3.3% 54% 139 +5.7% -4.9% 75%
3–5x 140 +1.4% 24% 140 +2.7% 41% 139 +4.3% -4.4% 53%
5x+ 88 +1.9% 35% 88 +3.1% 52% 88 +3.8% -4.0% 61%

By time of day

fired (ET) day 0 day 1 settled (5d)
navg-gainhit@+2% navg-gainhit@+2% navg-gainavg-ddhit@+2%
09:30–10:00 503 +1.8% 34% 503 +3.0% 50% 502 +5.0% -4.5% 69%
10:00–10:30 50 +2.2% 42% 50 +3.8% 64% 49 +6.7% -7.1% 80%
10:30–11:00 28 +2.5% 57% 28 +3.8% 75% 28 +6.2% -8.7% 79%
11:00–11:30 17 +2.0% 41% 17 +3.9% 65% 17 +7.1% -5.5% 71%

By weekday

weekday day 0 day 1 settled (5d)
navg-gainhit@+2% navg-gainhit@+2% navg-gainavg-ddhit@+2%
Mon 59 +3.2% 73% 59 +4.9% 80% 59 +6.5% -9.5% 85%
Tue 74 +2.3% 50% 74 +3.0% 66% 74 +6.6% -5.2% 85%
Wed 52 +2.1% 38% 52 +3.3% 56% 52 +5.6% -7.5% 67%
Thu 192 +1.9% 30% 192 +3.1% 46% 192 +5.4% -4.1% 79%
Fri 221 +1.4% 25% 221 +2.8% 45% 219 +4.4% -3.8% 54%