A single line almost never holds to the pip. The support and resistance zone indicator allows for that by drawing each swing as a band whose height tracks the market’s own range. It then marks the bar that tests a band and gets rejected.
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 | 2: SR Zone Buy, SR Zone Sell |
| Alerts | popup, push notification, email, sound |
| Inputs | 15 |
Plot by plot
Zone rectangles plus two marks.
`ResZoneColor` `clrTomato` fills resistance bands.
`SupZoneColor` `clrDodgerBlue` fills support bands.
`SR Zone Buy` prints lime at width 2.
`SR Zone Sell` prints red at the same width.
`MaxLevels` `6` caps how many bands stay drawn.
- SR Zone Buy: arrow, lime, width 2, arrow code 233
- SR Zone Sell: arrow, red, width 2, arrow code 234

The method
Finding a swing
`SwingBars` `4` bars either side must fail to beat a candidate. Four is moderate, so the swings behind each band are real turns.
Sizing the band
`AtrPeriod` `14` gives a range figure. `ZoneWidthATR` `0.55` sets half the band’s height, so quiet markets draw thin bands and busy ones draw thick bands.
The rejection mark
A bar has to reach into a band and turn away from it. `CooldownBars` `5` then keeps the next same-side mark at least five bars off.
What you act on
Blue bands sit under price, red bands above it.
Thicker bands mean the market has been moving more.
A lime mark is a rejection at support.
A red mark is a rejection at resistance.
Only the six most recent bands remain.
Swings confirm four bars late.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
A rejection at a band is what the note reports: support for a buy, resistance for a sell. `EnableAlerts` is the master switch and a popup carries it; the phone, email and desktop routes behind `SoundFile` stay closed.
Every Support and Resistance Zone Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
SwingBars |
Fractal half-width (bars each side of pivot). Bars either side of a swing, `4`. | 4 |
MaxLevels |
How many recent S/R zones to keep drawn. Recent bands kept on chart, `6`. | 6 |
AtrPeriod |
ATR period (zone width + arrow offset). Window behind band height and gap, `14`. | 14 |
CooldownBars |
Minimum bars between same-side signals. Bars between same-side marks, `5`. | 5 |
Display settings
| Setting | What it does | Default |
|---|---|---|
ZoneWidthATR |
Zone half-height = ATR * this. Half-height as a range share, `0.55`. | 0.55 |
ArrowOffsetATR |
Arrow gap from bar = ATR * this. Mark gap as a range share, `0.60`. | 0.60 |
ShowZones |
Draw the S/R zone rectangles. Draw the band rectangles, `true`. | on |
ResZoneColor |
Resistance zone color. | tomato |
SupZoneColor |
Support zone color. | dodger blue |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
Master switch for rejection notes, `true`. | on |
EnablePopup |
A popup carries the note, `true`. | on |
EnablePushNotify |
(see inputs panel) | off |
EnableEmail |
(see inputs panel) | off |
EnableSound |
(see inputs panel) | off |
SoundFile |
Clip for the desktop route, `”alert.wav”`. | alert.wav |

Picking a chart for it
Four-bar swings with range-sized bands work across most liquid charts. EURUSD H1 is the reference chart, where a band often holds for days. On M5 the bands shift quickly. On H4 each one reflects a week of structure.
Known limits
A rejection can turn into a break a bar later.
Bands widen after volatility, not before it.
Six bands can miss an older level that still matters.
Every swing confirms four bars after the fact.
Copy the compiled Support and Resistance Zone 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.
Related on forexmt4systems.com: Support and Resistance Strategy.
Download the Support and Resistance Zone Indicator for MT4 and MT5
The zip holds the compiled Support and Resistance Zone 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 ZoneWidthATR 0.55 size each band?
So the band follows the market’s pace. Half the band’s height equals just over half the current range, which keeps bands thin in quiet trade and thick when price moves hard.
What makes an SR Zone Buy mark print?
A bar reaching into a support band and turning back up from it. The note describes it as a rejection at support, and the mark sits under that bar.
Why wait CooldownBars 5 after a rejection?
A string of marks while price sits inside the same band. After one rejection, the next same-side mark has to wait at least five bars.
Why keep only MaxLevels 6 bands?
Recent structure matters most, and a chart full of old bands is hard to read. Six covers the nearby levels without burying the candles, and you can raise it on a slow chart.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Support and Resistance Zone Indicator as one input. Always backtest before trading live.
Category: this is part of our Support and Resistance collection. Browse more Support and Resistance for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- The core method is documented in Triple top and triple bottom on Wikipedia.
- Additional market context is at Marketmaker at Investopedia.
