A Nifty 50 screener that keeps its failures on the record
A personal research dashboard I built with Claude Code in about two days. It screens all 50 Nifty 50 stocks for three technical setups, tracks every pick from the price it was first suggested, and stays silent when the evidence is weak.
2 min read
~2 days
to build
50 stocks
3 setups
4
scheduled sweeps per trading day
What it does
- Screens the Nifty 50 on daily NSE candles for momentum, mean-reversion and order-block setups.
- Gives every accepted setup an entry zone, stop-loss, two targets and an expiry, then follows it through its lifecycle until it hits a target, stops out, or expires.
- Streams live quotes every five seconds and runs sweeps at 09:15, 11:15, 13:15 and 15:15 IST.
- Shows alerts, price history and every signal change on a local dashboard, with CSV export.
Product decisions
- The screener shows nothing when nothing qualifies. A setup has to score at least 72 out of 100 to appear.
- The track record can't flatter itself. Each pick's first suggested price is fixed, and failed, stopped and expired setups stay in the ledger.
- Alerts fire only on real moves. A new state has to hold for three consecutive quote checks before it counts.
- Credentials stay on the server. The app secret and OAuth tokens never reach the browser or the CSV export.
Problems I debugged
- Kept incomplete, duplicate, weekend, holiday and future-dated candles out of the strategy engine.
- Froze the signal lifecycle outside market hours so stale quotes can't trigger entries or stops.
- Handled FYERS rate limits on historical data with paced requests, retries and caching.
- Stopped false alerts from noisy quotes with confirmation checks and a small buffer around each threshold.
This is a personal research tool that reads market data only. It never places orders, and I don't publish returns or hit rates.