MetaTrader MT4 Indicator 100% Free MQL Source Code

Supply and Demand MT4 Indicator

RaptozGroupBy RaptozGroup
4.9 (120 reviews)
15,000+ Downloads
Supply and Demand Zones MT4 Indicator Setup

Supply and Demand Zones MT4 Indicator.

The Supply and Demand MT4 Indicator is a free, high-performance technical tool written in MQL4 for MetaTrader 4. It automatically detects Drop-Base-Rally (DBR), Rally-Base-Drop (RBD), and continuation bases across any chart timeframe, plotting clear supply and demand rectangles with customizable touch alerts.

Supply and Demand MT4 Indicator Overview

What Is Supply and Demand in Forex and Financial Markets?

In financial markets, Supply and Demand represents the universal economic mechanism governing all price fluctuations. Unlike conventional retail technical indicators like moving averages or single horizontal support and resistance lines, Supply and Demand analysis focuses on the structural origin points where acute imbalances between institutional buying and selling volume occurred.

When large market participants (such as central banks, commercial institutions, and sovereign wealth funds) accumulate or distribute massive positions, their volume cannot be filled at a single price point without aggressively displacing the market. The consolidation bases formed immediately before these explosive momentum expansions leave behind Unmitigated Supply and Demand Zones. When price returns to these zones in the future, residual unfilled institutional limit orders often trigger high-probability price reversals or trend continuation moves.

Core Supply and Demand Formations & Structure Patterns

Supply and demand zones manifest in four fundamental price action structures, classified into continuation patterns and reversal patterns:

1. Rally-Base-Rally (RBR) – Bullish Continuation

Price rallies strongly, pauses in a tight consolidation base as orders are accumulated, and then explodes upward in a second momentum leg. The base represents a powerful demand continuation zone.

2. Drop-Base-Drop (DBD) – Bearish Continuation

Price drops aggressively, pauses in a brief distribution base, and resumes plunging downward. The consolidation base forms an institutional supply continuation zone.

3. Drop-Base-Rally (DBR) – Bullish Reversal

A falling market reaches an institutional accumulation zone, builds a multi-candle base at the bottom, and reverses into a violent upward rally, forming a fresh demand reversal zone.

4. Rally-Base-Drop (RBD) – Bearish Reversal

An advancing market reaches an institutional distribution zone, builds a consolidation base at the peak, and collapses into a severe sell-off, creating a fresh supply reversal zone.

Zone Freshness, Mitigation & Strength Scoring

Not all supply and demand zones are equal. The Supply and Demand MT4 Indicator evaluates and color-codes zones according to institutional strength metrics:

Zone StatusRetest CountProbabilityInstitutional Interpretation
Fresh (Unmitigated)0 RetestsHighest (80%+)Unfilled institutional limit orders remain resting at the base level.
Tested (Mitigated Once)1 RetestModerate (55-65%)A portion of resting liquidity was absorbed during the initial pullback.
Weak / Exhausted2+ RetestsLow (<40%)Orders have been largely exhausted; zone is vulnerable to breakout invalidation.

How the Supply and Demand MT4 Indicator Algorithm Works

The MQL4 indicator processes historical and live candlestick data on MetaTrader 4 through a multi-pass mathematical loop:

  1. Fractal Base Scanning: Scans historical bars to detect consolidation bases containing low true-range candles.
  2. Displacement Validation: Measures the velocity and pip range of the subsequent departure candles (requiring 2.0x+ Average True Range expansion).
  3. Rectangle Zone Plotting: Calculates the upper (Proximal line) and lower (Distal line) boundaries of the base and projects semi-transparent graphical rectangles forward.
  4. Dynamic Mitigation Tracking: Automatically monitors incoming tick prices and flags zones as tested or invalidates them when price closes through the distal boundary.
  5. Multi-Channel Alert Dispatch: Fires real-time terminal audio, popup alerts, and mobile push notifications when price penetrates an active zone.

How to Install the Supply & Demand Indicator on MT4

