ML Signal Filter

A GradientBoosting classifier trained walk-forward on signal outcomes predicts which analyst upgrades will hit +5% within 90 days. Features: firm score, stock momentum, market regime, sector, seasonality. Only signals above 55% confidence are taken.

Filtered Avg Return
+1.14%
per signal, avg over test years
All Signals Avg Return
+1.09%
unfiltered baseline
Filter Outperforms
4 / 8 years
avg precision 76% recall 93%
Avg Signals Taken
93%
of all signals pass threshold

ML-filtered signals (≥55% confidence) vs taking all signals vs SPY — per-signal average return each year.

2018110/116 signals taken  · P=69%  R=95%
Filter
+0.46%
All
+0.49%
SPY
-5.25%
2019122/139 signals taken  · P=86%  R=89%
Filter
+2.56%
All
+2.63%
SPY
+31.09%
2020642/781 signals taken  · P=82%  R=85%
Filter
+1.08%
All
+0.63%
SPY
+17.24%
2021938/1023 signals taken  · P=77%  R=91%
Filter
+1.88%
All
+1.92%
SPY
+30.51%
2022775/812 signals taken  · P=72%  R=96%
Filter
-0.40%
All
-0.44%
SPY
-18.65%
20231268/1306 signals taken  · P=72%  R=97%
Filter
+1.44%
All
+1.45%
SPY
+26.71%
20241424/1489 signals taken  · P=75%  R=96%
Filter
+1.51%
All
+1.46%
SPY
+25.59%
20251530/1552 signals taken  · P=71%  R=99%
Filter
+0.63%
All
+0.60%
SPY
+18.01%

Full Year Statistics

YearAll SignalsFilteredFiltered RetAll RetSPYPrecisionRecall
2018116110(95%)+0.46%+0.49%-5.3%69%95%
2019139122(88%)+2.56%+2.63%+31.1%86%89%
2020781642(82%)+1.08%+0.63%+17.2%82%85%
20211023938(92%)+1.88%+1.92%+30.5%77%91%
2022812775(95%)-0.40%-0.44%-18.6%72%96%
202313061268(97%)+1.44%+1.45%+26.7%72%97%
202414891424(96%)+1.51%+1.46%+25.6%75%96%
202515521530(99%)+0.63%+0.60%+18.0%71%99%