The candlestick scanner runs every trading day and reports which named candlestick patterns appeared across a fixed list of US stocks and ETFs. This page documents exactly how it works — including what it cannot do — so you can judge the output for yourself.

The pipeline

  1. Fetch prices. Daily OHLC (open, high, low, close) bars are downloaded from Yahoo Finance via the yfinance library, covering a rolling three-month window.
  2. Detect patterns. Each ticker’s price series is passed through TA-Lib, an open-source technical analysis library, which tests for 61 named candlestick patterns.
  3. Classify direction. TA-Lib returns a signed value per pattern. Positive readings are labelled bullish, negative bearish. A ticker can print several patterns on the same day, or none.
  4. Publish. Results are rendered into static HTML and deployed. There is no database call and no client-side fetch when you load the page — you are reading a pre-built file.

The ticker universe

The scanner covers a fixed list of 168 US symbols — large- and mid-cap stocks plus major ETFs including SPY and QQQ, with some higher-volatility names. The list lives in the repository as a plain CSV and changes only when we deliberately edit it.

This matters for interpreting results: the scanner is not screening the whole market. It cannot surface a pattern on a stock that is not on the list, and “no bullish setups today” means none among these 168 — not none anywhere.

A handful of symbols occasionally fail to download and are simply absent from that day’s results rather than reported as an error.

Schedule

The job runs at 5:15 PM Eastern, after the US close, via a scheduled GitHub Action. The workflow accounts for daylight saving so it fires once per day year-round.

Two honest caveats:

  • The job currently runs seven days a week. On weekends and market holidays, Yahoo returns the most recent session’s data, so those runs repeat Friday’s (or the prior session’s) results rather than reporting anything new. Check the date shown on the page.
  • Results are end-of-day only. Nothing here is real-time or intraday.

What the patterns actually mean

A candlestick pattern is a description of the shape of recent price bars — nothing more. “Bullish Engulfing” means the most recent candle’s body fully engulfed the prior one in a particular way. It is a statement about what already happened.

It is not a forecast, and we would encourage some scepticism about treating it as one:

  • Definitions are library-specific. TA-Lib encodes one particular reading of each pattern. Another platform applying stricter or looser rules will legitimately disagree about the same candles.
  • Context is stripped out. The scanner does not know about trend, support and resistance, volume, earnings dates, or news. A textbook reversal pattern in the middle of a strong trend usually means very little.
  • Predictive power is weak in isolation. Published research on candlestick patterns is mixed at best, and most single patterns show little reliable edge on their own. Traders who find them useful generally use them as one input for timing a thesis they already hold — not as a reason to open a position.
  • Some patterns are very rare. A pattern that has appeared a handful of times across the whole history is not a basis for any statistical claim, and we would rather say so than dress it up.

Data quality

Yahoo Finance data is free and convenient, not institutional grade. It can be delayed, retroactively revised, or occasionally wrong, and its handling of splits and dividend adjustments can shift historical bars. We do not independently verify it against a second source.

If a result looks wrong, it may well be. Tell us — and check the chart on your broker before acting on anything here.

What this is for

Treat the scanner as a starting point for chart review: a way to narrow 168 tickers down to a shorter list worth actually looking at, faster than scrolling charts one by one. Every ticker links through to a chart view and to the relevant strategy guides so you can form your own view.

It is not a signal service, and it is not advice. See the disclaimer.