Engulfing Candlestick Pattern

The engulfing pattern is one of the most widely recognised two-candle reversal signals. A bullish engulfing occurs when a small bearish candle is completely engulfed by a larger bullish candle, suggesting buyers have overwhelmed sellers. The bearish engulfing is the mirror image.

How to Identify an Engulfing Pattern

An engulfing pattern is a two-candle formation where the second candle's body completely covers (engulfs) the first candle's body. The pattern comes in two variants — bullish and bearish — each signalling a potential shift in control between buyers and sellers.

Context matters more than the pattern itself. An engulfing candle at a key support or resistance level, or at the end of an extended move, carries far more weight than one occurring in the middle of a range.

Bullish Engulfing

A bullish engulfing forms when a small bearish candle is followed by a larger bullish candle whose body completely covers the prior body. The previous candle must be bearish (close < open) and the current candle bullish (close > open). Volume confirmation strengthens the signal.

How to trade it

  • Wait for price to pull back to a key level (e.g. 200 EMA or a horizontal support zone)
  • Look for a bullish engulfing candle to form at that level
  • Enter on the close of the engulfing candle with a stop below its low
  • Target the next significant resistance level or use a trailing stop
Bullish Engulfing Detector indicator applied to a NAS100 30-minute chart, marking bullish engulfing candles with a BU label
The Bullish Engulfing Detector indicator (code below) applied to a NAS100 30-minute chart — each 'BU' marker flags a candle where the bullish body fully engulfs the prior bearish body.
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
// Copyright (c) 2026 - BuildTradingStrategies.com / TradeXecution.com

//@version=6
indicator("Bullish Engulfing Detector", overlay=true)

// Previous candle bearish
prevBearish = close[1] < open[1]

// Current candle bullish
currBullish = close > open

// Current candle's body engulfs previous candle's body
bodyEngulfs = open <= close[1] and close >= open[1]

// Only trigger on a confirmed/closed bar
bullishEngulfing = prevBearish and currBullish and bodyEngulfs and barstate.isconfirmed

// Draw a shape below the completed engulfing bar
plotshape(
     bullishEngulfing,
     title="Bullish Engulfing",
     style=shape.triangleup,
     location=location.belowbar,
     text="BU",
     size=size.small
)

Bearish Engulfing

A bearish engulfing is the inverse: a small bullish candle followed by a larger bearish candle whose body fully engulfs the prior body. It signals that sellers have overwhelmed buyers and is most significant at resistance levels or after an extended uptrend.

How to trade it

  • Identify an uptrend or a rally into a known resistance zone
  • Wait for a bearish engulfing candle to form at that level
  • Enter short on the close of the engulfing candle with a stop above its high
  • Target the next significant support level or use a trailing stop
Bearish Engulfing Detector indicator applied to a NAS100 30-minute chart, marking bearish engulfing candles with a BE label
The Bearish Engulfing Detector indicator (code below) applied to a NAS100 30-minute chart — each 'BE' marker flags a candle where the bearish body fully engulfs the prior bullish body.
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
// Copyright (c) 2026 - BuildTradingStrategies.com / TradeXecution.com

//@version=6
indicator("Bearish Engulfing Detector", overlay=true)

// Previous candle bullish
prevBullish = close[1] > open[1]

// Current candle bearish
currBearish = close < open

// Current candle's body engulfs previous candle's body
bodyEngulfs = open >= close[1] and close <= open[1]

// Only trigger on a confirmed/closed bar
bearishEngulfing = prevBullish and currBearish and bodyEngulfs and barstate.isconfirmed

// Draw a shape above the completed engulfing bar
plotshape(
     bearishEngulfing,
     title="Bearish Engulfing",
     style=shape.labeldown,
     location=location.abovebar,
     text="BE",
     size=size.small
)

Strict variant

The basic detector flags every candle where the bearish body engulfs the prior bullish body — useful for scanning, but it catches many low-quality setups in choppy conditions. The strict version adds two extra filters:

  • Prior upward momentum — the previous candle's close must be higher than the candle before it (`close[1] > close[2]`), confirming the pattern forms after at least a short up-move rather than in sideways noise.
  • Full range engulfing — the current candle's high-to-low range must also engulf the previous candle's full range (`high >= high[1] and low <= low[1]`), not just the bodies. This ensures genuine dominance by sellers across the entire session.

Together these filters dramatically reduce false signals, especially on lower timeframes.

Bearish Engulfing Detector - Strict indicator applied to a NAS100 15-minute chart, marking strict bearish engulfing candles with a BE-S label
The strict variant applied to a NAS100 15-minute chart — notice significantly fewer signals compared to the basic detector, filtering out low-quality setups in choppy price action.
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
// Copyright (c) 2026 - BuildTradingStrategies.com / TradeXecution.com

//@version=6
indicator("Bearish Engulfing Detector - Strict", overlay=true)

// Previous candle bullish
prevBullish = close[1] > open[1]

// Current candle bearish
currBearish = close < open

// Current candle's body engulfs previous candle's body
bodyEngulfs = open >= close[1] and close <= open[1]

// Simple up move into the pattern
afterUpMove = close[1] > close[2]

// Current candle's full range engulfs previous candle's full range
rangeEngulfs = high >= high[1] and low <= low[1]

// Only trigger on a confirmed/closed bar
bearishEngulfing = prevBullish and currBearish and bodyEngulfs and afterUpMove and rangeEngulfs and barstate.isconfirmed

// Draw a shape above the completed engulfing bar
plotshape(
     bearishEngulfing,
     title="Bearish Engulfing",
     style=shape.triangledown,
     location=location.abovebar,
     text="BE-S",
     size=size.small
)

Strengths and Limitations

Engulfing patterns are visually clear, easy to code in Pine Script, and widely followed — which can create self-fulfilling behaviour at obvious levels. However, they produce many false signals in ranging markets and on lower timeframes where noise dominates. Always combine with at least one additional confluence factor such as volume, a key level, or a trend filter.

Strict vs basic mode — when to use each

Many engulfing detectors expose a 'strict' option that additionally requires the second candle's range (high–low) to engulf the first candle's range, not just the body. The choice is a trade-off:

  • Basic mode (body engulfs body only) — more signals, more false positives, better for real-time scanning when you want maximum candidate setups to manually filter.
  • Strict mode (range + body engulf) — fewer signals, higher quality. Best for systematic backtesting and automated strategies, because it filters out the half-engulfing candles that dominate ranging conditions.

Always require confirmation

Regardless of strict vs basic, the single most important rule is to confirm the signal on the bar that follows. Do not enter on the close of the engulfing candle itself — wait for the next bar to close in the expected direction (or a clean break of the engulfing candle's high for a bullish setup / low for a bearish one). This single discipline discards the majority of failed engulfing signals, at the cost of giving back a small amount of favourable move at entry.