# Candlestick patterns need context

> Why a raw candlestick scan returns noise, the three context filters that make patterns tradable — location, trend, volume — and NSE scans with each filter built in.

Canonical: https://patternsradar.com/blog/candlestick-pattern-screener-nse

Published 2026-08-16. Related scans: https://patternsradar.com/screener/bullish-engulfing-support.md, https://patternsradar.com/screener/hammer-oversold.md, https://patternsradar.com/screener/morning-star.md, https://patternsradar.com/screener/shooting-star-top.md, https://patternsradar.com/screener/doji-indecision.md

Scan the NSE for every bullish engulfing candle and you will get a long list in any market, on any day. That is the problem. A candlestick pattern is a sentence fragment — two or three bars describing a short fight between buyers and sellers — and a fragment means nothing until you know where it was spoken. The engulfing candle that matters happens *somewhere*: at a level, against a stretch, after a decline. The one that happens mid-range, mid-drift, on thin volume, is shape without story.

This is why every candlestick scan in the [pattern library here](https://patternsradar.com/scans/candlestick-patterns.md) carries context conditions alongside the pattern flag. The pattern proposes; the context disposes.

## Filter one: location

A hammer is a rejection — price driven down, bought back, sellers refused. Rejection only informs when there was something to reject *from*. The [hammer at oversold](https://patternsradar.com/screener/hammer-oversold.md) scan demands the stock be genuinely stretched — RSI under 40 — before the hammer counts; the [bullish engulfing at support](https://patternsradar.com/screener/bullish-engulfing-support.md) wants the engulfing bar printed within reach of the 50-day average, a level with an owner base behind it. In Sift the pattern is a field like any other, so the context is just more conditions:

```sift
pattern is bullish_engulfing within 2 bars
  and rsi(14) < 40
```

The `within 2 bars` matters too: patterns are events, and an event from earlier in the week can still be fresh — a nuance offset-based screeners handle with duplicated clauses, if at all.

## Filter two: the preceding trend

Reversal patterns require something to reverse — and the three-bar patterns carry their trend requirement inside the definition itself. A [morning star](https://patternsradar.com/screener/morning-star.md) *is* a down bar, a small indecision bar, and a strong up bar, in that order; the pattern flag only fires when that sequence printed, which is why its scan can afford to be bare. Single-bar patterns cannot lean on sequence, so their scans add the check explicitly: the [shooting star](https://patternsradar.com/screener/shooting-star-top.md) only counts when it prints into strength, with RSI already above 60.

The neutral case makes the point best. A [doji](https://patternsradar.com/screener/doji-indecision.md) is pure indecision, and indecision is only information where one side had been winning — so the scan requires the stock above its 50-day average, with volume running above normal, before a doji is worth a look.

## Filter three: volume

Patterns describe a fight; volume says how many showed up to it. An engulfing bar on twice normal volume is a verdict with attendance. The same bar on a sleepy session is easier to dismiss — half the pattern scans here carry a `rel_volume` condition for exactly this reason, the same filter that separates real breakouts from drifts [everywhere else on the site](https://patternsradar.com/scans/breakouts.md).

## Then make the folklore testable

Candlestick lore is old, confident, and mostly unexamined on Indian data. Here it does not have to be: every pattern scan carries the hit-rate replay, so "does a morning star after weakness actually lead anywhere on the NSE?" is an empirical question with a ninety-millisecond answer. Read the table with [the usual discipline](https://patternsradar.com/blog/how-to-read-scan-hit-rate.md) — count, payoff, holding window — and let the patterns that fail replay go. The ones that survive context *and* replay are few, which is rather the point: a screener's job is not to find you more candles, it is to find you fewer.
