The dark support resistance indicator does not draw a line at every swing. It collects them first. Swing highs and lows across `InpLookback` bars go into two piles, and any that sit within a fraction of ATR of each other become one zone. Only the busiest six get drawn.
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: ResistanceMarker, SupportMarker |
| Alerts | popup |
| Inputs | 7 |
What the Dark Support Resistance Indicator draws on the chart
ResistanceMarker puts a fire brick arrow just above each confirmed swing high.
SupportMarker puts a dark slate gray arrow just below each swing low.
OBJ_RECTANGLE objects shade the grouped zones themselves.
Object names all carry the `InpObjPrefix` text, so cleanup removes them together.
- ResistanceMarker: arrow, fire brick, width 2, arrow code 234
- SupportMarker: arrow, dark slate gray, width 2, arrow code 233

How the Dark Support Resistance Indicator calculates its values
Collecting the swings
A swing needs `InpSwingBars` `5` bars on each side that fail to beat it. The scan reaches back `InpLookback` `200` bars. Highs go into one array and lows into another, each keeping the price that formed it.
Grouping them into zones
tol takes the current ATR at `InpAtrPeriod` `14` times `InpZoneAtrMult` `0.3`. Swings closer together than that merge into a single zone. Scaling the grouping by ATR means the same setting works on a quiet pair and a fast one.
Keeping only the busiest
`InpTopZones` `6` caps how many zones survive. Each drawn zone gets a pad of at least 30 percent of tol, so a rectangle formed by one swing still has visible thickness. The set rebuilds when the bar count changes.
How to read the signals
A thicker zone means more swings landed in the same place.
The arrows show the raw swings, and the rectangles show what they grouped into.
Zones move as old swings drop out of the `InpLookback` window.
Six zones is a deliberate cap, so a busy chart hides some genuine levels.
Alert channels in this build: popup, one message per closed bar.
`InpAlertOnTouch` ships on and raises a terminal popup when the last completed bar reaches a zone. This build has no push, email or sound channel. The check reads bar 1, so one message follows each closed bar.
Every Dark Support Resistance Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
InpSwingBars |
Swing bars on each side. Bars each side of a swing, default `5`. Raise it to keep only larger turns. | 5 |
InpLookback |
Lookback bars to scan. Bars scanned for swings, default `200`. | 200 |
InpZoneAtrMult |
Zone grouping = ATR * mult. Grouping distance in ATR units, default `0.3`. Raise it to merge more swings into each zone. | 0.3 |
InpAtrPeriod |
ATR period for grouping. ATR length behind the grouping distance, default `14`. | 14 |
InpTopZones |
Top zones to draw. How many zones survive, default `6`. | 6 |
InpObjPrefix |
Prefix on every object name, default `DarkSR_`. | DarkSR_ |
Alert settings
| Setting | What it does | Default |
|---|---|---|
InpAlertOnTouch |
Alert when price touches a zone. Raises a popup when the last bar reaches a zone, default `true`. | on |

Settings that fit your chart
Zone clustering rewards charts with repeated turns at the same prices. EURUSD H1 is the reference chart, where `InpLookback` at `200` covers about eight days. On M5 that window is under a day and the zones churn. On H4 the same setting spans a month of structure.
When the Dark Support Resistance Indicator fails
Grouping by ATR alone ignores how long ago a swing formed, so an old level counts the same as a fresh one.
`InpTopZones` `6` hides everything past the sixth. A busy chart has more real levels than that.
A single spike can create a zone that no trader ever reacted to.
Copy the compiled Dark Support Resistance 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.
Background reading on the method behind the Dark Support Resistance Indicator: Dark pool on Wikipedia, Kagi Charts at StockCharts ChartSchool.
Download the Dark Support Resistance Indicator for MT4 and MT5
The zip holds the compiled Dark Support Resistance 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
What does InpZoneAtrMult at 0.3 group?
Any two swings closer together than 0.3 of the current ATR. On a chart where ATR reads 20 pips, that is 6 pips. Raise it and more swings merge into fewer, thicker zones. Lower it and you get more zones, each built from fewer swings.
Why cap the drawing at InpTopZones?
Because two hundred bars produce more swings than a chart can usefully show. Six is a readable number. It does mean genuine levels can fall off the list, so raise it if you would rather see everything the scan found.
How long does InpSwingBars delay a marker?
Five bars, because a swing needs five bars on each side that fail to beat it. The marker appears at the original bar once those five have closed. That delay is unavoidable in any fractal-style swing test.
What is the ResistanceMarker plot showing?
Each individual confirmed swing high, drawn ten points above the bar. It is the raw input to the grouping step rather than the finished zone. Comparing the markers with the rectangles shows you exactly which swings merged together.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Dark Support Resistance Indicator as one input. Always backtest before trading live.
Category: this is part of our Support and Resistance collection. Then, plainly, 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 Dark pool on Wikipedia.
- Additional market context is at Kagi Charts at StockCharts ChartSchool.
