Market scanner: surface the few names worth studying.
A 30-name watchlist is noise; three names with aligned evidence are a morning's work. The scanner runs anomaly detectors over daily candles and a confluence screen ranks each symbol by how much independent evidence lines up. It ranks setups to study, never trades to take.
Pure detectors, live feed
Detectors are pure functions over candles: unusual volume versus the 50-day average, new 60-day breakout highs and lows, volatility expansion by ATR percentile, earnings-sized opening gaps, and concentrated options open interest. Scans run concurrently across a watchlist with a 60-second cache and push hits into a rolling in-memory alert buffer you can read newest-first.
Confluence, scored and explained
The confluence screen composes regime, participation, mean-reversion stretch, and live scanner alerts into a single 0-100 score per symbol, with a one-line reason and a study angle. Crucially, context flips sign: statistical stretch counts as opportunity inside a range but as late-entry risk inside a trend. High scores mean worth studying today, not buy, and most symbols scoring low on most days is treated as useful information.
- Anomaly detectors: unusual volume, breakout, volatility expansion, gap, unusual options OI
- Confluence score (0-100) fusing regime, participation, stretch, and alerts
- One-line reason plus a study angle per ranked symbol
- Context-aware scoring: stretch is opportunity in a range, risk in a trend
- Rolling in-memory alert buffer, newest-first
- Concurrent scanning with a 60-second cache and provider fallback
Questions
Does a high score mean I should buy?
No. The score measures how much independent evidence lines up, meaning worth studying today. It is explicitly not a buy signal and never a trade recommendation.
What triggers an alert?
Volume more than 2.5x the 50-day average, a new 60-day high or low, top-decile ATR range, an earnings-sized opening gap, or heavily concentrated options open interest.
Is the alert feed persistent?
Alerts live in an in-memory ring buffer that holds the most recent entries and resets on restart. Candle data comes from Polygon with a labeled mock fallback.