Pattern tools break down on the size question. A body that engulfs on gold is nothing on a quiet cross. The candlestick alert indicator sizes every test against the current range reading rather than a fixed number, so one set of settings works wherever you load it.
This build ships as a compiled .ex4 for MT4 and .ex5 for MT5; the screenshots below come from EURUSD H1.
| Platforms | MT4 (.ex4) + MT5 (.ex5) |
|---|---|
| Chart window | Main price chart |
| Plots | 3: Bullish Pattern, Bearish Pattern, Neutral Pattern |
| Alerts | popup, push notification, email, sound |
| Inputs | 33 |
What the Candlestick alert Indicator draws on the chart
Three arrow plots and text labels.
`Bullish Pattern` uses arrow 233 in chartreuse.
`Bearish Pattern` uses arrow 234 in orange red.
`Neutral Pattern` uses arrow 159 in khaki.
Each detection gets its name printed beside it.
A panel counts what it found recently.
- Bullish Pattern: arrow, chartreuse, width 3, arrow code 233
- Bearish Pattern: arrow, orange red, width 3, arrow code 234
- Neutral Pattern: arrow, khaki, width 1, arrow code 159

How the Candlestick alert Indicator calculates its values
A size floor first
Size comes first. `InpMinRangeATR` `0.45` of the `InpAtrPeriod` `14` reading is the floor. A bar under that gets skipped before any shape test runs.
Each shape in turn
Every pattern has a rule. `InpMinBodyATR` `0.35` sizes an engulfing body. `InpPinBodyPct` `33.0` caps a pin body, and `InpPinWickMult` `2.00` sets its tail.
Spacing them out
`InpMinGap` `3` keeps marks apart. `InpTrendFilter` ships off. Switch it on and a mark must agree with a `InpTrendPeriod` `50` average.
How to read the signals
Colour splits bullish, bearish and neutral.
The printed name says which pattern fired.
Neutral covers inside bars and doji.
Marks sit `InpArrowATR` `1.15` ranges off the bar.
The trend filter thins the count sharply.
A panel counts the last two hundred bars.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
`EnableAlerts` sits over the pattern alerts and ships true with `EnablePopup`. `EnablePushNotify` reaches a phone, `EnableEmail` posts mail and `EnableSound` plays `SoundFile`. Those three arrive off.
Every Candlestick alert Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
InpAtrPeriod |
ATR period (size filters + offsets). Bars behind each size test, `14`. | 14 |
InpMinRangeATR |
Bar range must be >= this x ATR. Least bar range, `0.45`. | 0.45 |
InpMinBodyATR |
Engulfing body must be >= this x ATR. Least engulfing body, `0.35`. | 0.35 |
InpPinBodyPct |
Pin body <= this % of the range. Pin body share, `33.0`. | 33.0 |
InpPinWickMult |
Dominant wick >= this x body. Wick against body, `2.00`. | 2.00 |
InpPinWickPct |
Dominant wick >= this % of the range. | 55.0 |
InpPinOppPct |
Opposite wick <= this % of the range. | 22.0 |
InpDojiBodyPct |
Doji body <= this % of the range. Doji body cap, `10.0`. | 10.0 |
InpUseEngulf |
Detect engulfing bars. | on |
InpUsePin |
Detect hammer / shooting star. | on |
InpUseOutside |
Detect outside bars. | on |
InpUseInside |
Detect inside bars. | on |
InpUseDoji |
Detect doji bars. | on |
InpTrendFilter |
Directional patterns must agree with the EMA. Ask for trend agreement, `false`. | off |
InpTrendPeriod |
EMA period for the filter. Bars in that average, `50`. | 50 |
InpMinGap |
Minimum bars between arrows (buffer-scanned). Bars between marks, `3`. | 3 |
InpNeutralATR |
Neutral dot distance above the bar (x ATR). | 0.85 |
Display settings
| Setting | What it does | Default |
|---|---|---|
InpArrowATR |
Arrow distance from the bar (x ATR). Mark distance, `1.15`. | 1.15 |
InpLabelBars |
Label detections within N bars. | 300 |
InpMaxLabels |
Hard cap on text objects. | 260 |
InpFontSize |
Pattern-name font size. | 8 |
InpShowPanel |
Show summary panel. | on |
InpPanelCorner |
0=UL 1=UR 2=LL 3=LR. | 0 |
InpPanelX |
Panel X offset. | 12 |
InpPanelY |
Panel Y offset (clears one-click panel). | 120 |
InpPanelScan |
Bars counted by the panel. | 200 |
InpPanelBg |
Panel background. | black |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
(see inputs panel) | on |
EnablePopup |
(see inputs panel) | on |
EnablePushNotify |
(see inputs panel) | off |
EnableEmail |
(see inputs panel) | off |
EnableSound |
(see inputs panel) | off |
SoundFile |
(see inputs panel) | alert.wav |

Settings that fit your chart
Tying each test to the range reading is what lets this travel. EURUSD H1 is the reference chart. Patterns come several times a day there. On M5 the size floor rejects most bars. On H4 each one is worth a look.
When the Candlestick alert Indicator fails
A named pattern describes, it does not forecast.
Five types at once makes for a lot of marks.
The trend filter ships off, so marks appear against the trend.
Text labels are capped, so old ones drop away.
Copy the compiled Candlestick alert Indicator file into your MQL4/Indicators folder, and the MT5 build into MQL5/Indicators, then restart the terminal and drag it onto a chart. The step-by-step guide with screenshots is at how to install MT4 and MT5 indicators.
Background reading on the method behind the Candlestick alert Indicator: Candlestick pattern on Wikipedia, Candlestick Charts at StockCharts ChartSchool.
Download the Candlestick alert Indicator for MT4 and MT5
The zip holds the compiled Candlestick alert Indicator build for MT4 and MT5, plus a short README. Compiled files only, no source. Enter your email below and the download link arrives in your inbox.
Download this indicator free
Enter your email and the file is yours. You also get the full MT4 and MT5 library.
FAQ
Why does InpMinRangeATR come before every other test?
Because a tiny bar can technically satisfy any pattern rule while meaning nothing. Requiring at least 0.45 of the current range reading throws those out before the shape tests even run.
How do InpPinBodyPct and InpPinWickMult define a pin?
Together they describe the shape. The body has to be under a third of the total range, and the dominant wick has to be at least twice the body, which is what gives a pin bar its long tail.
What does InpTrendFilter change when switched on?
It demands that directional patterns agree with a fifty-bar average. A bullish engulfing below that average then prints nothing, which cuts the count sharply and removes most counter-trend marks.
Why is InpMinGap 3 needed?
Because several patterns can qualify within a few bars of each other, especially around a turn. Three bars of spacing turns that cluster into one mark rather than four stacked arrows.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Candlestick alert Indicator as one input. Always backtest before trading live.
External references
- Learn more about the underlying method in Rational herding on Wikipedia.
- For wider market background, see Marketcarpets at StockCharts ChartSchool.