Follow these step-by-step instructions to install the MQL4 source code indicator on MetaTrader 4 Desktop:

  1. Download the raw source file: SupplyDemand_Zones_MT4.mq4.
  2. Open MetaTrader 4 and click File → Open Data Folder in the top menu.
  3. Navigate into the MQL4 → Indicators subfolder.
  4. Paste the downloaded .mq4 file directly into the Indicators folder.
  5. Restart MT4 or right-click inside the Navigator panel and click Refresh.
  6. Drag SupplyDemand_Zones_MT4 onto any active chart window.
  7. In the indicator settings dialog, adjust zone strength, lookback bars, box colors, and alert preferences.
  8. Click OK to start real-time supply and demand mapping.

Supported MT4 Timeframes & Trading Styles

TimeframeTrading StyleOptimal Application
M1 / M5ScalpingPrecision execution on lower-timeframe zone rejections.
M15 / M30Intraday TradingIdentifying intraday liquidity bases during London and NY sessions.
H1 / H4Day / Swing TradingMapping major structural supply/demand boundaries and trend bias.
D1 / W1Position TradingMacro institutional order flow and multi-month reversal zones.

Supply & Demand vs Support/Resistance vs Order Blocks

FeatureSupply & DemandSupport & ResistanceICT Order Blocks
Zone TypeMulti-candle base rangeSingle horizontal price lineSpecific single origin candle
Core TriggerAggressive displacement imbalanceRepeated historical bouncesBreak of Structure (BOS) creation
Freshness DecayWeakens with every subsequent retestTraditionally assumed stronger with more testsInvalidated after initial mitigation

Key Features & Capabilities

Automatic detection of fresh and tested Supply & Demand zones
Identifies Drop-Base-Rally (DBR) and Rally-Base-Drop (RBD) origins
Configurable zone strength, lookback depth, and visual styling
Real-time audio, popup, and push notification touch alerts
Non-repainting zone coordinates calculated from closed bar data
Compatible with MT4 Build 1420+ and all financial assets

Input Parameters & Settings Guide

Configure the indicator inputs inside MetaTrader MT4 via the Inputs tab upon attaching to your chart:

ParameterDefault ValueDescriptionRecommended
InpZoneStrength3Fractal swing sensitivity factor (1-5)3 for Intraday, 4-5 for Swing
InpZoneLookback200Number of historical bars to calculate200-500 bars
InpDemandColorclrDarkGreenColor fill for demand zonesDark Green / Emerald
InpSupplyColorclrMaroonColor fill for supply zonesMaroon / Crimson
InpShowZoneLabelstrueDisplay pip range and test count labelsTrue
InpAlertOnTouchtrueAlert when price enters active zoneTrue
InpEnablePushAlertsfalseSend push alerts to MT4 mobile appTrue

Trading Strategy & Entry Rules

1

Step 1: Identify Higher Timeframe (HTF) Trend & Key Zones

Open the H4 or Daily chart to identify major supply and demand zones that dictate macro market flow and institutional liquidity direction.

2

Step 2: Filter for Fresh (Untested) Zones

Prioritize zones that have zero retests since creation, as fresh zones possess the highest statistical likelihood of institutional orders remaining unfilled.

3

Step 3: Wait for Price Retracement into Zone

Let price pull back into the designated box. Never enter prematurely in the middle of a range without clean zone confluence.

4

Step 4: Lower Timeframe Confirmation

Switch to M15 or M5 to verify rejection candle wicks, engulfing patterns, or a structural Change of Character (CHoCH) shift before placing orders.

5

Step 5: Execute with Asymmetrical Risk/Reward

Place stop loss 5-10 pips beyond the distal (outer) edge of the zone and target the opposing supply/demand level for a minimum 1:3 risk-to-reward ratio.

MQL4 Source Code

//+------------------------------------------------------------------+
//|                                  SupplyDemand_Zones_MT4.mq4      |
//|                    Copyright 2026, TraderSentiments Quant Team   |
//|                                    https://tradersentiments.com  |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026, TraderSentiments"
#property link      "https://tradersentiments.com/indicators/mt4/smart-money/supply-demand-indicator"
#property version   "2.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1  clrLimeGreen
#property indicator_color2  clrCrimson

