Short answer: the popular engulfing scripts on TradingView don't agree on what an engulfing candle is. Of the 16 most-boosted open-source ones, six only ask for a close past the last candle's open, and the most boosted, AI-EngulfingCandle by ahmedirshad419 (6,637 boosts), never checks the engulfing candle's own colour. For the classic rule, opposite colours and a bigger body that covers the last one, HPotter's Bullish Engulfing (4,848) and Bearish Engulfing (3,115) are the plainest, and their alerts wait for the close. TradingView's own built-in Engulfing indicators use the same body test with a size and a trend check. Twelve of the 16 mark the candle while it is still forming.
Most lists name engulfing indicators.
This one reads them.
What we checked
An engulfing candle is a two-candle pattern: the second candle's body covers the first one's, and it closes the other way. TradingView's own built-in indicator describes a candle whose body "fully overtakes the body from the day before", and adds that "it is not essential for this pattern to completely overtake the range (high to low), rather only the open and the close." The pattern only exists once the second candle closes: until then its close is just the last price.
We searched TradingView's scripts for four terms on 31 October 2026 ("engulfing", "engulfing candle", "bullish engulfing" and "engulfing pattern") and kept the titles with "engulf" in them. That returned 119 scripts: 95 open source, 19 protected (free to add, with the code hidden) and 5 invite-only. We read the 16 most-boosted open-source ones, every line that decides when an engulfing is marked, alerted or traded, and TradingView's built-in Engulfing (bullish) and Engulfing (bearish), which its script search doesn't list. HPotter's bullish and bearish scripts share a row: one is the other's mirror. The questions:
- Body or range: must the new body cover the last body, the whole candle from high to low, or neither?
- Colours: must the two candles be opposite colours?
- Size: must the new body be bigger, or bigger than an average?
- Trend, location or volume: does it want a move down first, an RSI level, a moving average, or volume?
- When it decides: on the closed candle, or on the live one?
- Alerts, and the licence line.
Boosts as TradingView's search showed them on 31 October 2026. "The live candle" means the mark can appear while the candle is forming and vanish if it closes differently.
The table
| Script | Boosts | Engulfs | Opposite colours | Size | Trend, location or volume | Decides on | Alerts | Licence |
|---|---|---|---|---|---|---|---|---|
| Engulfing (bullish) and Engulfing (bearish) (TradingView, built in) | Built in | The body: the close at or past the last open, the open at or past the last close, one of them strictly | Yes | A body above the 14-candle average of bodies, after one below it | A close below the 50-period SMA for bullish (above for bearish), by default | The live candle | 1 each, "New pattern detected" | TradingView's own; no licence line |
| AI-EngulfingCandle (ahmedirshad419) | 6,637 | Neither: a close at or past the last candle's open; its range test is commented out | The last candle's only | None | RSI(14) at or below 30 on it or one of the 2 candles before (70 and above for bearish) | The live candle | None | MPL 2.0 |
| Engulfing Candle Indicator (rmunoz) | 6,060 | The body after an opposite candle; after a same-colour one, an open below its open and a close above it (mirrored) | No: the last candle's colour isn't checked | None | None | The live candle | 2 alertconditions | None |
| Bullish Engulfing automatic finding script and Bearish Engulfing automatic finding script (HPotter) | 4,848 and 3,115 | The body | Yes | A bigger body | None | Its bar colour on the live candle; its alert at the close | 1 alert() each, once per bar close | None |
| BEST Engulfing + Breakout Strategy (Daveatt) | 4,368 | Neither: a close past the last open with a bigger body; its open isn't checked | Yes | A bigger body | Enters when the last engulfing and the last cross of a 32-period SMA point the same way | The close (a strategy), filled at the next open | None of its own | None |
| Engulfing Signal Considering Three Bars Before (amri_pangestu) | 3,500 | The body | Yes | A bigger body | The engulfed candle and the 2 before it all red (green for bearish) | The live candle | 2 alertconditions, written != na, a test the Pine manual says not to use | None |
| Engulfing Detector (Supply and Demand) (BitcoinJesus-Not-Roger-Ver) | 2,641 | Neither: a close past the last candle's open | The last candle's only | None | None | The live candle | None | None |
| Engulfing Candles Detector (Daveatt) | 1,610 | The body, HPotter's rule | Yes | A bigger body | None | The live candle | 2 alertconditions, written != na, a test the Pine manual says not to use | None |
| Tomb Reversal Signal Engulfing + RSI Momentum Detector (tommybeaulieu7b) | 1,595 | Neither: a close past the last candle's open | Yes | A body over half the candle's true range | RSI(14) under 50 and a close below the close 5 candles back (mirrored for bearish) | The live candle | None | None |
| Buy&Sell Bullish Engulfing - The Quant Science (thequantscience) | 1,355 | The body: TradingView's built-in rule, line for line | Yes | As the built-in | A close below the 50-period SMA, by default; bullish only | The close (a strategy, its orders processed on the close) | None of its own | MPL 2.0 |
| Engulfing Pinbar [serkany88] (serkany88) | 1,333 | The body and the range: a low under the last low and a close at or past the last high | The last candle red or a doji (green or a doji for bearish) | A lower wick at least 30% of the body, an upper wick under 60% (mirrored) | None; a higher-timeframe check, off | Its marks on the live candle; its alert() at the close | alert() once per bar close, and 2 alertconditions | MPL 2.0 |
| Next-Gen Engulfing Retracement (RickSimpson) | 1,301 | Neither: a close past the last candle's open | Yes | The engulfed body between 1/8 and 1.1 times ATR(100) | Labels only "strong" ones by default: a green candle, a bearish engulfing, then the bullish one (mirrored) | The live candle; its alerts mid-candle | alert() once per bar: every engulfing, the strong ones, and line crosses | MPL 2.0 |
| Liquidity Engulfing (Nephew_Sam_) (nephew_sam_) | 1,296 | Neither: a low under the last low and a close past the last candle's open | Its own only; the last candle's with "Filter Engulfing" (off) | None | None; it reads the chart's candles and, at or above the chart's timeframe, the 1-hour, 2-hour, 4-hour and daily ones | Its alerts on the last closed candle; its table also shades the live one | A JSON alert() per timeframe, once per bar | None |
| Pin Bar, Inside Bars and Engulfing Candle Sticks (Adam-Robinson) | 1,197 | The range only: a higher high, a lower low and a higher close than the last candle | No | A lower wick longer than the upper (mirrored) | Volume above the last candle's, on by default | The live candle | 2 alertconditions, and 3 for pin and inside bars | None |
| Engulfing Look-back Alert (cryptovesta) | 1,081 | The range: a trade under the last low and a close at or past the last high | No | None by default; a comparison with the last 20 candles, off | None | Closed candles: it reads the candle before, and marks it one candle back | 2 alertconditions, and 1 for a doji | None |
| Bullish and Bearish Engulfing (cma) | 1,062 | The body and the range, each end at or past the last candle's | No | None | None | The live candle | None | None |
| Engulfing Volume Desk (ours) | — | The body by default; "Body + full range" adds the range | Yes; a doji on either side never counts | A bigger body | A close above a rising EMA 200 for longs (below a falling one for shorts), on; volume graded Low, Medium or High against the 20 candles before, and missing volume blocks a setup | Closed candles; its orders are live from the next tick | Order-fill messages for a strategy alert, such as "Aggressive entry filled" | Sold, with its source; the file keeps its MIT line |
Three more boosted ones have closed code, so they aren't in the table: Bullish and Bearish Engulfing Patterns auto detection by AlfonsoMoreno (4,651 boosts), Engulfing Bar by matsu_bitmex (1,517) and Engulfing Candle by Atilla Yurtseven (1,070) are protected, free to add with the code hidden; we can't say what their code does.
What the code says
Three rules go by one name. Seven of the 16 test that the new body covers the last body, two of them the range as well: cma's and serkany88's. One, rmunoz's, tests the body only after an opposite candle. Two test the range alone: Adam-Robinson's wants a higher high and a lower low than the last candle, and cryptovesta's a trade under the last low and a close at or past the last high, whatever the bodies do. Six ask for less than either: a close past the last candle's open, with the new candle's open left free, so a candle that opens inside the last body and closes just past its open counts, though it covers only part of it. Those six are ahmedirshad419's, BitcoinJesus-Not-Roger-Ver's, tommybeaulieu7b's, RickSimpson's, nephew_sam_'s and Daveatt's strategy.
The two most boosted are the loosest. ahmedirshad419's AI-EngulfingCandle (6,637 boosts) asks only that the last candle was red and this one closes at or above its open, close >= open[1] and close[1] < open[1], with its range test commented out. It never checks this candle's own colour, so a red candle that gaps up and closes above the last open counts as bullish. It marks one only after RSI(14) was at or below 30 on that candle or one of the two before (70 and above for bearish), labels it "buy MIT" or "sell MIT", and has no alerts. rmunoz's Engulfing Candle Indicator (6,060) never checks the last candle's colour: after a red candle its rule is the body, but after a green one any candle that opens below its open and closes above it counts as bullish engulfing, even with a smaller body.
HPotter's pair is the plain body rule. open[1] > close[1] ? close > open ? close >= open[1] ? close[1] >= open ? close - open > open[1] - close[1]: opposite colours, a body that reaches both ends of the last one, and strictly bigger. Its comment speaks of a downtrend; the code checks none. The bar colour shows on the live candle, but its alert() goes "once per bar close". Daveatt's Engulfing Candles Detector says it was "inspired by HPotter" and uses the same rule, and amri_pangestu's adds the two candles before the engulfed one, all the same colour.
Two sets of alerts written a way the manual warns against. Daveatt's detector writes its alerts as alertcondition(bullishEngulfing != na, …) and amri_pangestu's as alertcondition(Bueng != na, …): each compares the bar colour with na. Both are Pine version 4, whose manual says not to test for na with a comparison, since it may not work, and to use na() instead. Today's manual, read on 31 October 2026, says such comparisons "always return false if at least one of the operands is a variable with an na value", and that using na directly as an operand now "causes a compilation error". Don't rely on those alerts as written. We haven't run them on a live chart.
TradingView's built-in checks a size and a trend, and The Quant Science copies it. The built-in's bullish candle needs a green body above the 14-candle average of bodies (an EMA), a red one before it below its own average, the body test, and by default a close below the 50-period SMA: its "Detect Trend Based On" setting also offers SMA50 with SMA200, or no detection. thequantscience's strategy writes the same line, c_down_trend and c_white_body and c_long_body and c_black_body[1] and c_small_body[1] and close >= open[1] and open <= close[1] and (close > open[1] or open < close[1]), places a buy limit at the close, long only, and exits when its equity crosses 2% above or below where it stood at the entry.
Trend, location and volume. Daveatt's strategy enters when the last engulfing and the last cross of a 32-period SMA point the same way; its backtest window ends on 31 December 2020 by default, so on today's chart it opens no trades until you move it. tommybeaulieu7b's wants RSI(14) under 50, a close below the close five candles back, and a body over half the candle's true range. RickSimpson's labels only "strong" ones by default (a green candle, a bearish engulfing, then a bullish one) and needs the engulfed body between an eighth of ATR(100) and 1.1 times it; it draws a line at each engulfing candle's low (its high for bearish) until price trades through, and its alerts, on by default, go "once per bar", while the candle is still forming. Only Adam-Robinson's reads volume: more than the last candle's, on by default. Below the 16, Engulfing Sweeps - Milana Trades (579 boosts) can ask for 1.5 times the 20-candle average volume, off by default; Engulfing Pattern with Volume and EMAs by herbieheguel271124 (157) asks for more than that average, and Engulfing Candles (ATR-Based) with Volume Spike by Marc_Thiart (156) marks "BE*" at 1.5 times it. All three averages include the candle itself.
Twelve of the 16 mark the live candle. None of the 16 checks barstate.isconfirmed. Twelve draw their mark while the candle is forming, so it can appear mid-candle and be gone when the candle closes. Four decide on closed candles: the two strategies, which TradingView runs at each candle's close; cryptovesta's, which reads the candle before and draws its mark one candle back; and nephew_sam_'s alerts, which read the last closed candle on each of up to five timeframes and send JSON (its table also shades the live candle's, at half strength). Where a script uses alertcondition(), the frequency you pick when you create the alert decides: "Once per bar close" waits for the close.
Lines from the candle. BitcoinJesus-Not-Roger-Ver's draws two lines from each engulfing: one at the last candle's open, one at the lower of the two lows (the higher of the highs for bearish). It greys them when price trades back through the open and deletes them when it trades through the other. serkany88's is a pin bar that engulfs: a low under the last low, a close at or past the last high, a body that covers the last one, and a lower wick at least 30% of the body. If it's the zone before a move you're after, our order block code read reads 14 scripts for which candle each one boxes.
One candle, five rules
The same two candles, read five ways. Move your candle's open and close: the made-up red candle before it stays put, and each rule says whether yours engulfs it.
- Bullish engulfing
The body: opposite colours, covers the last body, bigger
HPotter's Bullish and Bearish Engulfing; our desk's default
open[1] > close[1] and close > open and close >= open[1] and close[1] >= open and close - open > open[1] - close[1]
- No
The body and the range
our desk's "Body + full range" option
the body rule and high >= high[1] and low <= low[1]
- Bullish engulfing
A close past the last candle's open
AI-EngulfingCandle (ahmedirshad419), without its RSI check
close >= open[1] and close[1] < open[1]
- Bullish engulfing
No colour check on the last candle
Engulfing Candle Indicator (rmunoz)
open <= close[1] and open < open[1] and close > open[1]
- No
The range: through the last low, a close past the last high
Engulfing Look-back Alert (cryptovesta)
close[1] >= high[2] and low[1] < low[2], read one candle later
Your green candle, open 100.1, close 101.1: 3 of the 5 rules call it engulfing.
Bullish: the body rule, the close past the open and rmunoz's. No: the body-and-range rule and cryptovesta's range rule.
Illustrative candles, made up for this explainer (simulated): not a market and not a result. Your candle's wicks sit 0.2 beyond its body. Each rule is the script's own condition on two candles, without its other checks (AI-EngulfingCandle's RSI, a trend, a size or volume), so a script can still say no where its rule says yes. cryptovesta's reads the candle once the next one opens; the others read it while it forms. Our desk's two rules are its f_direction helper, with the engulfing definition set to Body or Body + full range.
Read as text: the two candles, and what each rule says
| Candle | Open | High | Low | Close |
|---|---|---|---|---|
| The last one (red) | 101.0 | 101.4 | 99.7 | 100.2 |
| Yours | 100.1 | 101.3 | 99.9 | 101.1 |
- The body: opposite colours, covers the last body, bigger (HPotter's Bullish and Bearish Engulfing; our desk's default): Bullish engulfing.
- The body and the range (our desk's "Body + full range" option): No.
- A close past the last candle's open (AI-EngulfingCandle (ahmedirshad419), without its RSI check): Bullish engulfing.
- No colour check on the last candle (Engulfing Candle Indicator (rmunoz)): Bullish engulfing.
- The range: through the last low, a close past the last high (Engulfing Look-back Alert (cryptovesta)): No.
From the start, a green candle that covers the last body but not its wicks, three of the five call it bullish engulfing: the body rule, the close past the open and rmunoz's. "Covers it all" gets all five. "Past its open only" and "A red candle" get one each, the close past the open, which calls even a red candle bullish. "Red after red" gets two, rmunoz's and cryptovesta's, both calling a red candle after a red one bearish engulfing.
Ours
Engulfing Volume Desk isn't on TradingView's search: it's a Pine v6 strategy, and its full source comes in Pine Pro Library, $49 once for every desk and every update. Its source says:
- The rule: its "Engulfing definition" is "Body" by default: the last candle red (green for a short), this one green, its open at or below the last close, its close at or above the last open, and its body strictly bigger,
math.abs(c - o) > math.abs(pc - po). A doji on either side doesn't count. "Body + full range" addsh >= ph and l <= pl. - The trend: its "EMA trend filter", on by default: a long needs a close above the EMA 200 and the EMA higher than 5 candles ago; a short mirrors it.
- Volume: relative volume is the candle's volume over the average of the 20 before it,
ta.sma(volume, volumeLength)[1], graded Low below 1.0, Medium from 1.0 and High from 1.5. With "Minimum confirmation" at Low, the default, every grade passes; missing or zero volume, on the candle or any of the 20 before, blocks a setup. Its panel says "Volume strength only" and "Probability untested". - When it decides: everything inside
if barstate.isconfirmed, in a strategy withcalc_on_every_tick = false, so on the closed candle, with its orders live from the next tick. - The plan: a stop order one tick past the last candle's high (its low for a short), or the next tick when the close is already through; a stop one tick past both candles; a target at 2R; the order cancelled after five candles, or when a close shows the stop was touched first. One setup at a time.
- Alerts: no alertcondition() and no alert(). Its orders carry messages for a strategy alert: "Aggressive entry filled" and "Aggressive bracket filled", and, with its retest entry on, "Retest entry filled" and "Retest bracket filled".
Its triangles and plan lines appear only once the candle has closed. It's a strategy, so TradingView's Pine Screener can't run it.
We tested it. On OANDA gold's 4-hour chart, after costs and overnight financing, the plain rule lost on 2023–24, the history we had held back, and finished ahead on 2025–26, the period we developed it on. Its volume grade "described the candle; it did not tell good setups from bad ones." Every number is in the Engulfing Volume Desk study. We haven't tested any other script here.
Scanners, screeners, MT4 and MT5
Every script here, ours included, is Pine Script, and Pine runs only on TradingView: not on MT4, MT5 or Chartink. We haven't checked what MT4, MT5 or Chartink offer on their own.
A Pine indicator reads one chart. Daveatt's BEST Ultimate Engulfing Screener (573 boosts) checks five symbols from it, EURUSD, GBPUSD, AUDUSD, NZDUSD and USDCAD by default, with his strategy's rule. To run an engulfing script over a whole watchlist on TradingView, you need its Pine Screener, which "allows you to scan your custom watchlists and indices using Pine Script", in its help's words, read on 31 October 2026; the same page says it doesn't support strategies or patterns. It also needs a plot or an alertcondition() to pick a script, so HPotter's pair and cma's, which only colour bars, can't be used there. TradingView's pricing page, read the same day, ticks the Pine Screener for Premium and Ultimate only (our Pine Screener check). TradingView's Stock Screener is a different tool: it filters by TradingView's own data and doesn't run the scripts here. We haven't run these scripts in the Pine Screener.
Check one yourself
- Find the body. After a red candle,
close >= open[1]andopen <= close[1]together are the body;close - open > open[1] - close[1]makes it bigger.high >= high[1]andlow <= low[1]are the range.close > open[1]alone is only a close past the last open. - Find the colours.
close[1] < open[1]is the last candle red;close > openis this one green. A script that checks one and not the other calls some same-colour pairs engulfing. - Find the close.
barstate.isconfirmed,alert.freq_once_per_bar_close, a strategy, or a rule on[1]and[2]values decides on a closed candle. Without one of them, set your alert to "Once per bar close". How to tell if an indicator repaints has the full check. - Find the alert. An alertcondition() on
x != naisn't a reliable test: the Pine manual says not to compare with na, and version 6 won't compile it.not na(x)is the test that works.
Alerts on an indicator need a paid plan. TradingView's pricing page, read on 31 October 2026, shows no technical alerts on indicators on Basic, 20 on Essential, 100 on Plus, 400 on Premium and 1,000 on Ultimate.
Sources
- Each script's Pine source, as TradingView served it on 31 October 2026, at its link in the table; TradingView's built-in Engulfing (bullish) and Engulfing (bearish), as its script service served them that day.
- TradingView's Pine manual, read on 31 October 2026: Type system (na and comparisons).
- The Pine version 4 manual, read the same day: Type system (testing for na).
- TradingView's pricing page and its help page TradingView Pine Screener: key features and requirements, read on 31 October 2026.
- Engulfing Volume Desk: its Pine source,
engulfing-volume-desk.pine(v0.6.1), in Pine Pro Library.
Limits
One code read, on 31 October 2026, of the versions TradingView served that day. Scripts change, and boosts measure popularity, not quality. The drill runs made-up candles, not market data. We build and sell Engulfing Volume Desk, and we have no relationship with any author named here. Nothing here is financial advice.
Frequently asked questions
What is the best engulfing candle indicator for TradingView?
It depends on which engulfing you mean. The most boosted, AI-EngulfingCandle by ahmedirshad419 (6,637 boosts), only asks for a close past the last candle's open after an RSI extreme, and never checks the engulfing candle's own colour. For the classic rule, opposite colours and a bigger body that covers the last one, HPotter's Bullish Engulfing (4,848 boosts) and Bearish Engulfing (3,115) are the plainest, and their alerts wait for the close. TradingView's built-in Engulfing indicators use the same body test with a size and a trend check.
Does TradingView have an engulfing candle indicator?
Yes, two built in: Engulfing (bullish) and Engulfing (bearish). Each wants opposite colours and a body that covers the last one's open and close, a body above the 14-candle average of bodies after one below it, and by default a close below the 50-period SMA for a bullish one (above it for a bearish one). They mark the live candle and have one alert each, New pattern detected.
What does an engulfing candle indicator check?
It depends on the script. Of the 16 most-boosted open-source ones we read, seven test the body (two of them the range as well), two the range alone, one the body only after an opposite candle, and six only a close past the last candle's open. Eight require opposite colours, one reads volume, and twelve mark the candle while it is still forming.
Is there an engulfing candle indicator for MT5 or MT4?
Not among these: every script here, ours included, is Pine Script, which runs only on TradingView. We haven't checked what MT4 or MT5 offer.
Is there an engulfing candle scanner or screener, like on Chartink?
Not from these scripts on their own: each reads one chart, and Daveatt's BEST Ultimate Engulfing Screener (573 boosts) checks five symbols from it. TradingView's Pine Screener runs a Pine indicator over a watchlist or an index; its pricing page, read on 31 October 2026, ticks it for Premium and Ultimate only, and its help says it doesn't run strategies. Pine doesn't run on Chartink, and we haven't checked Chartink's own scans.
Which engulfing candle indicator does ProEA make?
Engulfing Volume Desk, a strategy in Pine Pro Library, $49 once with the full Pine v6 source of every desk. On closed candles it takes the body rule, opposite colours and a strictly bigger body that covers the last one (the range too, if you switch it on), with an EMA 200 trend filter, grades the candle's volume against the average of the 20 before it as Low, Medium or High, and freezes one plan: a breakout entry, a stop beyond both candles and a 2R target.



