Free MT5 indicator. Plot a Fast and Slow ZigZag on the same chart and automatically draw support and resistance zones from repeated swing pivots, with optional ATR-based dynamic zone sizing.
- Overview
- Features
- How Zones Are Built
- Installation
- Settings Reference
- How to Use
- Compatibility
- Changelog
- Related Products
- License
Zig Zag Zones MT5 is a free MetaTrader 5 indicator that combines two independent ZigZag structures with automatic support and resistance zone detection.
The indicator runs a Fast ZigZag and a Slow ZigZag in parallel, then groups repeated pivot highs and lows into visual price zones. By default, zones are derived from the Slow ZigZag, with optional confirmation from Fast ZigZag pivots. Zone height can be fixed in pips or scaled automatically using ATR, which makes the indicator adapt better to changing volatility.
This makes it useful for traders who want to map swing structure, identify reaction areas, and keep key support/resistance zones visible on the chart without drawing them manually.
Official product page: https://forextradingtools.eu/products/indicators/zigzag-zones-mt5-free/
| Feature | Detail |
|---|---|
| Dual ZigZag engine | Fast and Slow ZigZag lines run independently with separate Depth, Deviation, and Backstep settings |
| Automatic S/R zones | Repeated pivot highs form resistance zones; repeated pivot lows form support zones |
| Slow-pivot driven logic | Zones are built from Slow ZigZag pivots by default for cleaner structure mapping |
| Optional fast-pivot confirmation | Include Fast ZigZag pivots in the zone-building process when you want tighter validation |
| ATR-based zone sizing | Zone height can adapt to live volatility using ATR |
| Fixed-pip fallback | Use a constant zone height if you prefer manual control |
| Auto-widen mode | If no zones qualify at the current height, the indicator can progressively widen the zone size |
| Broken-zone filtering | Hide broken zones or show them with dotted outlines |
| Right-extension support | Extend active zones to the right so they remain visible as future reaction areas |
| Chart diagnostics label | Optional on-chart label shows current sizing mode, ATR value, effective zone height, and cap |
| Visual customisation | Configure ZigZag colours, widths, zone colours, fill, and opacity |
| Works in chart window | The indicator is fully visual and designed to coexist with normal MT5 chart workflows |
The zone logic is straightforward:
- The indicator calculates Fast and Slow ZigZag pivots.
- It collects recent pivot highs and lows within the configured lookback window.
- Nearby pivots are merged into a shared zone when they fall within the allowed zone height.
- A zone is drawn only if it meets the minimum pivot requirements.
- Zones are sorted by proximity to the current price, and the closest valid zones are drawn first.
Important behaviour:
- Resistance zones come from clustered ZigZag highs.
- Support zones come from clustered ZigZag lows.
- Slow pivots are mandatory for qualification.
- Fast pivots are optional and can be added as extra confirmation.
- A zone is considered broken when current price moves above resistance or below support.
- Broken zones can be hidden or displayed with a dotted border.
When ATR zone sizing is enabled, the effective zone height is based on:
ATR(period) * ATR multiplier- A minimum cap in pips
- A maximum cap in pips, optionally derived from ATR again
If Auto Zone Height is enabled, the indicator can widen the effective zone size step by step until valid zones are found, up to the configured multiplier.
- MetaTrader 5
- This repository, or a compiled
.ex5build of the indicator
- Copy
src/fxtt-zig-zag-zones-mt5.mq5and its dependency folder(s) into your MT5 Data Folder. - In MetaTrader 5, go to File → Open Data Folder.
- Place the files under MQL5 → Indicators while preserving the folder structure required by the includes.
- Open
fxtt-zig-zag-zones-mt5.mq5in MetaEditor. - Press Compile.
- Back in MT5, refresh the Navigator and attach the indicator to a chart.
- Download the compiled package from the official product page: https://forextradingtools.eu/products/indicators/zigzag-zones-mt5-free/
- Copy the compiled
.ex5file into MQL5 → Indicators. - In MT5, refresh the Navigator.
- Drag the indicator onto any chart.
| Problem | Solution |
|---|---|
| Indicator does not appear in Navigator | Confirm the file was copied to MQL5/Indicators and compiled successfully |
| Compilation fails on include file | Make sure the dependency FxTT/ZigZag/CZigZag.mqh exists in the expected include path |
| No zones appear | Increase Zone Lookback, reduce pivot requirements, or enable Auto Zone Height |
| Zones appear too wide or too narrow | Adjust Zone Height, ATR Multiplier, and ATR min/max caps |
| Broken zones disappear unexpectedly | This is expected when Show Broken is disabled |
| Debug label is visible but unwanted | Disable Show Zone Debug Label |
All settings are available from the MT5 Inputs tab.
| Parameter | Default | Description |
|---|---|---|
| Depth | 6 |
Minimum swing depth for the fast structure |
| Deviation (pips) | 5 |
Minimum price movement required to form a pivot |
| Backstep | 3 |
Minimum spacing between pivots |
| Show fast ZigZag | true |
Show or hide the fast line |
| Upward segment color | DodgerBlue |
Colour used for rising fast ZigZag segments |
| Downward segment color | DodgerBlue |
Colour used for falling fast ZigZag segments |
| Line width | 2 |
Fast ZigZag line thickness |
| Parameter | Default | Description |
|---|---|---|
| Depth | 12 |
Minimum swing depth for the slow structure |
| Deviation (pips) | 8 |
Minimum price movement required to form a pivot |
| Backstep | 6 |
Minimum spacing between pivots |
| Show slow ZigZag | true |
Show or hide the slow line |
| Upward segment color | Red |
Colour used for rising slow ZigZag segments |
| Downward segment color | Red |
Colour used for falling slow ZigZag segments |
| Line width | 2 |
Slow ZigZag line thickness |
| Parameter | Default | Description |
|---|---|---|
| Show zones | true |
Master toggle for drawing support and resistance zones |
| Zone Lookback | 300 |
Number of candles scanned for qualifying pivots |
| Zone Height | 10 |
Fixed zone height in pips when ATR mode is disabled |
| Use ATR-based dynamic zone height | true |
Size zones from ATR instead of fixed pips |
| ATR Period | 14 |
ATR lookback period |
| ATR Multiplier | 0.35 |
Converts ATR into zone height |
| ATR min zone height (pips) | 5 |
Minimum zone size allowed in ATR mode |
| ATR max zone height (pips) | 120 |
Static maximum zone size when dynamic max cap is off |
| Dynamic ATR-based max cap | true |
Cap max zone size with ATR * max cap multiplier |
| ATR Max Cap Multiplier | 1.20 |
Multiplier used for the dynamic ATR max cap |
| Show zone debug label | true |
Shows current sizing diagnostics on the chart |
| Auto widen zone height | true |
Gradually widen zone height if no zones qualify |
| Max auto widen multiplier | 6 |
Maximum widening factor for auto-height logic |
| Max zones per side | 5 |
Maximum resistance zones and support zones shown |
| Min slow pivots per zone | 2 |
Minimum slow-pivot touches required |
| Include fast pivots in zones | false |
Use Fast ZigZag pivots as additional qualifiers |
| Min fast pivots per zone | 1 |
Minimum fast-pivot touches when fast pivots are enabled |
| Show broken | false |
Display broken zones instead of hiding them |
| Extend zones to the right | true |
Project active zones forward |
| Resistance color | 248,224,224 |
Resistance rectangle colour |
| Support color | 207,235,214 |
Support rectangle colour |
| Fill zones | true |
Fill the rectangles instead of outline-only |
| Fill opacity | 45 |
Zone fill transparency from 0 to 255 |
Use the Slow ZigZag to identify the broader market structure and the Fast ZigZag to inspect shorter-term swing detail inside that structure.
Typical approach:
- Keep both ZigZags visible.
- Use the slow line to identify key highs and lows.
- Watch where multiple slow pivots cluster into a zone.
- Use the fast line to time reactions inside or near those zones.
If your chart becomes noisy:
- Increase Slow Depth
- Increase Zone Height
- Raise Min Slow Pivots per Zone
- Disable Include Fast Pivots in Zones
This will usually produce fewer but more meaningful zones.
If you want the indicator to react faster to recent market behaviour:
- Lower Slow Depth
- Enable Include Fast Pivots in Zones
- Reduce Zone Height
- Keep ATR-based dynamic zone height enabled
This will produce tighter and more adaptive zones, but with more sensitivity.
A broken resistance zone can become a future support reference. A broken support zone can become future resistance. If you want to study those transitions, enable Show Broken and keep the dotted zone outlines visible.
- Let the indicator plot the nearest support and resistance zones.
- Use the Slow ZigZag to define the dominant swing direction.
- Watch price as it approaches the closest zone.
- Use the Fast ZigZag and your entry model to confirm rejection, continuation, or breakout.
- Manage risk based on zone width and surrounding market structure.
Note: ZigZag-based tools depend on swing confirmation and are not standalone trade signals. Use them with price action context and risk management.
| Platform | MetaTrader 5 |
| Window Type | Main chart window |
| Symbols | Forex, metals, indices, crypto, and other MT5-supported instruments |
| Timeframes | Any MT5 chart timeframe |
| Operating System | Windows, macOS via compatibility layer, VPS |
| Expert Advisors | Visual indicator; intended to coexist with normal chart workflows |
| MT4 | Not compatible |
| Version | Date | Notes |
|---|---|---|
| 1.00 | April 2026 | Initial release. Dual ZigZag rendering, automatic support/resistance zones, ATR-based dynamic zone height, auto-widen logic, optional fast-pivot inclusion, broken-zone filtering, right-extension, and on-chart zone diagnostics. |
If you use Zig Zag Zones MT5 as a structure and reaction-area tool, these products from Forex Trading Tools are also relevant:
| Product | Platform | Why It Fits |
|---|---|---|
| MTF Triple MA MT5 | MT5 | Adds higher-timeframe trend alignment so you can judge whether a zone reaction is with or against the broader trend |
| MTF Bollinger Bands MT5 | MT5 | Adds multi-timeframe volatility context and confluence around support and resistance zones |
| Session High Low MT5 | MT5 | Useful for combining ZigZag zones with session highs/lows and intraday breakout or reversal levels |
| FXTT MT5 Forex Scanner | MT5 | Helps scan multiple symbols and then apply Zig Zag Zones only to the charts already showing actionable structure |
More MT4 and MT5 indicators are available at: https://forextradingtools.eu/
The public FxTT indicator family is split across these repositories:
- FxTT MT4 Forex Scanner
- FxTT MT5 Forex Scanner
- FxTT MTF Triple MA MT5
- FxTT Pivot Points MT5
- FxTT Session High/Low MT5
- FxTT News Calendar MT5
- FxTT MTF Bollinger Bands MT4
- FxTT MTF Bollinger Bands MT5
- FxTT MTF Triple MA MT4
- FxTT Strategy Checklist MT4
- FxTT Strategy Checklist MT5
This project is licensed under the MIT License — you are free to use, modify, and distribute the code, provided the original copyright notice is retained.
See LICENSE for details.


