Supply and Demand Indicator 1.7 for MT4: Complete User Manual
Supply and Demand Indicator is a chart-window indicator for MetaTrader 4. It identifies current-timeframe price zones from confirmed swing or engulfing structures, draws supply zones above relevant price action and demand zones below it, and can notify you when price enters, creates, or breaks a zone. The product page is available at Supply and Demand Indicator for MetaTrader 4.
This manual describes public version 1.7 and the matching TradingKit source. It explains the visible Inputs labels exactly as they appear in MetaTrader 4. It does not promise that a zone will hold, that price will reverse, or that an alert is a complete trading signal. The indicator is an analytical aid. Position sizing, entry confirmation, exit logic, execution, and account risk remain the user's responsibility.
1. What the Indicator Does
The indicator works on the symbol and timeframe of the chart to which it is attached. It calculates candidate supply and demand structures, validates whether they remain relevant, and draws each accepted zone as a rectangle extending from its formation time to the current bar.
A supply zone is shown with the configured supply colour. A demand zone is shown with the configured demand colour. Optional text at the right edge displays zone width in pips. The indicator recalculates and rebuilds its chart objects when a new chart bar begins. It also validates existing zones during normal calculation. If recent price action invalidates a stored zone, the corresponding rectangle and width label are removed.
This behavior matters when reviewing history: broken zones are removed from the active display. A screenshot taken earlier can therefore contain a zone that is no longer shown after price breaks it. Treat the display as the current set of valid zones under the selected rules, not as a permanent archive of every historical zone.
Version 1.7 uses the current chart timeframe only. To compare several timeframes, attach separate instances to separate charts or use the dedicated multi-timeframe product. This version does not expose an input for additional timeframes.
2. Requirements and Installation
You need MetaTrader 4 and access to the product through MQL5 Market. Install or download the indicator from the Market section in the terminal, then confirm that Supply and Demand Indicator appears under Indicators in Navigator.
To attach it:
- Open the symbol and timeframe you want to analyze.
- In Navigator, locate Supply and Demand Indicator.
- Drag it onto the chart or double-click its name.
- Review the Inputs tab before selecting OK.
- Confirm that supply and demand rectangles appear in the main chart window after enough history has loaded.
No automated-trading permission is required for drawing zones. If you enable push notifications, configure a valid MetaQuotes ID under Tools, Options, Notifications and use MetaTrader's Test function before relying on mobile delivery. Terminal alerts still require the terminal to be running.
Keep sufficient chart history available. The indicator scans historical bars to locate swing structures and to determine whether later price action has already invalidated them. If history is incomplete, fewer zones may be available until MetaTrader downloads the missing bars.
3. Reading the Chart
Supply rectangles represent areas derived from validated highs. Demand rectangles represent areas derived from validated lows. A rectangle begins at the formation bar and extends to the newest chart bar. When Draw zones with background is enabled, the rectangle is placed behind candles; when disabled, it is drawn in the foreground style supported by MetaTrader.
If Show the zone width is enabled, a number appears near the current edge of each zone. The number is the difference between the two zone boundaries expressed in pips. For symbols with three or five decimal digits, version 1.7 converts the broker point size to the conventional pip step before calculating this label.
Use the zones as context. For example, you can observe whether price approaches a demand area, whether your separate setup confirms an entry, and where the opposite zone lies. The indicator itself does not place orders, calculate lots, set Stop Loss or Take Profit, or manage an open position.
The calculation is symmetrical: a supply candidate starts from an accepted high structure, while a demand candidate starts from an accepted low structure. The exact inner boundary depends on Type of zone, described below.
4. Quick Start
For a conservative first test:
- Open a liquid symbol on H1 or H4 and load several months of history.
- Keep Print zones only after full outside bar close set to true .
- Keep Type of zone set to StandartZones .
- Leave Alert when price is in zone enabled and keep the other event alerts disabled initially.
- Keep Use Push notifications disabled until terminal alerts behave as expected.
- Attach the indicator and note the closest supply and demand zones.
- Wait for a new bar and verify that chart objects rebuild without duplicate rectangles.
- Compare the displayed boundaries with the Data Window buffer values described in Section 7.
Do this on a demo or analysis-only chart before incorporating the zones into a trading workflow. Changing a visual setting should not be confused with changing zone logic. Colour, background, font size, and width labels affect presentation; the formation and invalidation rules are controlled by the confirmation and zone-type settings.
5. Input Parameters
The following names reproduce the visible MetaTrader Inputs labels.
Zone formation and geometry
- Print zones only after full outside bar close — default true . When enabled, a candidate zone is not accepted until a later candle is completely outside it. For supply, the confirming candle's high must be below the lower zone boundary. For demand, the confirming candle's low must be above the upper zone boundary. When disabled, the extra outside-candle confirmation is skipped.
- Type of zone — default StandartZones . Selects one of the five boundary-calculation modes documented in Section 6.
- Width of zone — default 15 . Used by CertainZoneWidth to set a fixed zone width in pips. It does not replace the calculated width in the other four modes.
Appearance
- Colour of Supply levels — default Maroon . Sets the rectangle colour for supply zones.
- Colour of Demand levels — default DarkGreen . Sets the rectangle colour for demand zones.
- Draw zones with background — default true . Places rectangles behind chart candles when enabled.
- Show the zone width — default true . Adds the calculated pip-width label to each displayed zone.
- Font size of zone width display — default 8 . Controls the size of the width text.
- Colour of zone size display — default White . Controls the colour of the width text.
Alerts
- Alert when price is in zone — default true . Enables terminal alerts when current price enters the nearest active supply or demand zone under the source conditions.
- Alert when new zone formed — default false . Enables a terminal alert when a newly confirmed supply or demand zone is created.
- Alert when zone is broken by price — default false . Enables a terminal alert when validation removes an active zone after price breaks its defining extreme.
- Use Push notifications — default false . Sends the same enabled event message through MetaTrader push notification. This setting does not independently enable a zone event; the corresponding alert setting must also be enabled.
Alert settings do not create trades or orders. Delivery also depends on terminal connectivity, notification configuration, operating-system permissions, and MetaQuotes service availability.
6. Zone Calculation Modes
The spelling below matches the values shown by version 1.7.
StandartZones
StandartZones is the default. It starts from a validated swing high for supply or swing low for demand. The opposite edge is derived from the bodies and neighboring candles around the formation structure. This generally produces a zone that combines the extreme with nearby open/close information instead of using the entire candle automatically.
ZonesWithFullCandles
ZonesWithFullCandles uses the entire formation candle range. For supply, the zone extends from the candle high toward its low. For demand, it extends from the candle low toward its high. This can create wider rectangles than body- or wick-oriented alternatives.
ZonesWithWicksOnly
ZonesWithWicksOnly uses the candle extreme and the body edge nearest that extreme. A supply zone covers the upper wick area; a demand zone covers the lower wick area. The actual width therefore depends on the formation candle's open, close, high, and low.
CertainZoneWidth
CertainZoneWidth creates a fixed-width area from the detected extreme. Supply extends downward from the high; demand extends upward from the low. The distance is set by Width of zone and interpreted in pips using the symbol's digit format.
EngulfZones
EngulfZones uses the engulfing-pattern tests implemented in version 1.7 instead of the standard five-bar swing condition. Its opposite boundary is derived from the neighboring candle open used by the accepted engulfing structure. As with every mode, a candidate must also pass subsequent validity and optional outside-close checks before it appears.
Switching modes can materially change both the number and width of zones. Compare modes on the same symbol, timeframe, and history rather than assuming that one mode is universally superior.
7. Alerts and Buffer Access
Terminal and push alerts
Zone-entry alerts are limited to once per chart bar by the source's alert state. A new signal can therefore wait for a new bar even if price moves in and out of the same area repeatedly during one candle.
New-zone and broken-zone messages include the symbol, zone direction, and current timeframe. Push delivery mirrors an enabled terminal event only when Use Push notifications is active. Test terminal alerts first, then enable push and confirm the same event on the intended mobile device.
Indicator buffers
Version 1.7 exposes four data buffers even though the buffer lines are not drawn directly. They can be inspected in the Data Window or read by another MT4 program:
- Buffer 0 — Upper Supply Zone Edge: the high-side boundary of a supply zone at its formation bar.
- Buffer 1 — Lower Demand Zone Edge: the low-side boundary of a demand zone at its formation bar.
- Buffer 2 — Lower Supply Zone Edge: the inner or lower boundary of a supply zone.
- Buffer 3 — Upper Demand Zone Edge: the inner or upper boundary of a demand zone.
A value of zero means no corresponding boundary is stored at that bar. Nonzero values are concentrated at zone formation bars rather than repeated across every bar covered by the rectangle. An Expert Advisor reading these buffers must handle zero values, historical recalculation, zone removal, and the selected input order. The visual rectangle extends through time, but that does not mean the same buffer price is populated on every later bar.
Buffer access is a technical interface, not an entry recommendation. Validate readings against the chart and Data Window before connecting them to any automated logic.
8. Controlled Testing Procedure
Use a repeatable chart test before trading decisions depend on the indicator.
- Record the MT4 build, product version 1.7 , symbol, timeframe, broker digits, and history range.
- Start with default inputs and take a screenshot of the nearest active zones.
- Open the Data Window and confirm that formation bars expose the four documented boundaries.
- Advance or wait for one new bar. Confirm that rectangles are cleared and recreated as a coherent current set rather than duplicated.
- Enable Alert when new zone formed and wait for a genuinely new confirmed structure; do not infer success merely from an old historical rectangle.
- Enable Alert when zone is broken by price and observe whether a broken rectangle disappears with the matching message.
- Test Alert when price is in zone on one symbol and timeframe before attaching the indicator to several charts.
- If push is required, use MetaTrader's notification test first, then enable Use Push notifications and verify one controlled indicator event.
- Repeat the same history with each Type of zone value and compare boundaries rather than comparing different market periods.
- Save a template only after the chosen settings and alerts are verified.
Do not use a single historical screenshot as proof of future behavior. The active-zone set changes as later price action validates or breaks prior structures.
9. Zone Lifecycle and Interpretation Boundaries
The indicator rebuilds its objects at the start of a new chart bar. It also checks whether recent price has exceeded the extreme that validated an existing zone. When that happens, the stored buffer values are cleared, the rectangle and width label are deleted, and the optional broken-zone event can fire.
This lifecycle is intentional in the reviewed source. It keeps the chart focused on zones that remain valid under the current rules, but it also means the display is not a complete historical audit trail. If you need an audit, record screenshots or export buffer observations at the time of analysis.
The default outside-close option delays publication of a zone until price has moved fully away from it. Disabling this confirmation can make zones appear earlier, but it also changes the evidence required by the algorithm. It is not merely a cosmetic speed setting.
Supply and demand areas are context, not certainty. A zone may be touched, penetrated, or broken. Spread, gaps, execution latency, broker data, and chart-history differences can all affect how the displayed area relates to a real order.
10. Troubleshooting
No zones are visible
Load more chart history, confirm that the indicator is attached to the intended symbol and timeframe, and test the default StandartZones mode. With Print zones only after full outside bar close enabled, some recent candidates remain hidden until a complete outside candle exists.
Too few zones are visible
The indicator rejects structures already invalidated by later price and removes broken zones. Try a longer history range or a different timeframe. Disabling outside-close confirmation changes the logic and should be treated as a new test, not as a display fix.
Zones are wider or narrower than expected
Check Type of zone first. ZonesWithFullCandles , ZonesWithWicksOnly , StandartZones , and EngulfZones derive boundaries differently. Width of zone affects only CertainZoneWidth .
Width labels are missing
Confirm Show the zone width is enabled. Then check Font size of zone width display and Colour of zone size display against the chart background.
Terminal alerts work but push does not
Confirm Use Push notifications is enabled, the relevant event alert is enabled, a MetaQuotes ID is configured, and MetaTrader's own Test notification succeeds. Push is an additional delivery channel, not an event switch.
Repeated tests show different historical zones
Confirm that symbol history, timeframe, inputs, and the latest available bars are identical. A newer price break can remove a previously active zone. The indicator also rebuilds objects when a new bar begins.
An EA reads zeros from every buffer
Check the requested buffer number and bar index. Values occur at formation bars. Verify the same bar in the Data Window, and remember that Buffer 0/2 belong to supply while Buffer 1/3 belong to demand.
11. Frequently Asked Questions
Does the indicator scan several timeframes in one instance?
No. Version 1.7 calculates the current chart timeframe. Use separate charts for separate timeframes or a dedicated multi-timeframe product.
Does a supply zone mean I should sell immediately?
No. It identifies an area produced by the configured calculation. Entry confirmation and risk rules are outside the indicator.
Why did an old zone disappear?
The source removes a zone when later price action breaks its defining extreme. Zones are also rebuilt on each new bar.
Which zone mode is best?
There is no source-backed universal choice. The modes define different geometry. Test them with the same symbol, timeframe, history, and evaluation rules.
Can I set a fixed width?
Yes. Select CertainZoneWidth and set Width of zone. The setting is measured in pips after the version's digit adjustment.
Can another EA read the zones?
Yes, through the four documented buffers. Test buffer values and formation-bar indexing carefully before automation.
Will push notifications work if event alerts are disabled?
No. Use Push notifications only adds push delivery to an enabled zone event.
Does the indicator retain every broken zone for review?
No. Broken zones are removed from the active display. Keep separate records if historical auditing is required.
12. Final Checklist
Before relying on the indicator, confirm:
- Product and source version are 1.7 .
- The indicator is attached to the intended symbol and current chart timeframe.
- Enough history is loaded.
- Print zones only after full outside bar close matches your tested workflow.
- Type of zone and, when applicable, Width of zone are intentional.
- Supply and demand colours remain distinguishable from the chart.
- Width labels are readable or deliberately disabled.
- Each enabled alert was tested in the terminal.
- Push delivery was tested separately before use.
- Buffer numbers were verified in the Data Window before EA integration.
- You understand that zones are recalculated and broken zones are removed.
- Entries, exits, size, and account risk are governed by a separate trading plan.
The safest implementation is incremental: verify the default chart display, then one calculation change, then one alert channel, and only afterward connect the output to a broader workflow.


