Bearish Engulfing
A Bearish Engulfing pattern is a two-candle reversal where a red candle completely engulfs the body of the previous green candle, signalling that sellers overwhelmed buyers in a single session.
What it measures
Candle 1 is green (close > open). Candle 2 is red (close < open) and its body strictly contains candle 1's body — candle 2 opens at or above candle 1's close and closes at or below candle 1's open.
Parameters
| Name | Default | Range | Note |
|---|---|---|---|
| min_body_ratio | 1.5 | 1.0–3.0 | Candle 2's body must be at least this multiple of candle 1's body. |
| require_uptrend | true | true, false | Restrict signals to candles printed after an uptrend. Filters range noise. |
How it behaves
Bearish engulfing at the top of an uptrend, especially at resistance, marks the moment sellers regain control. The signal strengthens with candle-2 volume and with a location at a validated resistance level or upper deviation band.
When it misleads
Same failure modes as its bullish counterpart, mirrored: pointless in ranges, and often just a countertrend bounce in strong uptrends. Combine with an uptrend context and a level to filter out the majority of noise engulfings.
Backtest result
Sourced backtest in preparation — we're running the rule on our own historical candles before publishing numbers we can stand behind.
FAQ
- How is a Dark Cloud Cover different?
- Dark Cloud Cover is the softer version — candle 2 closes below the midpoint of candle 1 but not below its open. Engulfing is the full-body reversal; Dark Cloud Cover is partial.
- Should volume confirm the pattern?
- Ideally, yes. A bearish engulfing on above-average volume is far more decisive than one on shrinking volume — the latter often marks temporary profit-taking rather than a real regime change.
- Do gaps count as engulfing?
- If candle 2 gaps open at or above candle 1's close and then closes below candle 1's open, yes. Session gaps often produce the largest engulfing patterns on daily charts.
Build a strategy with Bearish Engulfing
Drop the block into the Nodlow builder and backtest on real historical data.
Try it in the builder