//--- Indicator Parameters
input int      InpZoneStrength     = 3;           // Zone Strength (1-5 Swing Factor)
input int      InpZoneLookback     = 200;         // Calculation Lookback Bars
input color    InpDemandColor      = clrDarkGreen;// Demand Zone Box Fill Color
input color    InpSupplyColor      = clrMaroon;   // Supply Zone Box Fill Color
input bool     InpShowZoneLabels   = true;        // Show Zone Pips & Strength Label
input bool     InpAlertOnTouch     = true;        // Popup Alert When Price Enters Zone
input bool     InpEnablePushAlerts = false;       // Mobile Push Notification

int OnInit() {
   IndicatorShortName("Supply & Demand Zones MT4 (TraderSentiments)");
   return(INIT_SUCCEEDED);
}

How to Install & Compile in MetaTrader MT4

Follow this complete step-by-step technical guide to install, compile, and configure the custom MQL4 indicator on your desktop trading terminal:

Step 1

Download Source File

Download the raw .mq4 source file to your computer using the direct download button below.

Step 2

Open MT4 Data Folder

Open your MetaTrader terminal, navigate to the top menu bar, click File → Open Data Folder, and open the MQL4 → Indicators subfolder.

Step 3

Copy & Compile in MetaEditor

Paste the downloaded file into the Indicators directory. Press F4 on your keyboard to launch MetaEditor, open the file, and press Compile (F7). Ensure the compiler reports 0 errors and 0 warnings.

Step 4

Attach to Chart & Configure

Return to your terminal, refresh the Navigator (Ctrl+N) panel, drag the indicator onto your active chart, check Allow DLL imports (if applicable), and customize input parameters.

Integrating with Expert Advisors (EA) via iCustom()

Algorithmic traders and quant developers can seamlessly integrate this indicator into custom automated Expert Advisors (EAs). Because the indicator calculates values into standardized plot buffers on closed bars, you can query buffer values using native MQL4 functions without recompilation:

// MT4 MQL4 iCustom Calling Syntax Example
double signalBuy  = iCustom(Symbol(), Period(), "SupplyDemand_Zones_MT4", 0, 1);
double signalSell = iCustom(Symbol(), Period(), "SupplyDemand_Zones_MT4", 1, 1);

if (signalBuy != 0.0 && signalBuy != EMPTY_VALUE) {
    // Bullish signal confirmed on closed bar [1] -> Execute Buy Order
}
if (signalSell != 0.0 && signalSell != EMPTY_VALUE) {
    // Bearish signal confirmed on closed bar [1] -> Execute Sell Order
}

How to Set Up Mobile Push Notifications on iOS & Android

To receive real-time push alerts on your smartphone whenever an institutional signal triggers:

  1. Install the official MetaTrader MT4 app on your iPhone or Android smartphone.
  2. Open the mobile app, go to Settings → Messages, and copy your unique 8-character MetaQuotes ID.
  3. In your desktop MetaTrader terminal, click Tools → Options (Ctrl+O) → Notifications tab.
  4. Check Enable Push Notifications and paste your MetaQuotes ID into the box.
  5. Click Test to verify phone delivery, then enable push alerts in the indicator inputs.

Institutional Risk Management & Capital Preservation Protocol

Professional proprietary trading desks operate under strict risk control parameters to ensure longevity:

  • Maximum 1% - 2% Risk Rule: Never risk more than 1% to 2% of total account equity on any individual trade setup.
  • Minimum 1:2.5 Risk-to-Reward Ratio (RRR): Only execute setups where the potential profit target is at least 2.5 times greater than the stop-loss invalidation distance.
  • Multi-Timeframe Confluence Required: Never take an intraday trade against the primary Daily or 4-Hour trend direction.
  • High-Impact Economic News Awareness: Avoid entering new positions 15 minutes before and after major macroeconomic data releases (such as US Non-Farm Payrolls, CPI Inflation, and central bank FOMC/ECB interest rate announcements).

Strategy Backtesting & Historical Modeling Protocol

