These are the signals that ranked in the top 3 across ALL three metrics (average return, Sharpe, and win rate). If you’re building a real swing-trading workflow, focus your attention here.
What it is: Stock closes at a new 52-week high on an up-day with expanding volume. Classic O'Neil breakout — proves institutional demand at fresh highs.
When it fires: Any day the close prints a new high above the past 252 trading days, with 5-day avg volume above 20-day avg volume.
Why it works: New highs beget new highs. When a stock breaks out of a base, momentum tends to persist as new buyers pile in and shorts cover.
Stats: Best trade: +137.7% · Worst trade: -8.1% · Avg hold: 16.1 trading days · Exit mix: 4,317 trail / 599 time-cap / 460 hard-stop
What it is: The full 5-layer Swing Entries stack (right-side of base + accumulation + trigger + liquid + trend) fires, AND price is above the 200-day moving average. Highest-quality setup + healthy long-term trend.
When it fires: Wyckoff spring or EMA-9/SMA-20 cross fires on a name that's on the right side of a 60-day base with multi-week z-score accumulation, on a day when its 200-day MA is below price.
Why it works: You're not just buying a setup — you're buying a setup in a stock whose long-term trend is still healthy. Filters out early-stage bear-market bounces.
Stats: Best trade: +74.0% · Worst trade: -8.1% · Avg hold: 12.5 trading days · Exit mix: 216 trail / 27 time-cap / 22 hard-stop
What it is: A new 52-week high breakout that ALSO shows multi-week institutional accumulation (positive z-score at least 8 of last 10 days). Strongest fresh leaders.
When it fires: New 52w high day with 8+ of the past 10 sessions showing positive combined price+volume z-score.
Why it works: Confirms that the breakout is backed by real accumulation, not a one-day pop. These are the names starting new legs of longer trends.
Stats: Best trade: +117.4% · Worst trade: -8.1% · Avg hold: 16.2 trading days · Exit mix: 3,590 trail / 475 time-cap / 359 hard-stop
Each signal ranks 1-N on average return, Sharpe-like, and win rate. The composite rank sums those three. Lowest total = best.
| Rank | Signal | Trades | Avg Return | Win Rate | Sharpe-like | Hold | Avg R |
|---|---|---|---|---|---|---|---|
| #1 |
New 52-Week High Breakout
NEW_52W_HIGH
|
5,376 | +0.56% | 38.0% | 0.065 | 16.1d | +0.204R |
| #2 |
Swing Entries + SPY Above 200-Day
COMBO_C_SE_MA200
|
265 | +0.67% | 32.5% | 0.073 | 12.5d | +0.237R |
| #3 |
52-Week High + Accumulation
COMBO_D_52W_ACCUM
|
4,424 | +0.49% | 37.4% | 0.059 | 16.2d | +0.159R |
| #4 |
CANSLIM Tech + SPY Uptrend
COMBO_B_CS_REGIME
|
7,786 | +0.62% | 35.6% | 0.046 | 13.3d | +0.549R |
| #5 |
CANSLIM (Technical Proxy)
CANSLIM_TECH
|
8,419 | +0.59% | 35.7% | 0.045 | 13.3d | +0.512R |
| #6 |
Wyckoff Spring
WYCKOFF_SPRING
|
9,120 | +0.05% | 48.8% | 0.010 | 4.6d | +0.042R |
| #7 |
Multi-Week Accumulation
ACCUMULATION
|
10,129 | +0.41% | 35.2% | 0.049 | 14.0d | +0.169R |
| #8 |
Swing Entries (Balanced 5-Layer)
SWING_ENTRIES
|
659 | +0.42% | 31.6% | 0.047 | 11.8d | +0.118R |
Universe: 292 S&P 500 + Nasdaq 100 constituents (deduped).
Data: Adjusted daily OHLCV bars from Polygon (2016-01-01 to 2026-08-08).
Signal reconstruction: Every signal is re-computed on each historical bar without lookahead — only bars from before the current day are used.
Entry: Signal fires on close of day N → trade opens at day N+1 open, with 0.055% slippage + commission cost added.
Exit rule (adaptive trend-follow):
Sizing: Risk-parity — each trade sized so 1×ATR(14) equals 1% of account (returns reported as %, so absolute size doesn't affect the comparison).
Cooldown: A signal doesn't re-fire while its previous trade is still open on the same ticker.
Cross-sectional ranking: Signals scored 1-N on avg return, Sharpe-like (return ÷ volatility), and win rate. Composite = sum of those three ranks (lowest wins).
What if you only took trades where 2 or more of the top 3 signals fired within a 5-day window on the same name? This tests whether combining signals produces cleaner entries than trading any one alone.
Signals used: NEW_52W_HIGH, COMBO_C_SE_MA200, COMBO_D_52W_ACCUM
Entry: 2+ signals within 5 trading days
Portfolio size: max 20 concurrent positions
· Exit: same 20-EMA trail + 8% hard stop + 35-day time cap
Split the 10-year sample into train (2016-2022) and test (2022-2026). A signal with real edge should show similar performance in both windows. A signal that only works in training is likely overfit to that regime.
| Signal | TRAIN (2016-2022) | TEST (2022-2026) | Verdict | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Trades | Avg Ret | Sharpe | Win % | Trades | Avg Ret | Sharpe | Win % | ||
|
New 52-Week High Breakout
NEW_52W_HIGH
|
3,102 | +0.58% | 0.074 | 38.4% | 2,274 | +0.53% | 0.056 | 37.5% | HOLDS UP |
|
Swing Entries + SPY-200 filter
COMBO_C_SE_MA200
|
126 | +0.25% | 0.035 | 36.5% | 139 | +1.06% | 0.098 | 28.8% | HOLDS UP |
|
52-Week High + Accumulation
COMBO_D_52W_ACCUM
|
2,584 | +0.48% | 0.061 | 37.3% | 1,840 | +0.50% | 0.057 | 37.6% | HOLDS UP |
We re-ran the same 10-year backtest across a curated universe of 218 liquid small and mid-cap names ($2-10B market cap, high-momentum tech + biotech + industrials). The findings were dramatic.
| Signal | LARGE-CAP (292 tickers) | SMALL-CAP (218 tickers) | COMBINED (487 tickers) | Small-cap lift | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Trades | Avg Ret | Sharpe | Trades | Avg Ret | Sharpe | Trades | Avg Ret | Sharpe | ||
|
New 52-Week High Breakout
NEW_52W_HIGH
|
5,376 | +0.56% | 0.065 | 2,862 | +1.50% | 0.077 | 7,931 | +0.80% | 0.061 | +168% |
|
Swing Entries + SPY-200
COMBO_C_SE_MA200
|
265 | +0.67% | 0.073 | 161 | +1.33% | 0.093 | 412 | +0.99% | 0.087 | +97% |
|
52-Week High + Accumulation
COMBO_D_52W_ACCUM
|
4,424 | +0.49% | 0.059 | 2,321 | +1.38% | 0.071 | 6,496 | +0.72% | 0.055 | +184% |
Simulated equity growth of $1 starting Jan 2017. Each confluence trade is allocated 1/20th of capital (matching the 20-position portfolio cap). Slots earn zero when empty — this is realistic portfolio math, not a lottery-ticket per-trade multiplier.