DEV Community

Hugo Kuznicki
Hugo Kuznicki

Posted on

Ranking 80 Tickers in ~1 Second With Only Free Data

Finding the handful of names worth looking at on any given day usually means one of two things: paying for a screener subscription, or clicking through dozens of charts by hand. I didn't want either, so I built a local scanner that does it automatically — and it runs on free data with nothing to subscribe to.

The idea

Pull price and volume history for an 80-ticker universe, run each name through the technical signals that actually matter, and roll them into a single ranked list so the interesting setups float to the top.

The signals

Each ticker gets evaluated for:

  • Momentum and recent trend
  • Volume spikes vs. its own average
  • Golden / death crosses (moving-average crossovers)
  • RSI conditions
  • Proximity to 52-week high / low
  • Breakout setups

Instead of reading six indicators per name, each rolls up into one composite score. You get a ranked shortlist, not a spreadsheet you have to interpret.

The stack

Python, Flask, and yfinance for free OHLCV data — no paid feed. A signal-processing layer computes the indicators and combines them into the composite ranking. The front end is a sortable dashboard: every column sorts, inline sparklines show recent price action, filters narrow by signal type, and auto-refresh keeps the board current. Click any ticker for a detail chart.

The part I care about: speed

It processes roughly 54 tickers in about one second. That number matters more than it looks. A scanner you have to wait on is a scanner you stop opening. When the broad universe collapses into a ranked shortlist almost instantly, checking the market becomes a glance instead of a chore.

What makes it reusable

The signal logic is modular. The universe, the indicators, and the weighting are all things you can change — so your edge (whatever thresholds and signals you actually trust) becomes the thing the scanner optimizes for. It replaces a paid screener and a lot of manual chart-flipping with one local dashboard at zero ongoing cost.

Takeaway

You don't need a paid screener to turn a watchlist into a ranked shortlist. Free data plus a modular signal layer plus a fast dashboard gets you most of the way — and because it's local, there's nothing rate-limiting you out.

If you'd want a breakdown of how the composite score is weighted, drop a comment — that's the piece people usually want to tune first.

Top comments (0)