This build takes the simplest reading of supply and demand: the candle before a strong impulse is where orders waited. The supply and demand pro indicator boxes that candle, tracks its near edge as a line, and marks every bar that tests the zone and closes back out of 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 | 4: Buy, Sell, Demand Proximal, Supply Proximal |
| Alerts | popup, push notification, email, sound |
| Inputs | 14 |
What appears on the chart
Boxes, two edge lines and two marks.
`Demand Proximal` traces forest green at width 2.
`Supply Proximal` traces crimson at width 2.
`Buy` prints lime at width 3 with arrow 233.
`Sell` prints red at width 3 with arrow 234.
`ShowZones` draws the zone boxes.
- Buy: arrow, lime, width 3, arrow code 233
- Sell: arrow, red, width 3, arrow code 234
- Demand Proximal: line, forest green, width 2
- Supply Proximal: line, crimson, width 2

Under the hood
The impulse
A bullish candle with a body of `ImpulseATR` `1.3` ranges or more is an impulse up. The candle just before it becomes demand.
The zone
Demand runs from the top of that candle’s body down to its low. Supply mirrors this above bearish impulses.
The test
A bar that reaches the near edge, closes inside or above the far edge, and closes bullish prints a buy.
What the output means
Green lines track the newest demand edge.
Crimson lines track the newest supply edge.
Marks repeat while price sits in a zone.
Ranges produce clusters of marks.
`ZoneHistoryBars` `350` limits old boxes.
`ExtendBars` `400` sets box length.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
Every zone test sends a message, so a busy range means many. `EnableAlerts` lets them through, with the popup as the only route enabled at the start.
Every Supply And Demand Pro Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
AtrPeriod |
ATR period (impulse measure). Range window for the impulse, `14`. | 14 |
ImpulseATR |
impulse candle >= this * ATR. Impulse body in ranges, `1.3`. | 1.3 |
ExtendBars |
extend zone rectangles this many bars to the right. Box length in bars, `400`. | 400 |
Display settings
| Setting | What it does | Default |
|---|---|---|
ZoneHistoryBars |
draw zone rectangles within this many bars. Bars back to draw boxes, `350`. | 350 |
ArrowOffsetPoints |
arrow gap from candle in points. Mark gap in points, `40`. | 40 |
ShowZones |
draw supply/demand rectangles. Draw the boxes, `true`. | on |
DemandColor |
Demand colour, `clrForestGreen`. | forest green |
SupplyColor |
Supply colour, `clrCrimson`. | crimson |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
Switch for test messages, `true`. | on |
EnablePopup |
Popup, `true`. | on |
EnablePushNotify |
(see inputs panel) | off |
EnableEmail |
(see inputs panel) | off |
EnableSound |
(see inputs panel) | off |
SoundFile |
(see inputs panel) | alert.wav |

Suitable charts
Single-candle zones form constantly, so this build is busiest in ranges. EURUSD H1 is the reference chart. On M15 marks crowd heavily. On H4 the zones thin out and the tests carry more weight.
Where care is needed
There is no cooldown, so marks cluster.
Every impulse creates a zone, fresh or not.
One-candle bases are a thin definition.
Only a popup reports by default.
Copy the compiled Supply And Demand Pro 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: Supply and Demand Strategy.
Download the Supply And Demand Pro Indicator for MT4 and MT5
The zip holds the compiled Supply And Demand Pro 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
Which candle does ImpulseATR 1.3 turn into demand?
The candle directly before a bullish bar whose body is at least 1.3 average ranges. Its body top is the near edge and its low is the far edge.
Why do Buy marks cluster in ranges?
Every bar that tests the zone and closes bullish qualifies, and this build has no cooldown. While price chops at a zone, marks repeat bar after bar.
What do the Demand Proximal lines show?
The near edge of the newest demand zone, carried forward bar by bar. It jumps to a new price whenever a fresh impulse creates a newer zone further along the chart.
Does ZoneHistoryBars 350 affect the marks?
No. It only limits how far back the boxes are drawn, which keeps a long chart readable. The zone lines and the marks work across the whole history regardless of it.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Supply And Demand Pro Indicator as one input. Always backtest before trading live.
Category: this is part of our Trend collection. Browse more Trend for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- The core method is documented in VIX on Wikipedia.
- Additional market context is at Crossrate at Investopedia.