Before deploying any indicator or automated strategy in a live trading environment, professional quants conduct rigorous multi-year backtesting across varying market conditions:

  • 99.9% Tick Data Modeling: Use high-precision tick history from reputable data providers (such as Dukascopy or TrueFX) to eliminate spread anomalies and slippage distortion.
  • Spread & Commission Inclusion: Always test with realistic variable spreads and broker commission structures to simulate true real-world execution friction.
  • Out-of-Sample Walk-Forward Optimization: Avoid curve-fitting by validating parameters on 70% in-sample data and testing robustness on 30% out-of-sample data.
  • Monte Carlo Drawdown Analysis: Run randomized trade sequence simulations to calculate the maximum potential drawdown under adverse market volatility regimes.

Virtual Private Server (VPS) & Execution Latency Optimization

For active day traders, scalpers, and automated Expert Advisors, execution speed is paramount:

  • Low-Latency Proximity Hosting: Deploy your MetaTrader MT4 terminal on a dedicated Windows VPS located in the same financial data center (e.g. Equinix LD4 in London or NY4 in New York) as your broker server to achieve sub-millisecond execution times.
  • Terminal Memory Optimization: Go to Tools → Options → Charts and decrease Max bars in chart to 5,000 to conserve CPU and RAM resources.
  • Audio & News Feed Disabling: Turn off unneeded terminal audio event chimes and background news feeds to ensure 100% of CPU cycles are dedicated to indicator calculations.

Common MetaTrader Error Codes & Resolution Matrix

Error CodeDescriptionExact Resolution Action
ERR_INVALID_STOPS (130)Stop Loss or Take Profit is too close to current price.Verify broker freeze/stops level in symbol specification and increase SL distance.
ERR_OFF_QUOTES (136)Broker server has no available liquidity quotes.Market may be closed or experiencing extreme liquidity disruption during major news.
ERR_REQUOTE (138)Price moved before order reached broker liquidity pool.Increase slippage tolerance deviation parameter in your order execution settings.
ERR_TRADE_TIMEOUT (128)Order request timed out waiting for server acknowledgment.Check internet connection latency or migrate terminal to a dedicated trading VPS.

Institutional Quantitative Trading Lexicon

Displacement: An aggressive, large-bodied candle expansion demonstrating dominant institutional buying or selling volume.
Liquidity Pool: Resting stop loss orders and breakout stops clustered above equal highs or below equal lows.
Mitigation: The process where price returns to rebalance an unmitigated Order Block or Fair Value Gap before continuing trend expansion.
Sharpe Ratio: A mathematical metric measuring risk-adjusted returns by dividing excess return over standard deviation volatility.

Broker Execution Models & Raw Spread Compatibility

To achieve optimal performance when using custom technical indicators:

  • ECN / Raw Spread Accounts: Use True ECN accounts with 0.0 pip spreads and transparent commissions to ensure precision stop loss and take profit execution.
  • No Dealing Desk (NDD) Routing: Direct market access ensures orders are routed straight to tier-1 liquidity providers without dealer intervention or artificial requotes.
  • Leverage & Margin Safety: Maintain sufficient free margin (minimum 500% margin level) to avoid margin calls during sudden macroeconomic volatility spikes.

SupplyDemand_Zones_MT4.mq4

Version: v2.00File Size: 16.4 KBTotal Downloads: 15,000+License: Free Open SourcePlatform: MetaTrader MT4

Download .mq4
VirusTotal Verified Clean • Zero DLL Dependencies
15,000+ DownloadsCompatible with MT4 Build 1420+

Frequently Asked Questions

Support and resistance are typically single horizontal price levels touched multiple times. Supply and demand zones are multi-candle price ranges representing the exact origin of sharp institutional momentum imbalances.
RaptozGroup
Developed & Audited by RaptozGroup

Quantitative algorithmic trading research desk specializing in MetaTrader MQL4/MQL5 automated systems, institutional order book mechanics, and risk management tools.

SupplyDemand_Zones_MT4.mq4
15,000+ DownloadsFree Open Source
Download .mq4