Normalized MACD Indicator for MT4 and MT5

Written by Dominic Walsh · Published · Last updated

Raw MACD values depend on the price scale of each pair, so a reading on EURUSD means nothing on USDJPY. This normalized MACD indicator divides the MACD line by the 20-bar average range, turning it into ATR units. A reading of 2 then means the same stretch on any chart.

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 Separate window (levels 2 / 0 / -2)
Plots 5: Normalized MACD, Signal, Histogram, Buy, Sell
Alerts popup, push notification, email, sound
Inputs 12

The plots and where they sit

Two lines, a histogram and two marks in a pane.

`Normalized MACD` traces dodger blue at width 2.

`Signal` traces orange at width 2.

`Histogram` fills silver for the gap between them.

`Buy` prints lime at the line with arrow 233.

`Sell` prints red at the line with arrow 234.

  • Normalized MACD: line, dodger blue, width 2
  • Signal: line, orange, width 2
  • Histogram: histogram, silver, width 1
  • Buy: arrow, lime, width 2, arrow code 233
  • Sell: arrow, red, width 2, arrow code 234
normalized macd indicator: Normalized MACD pane with crosses marked, EURUSD H1.
Normalized MACD pane with crosses marked, EURUSD H1.

What feeds each plot

The MACD

`FastEMA` `12` minus `SlowEMA` `26` gives the usual MACD line, both seeded with a simple average.

Normalising

That gap is divided by an `ATRPeriod` `20` average range. The result reads in ranges rather than price.

The marks

A buy prints when the line crosses above the `SignalSMA` `9` average while under `UpperLevel` `2.0`, or when it crosses above zero. Sells mirror that.

How to read the pane

Above zero means the fast average leads.

Beyond plus or minus 2 is a stretched reading.

The histogram shows line minus signal.

Marks sit on the line itself, inside the pane.

Zero crosses also print marks.

Warm-up needs about sixty bars.

Alert channels in this build: popup, push notification, email and sound, one message per closed bar.

A signal cross or zero cross is what reports, naming the side. `EnableAlerts` is the switch; the popup and the speaker playing `SoundFile` ship on, while the phone and email routes start off.

Every Normalized Macd Indicator input

Core settings

Setting What it does Default
FastEMA Quick average length, `12`. 12
SlowEMA Slow average length, `26`. 26
SignalSMA Signal line length, `9`. 9
ATRPeriod Range window for scaling, `20`. 20
UpperLevel Stretched-up guide, `2.0`. 2.0
LowerLevel Stretched-down guide, `-2.0`. -2.0

Alert settings

Setting What it does Default
EnableAlerts Switch for cross messages, `true`. on
EnablePopup Popup, `true`. on
EnableSound Speaker, ships on, `true`. on
EnablePush (see inputs panel) off
EnableEmail Email route, `false`. off
SoundFile (see inputs panel) alert.wav
normalized macd indicator: Inputs panel, EMA lengths above the ATR scaling.
Inputs panel, EMA lengths above the ATR scaling.

Where the settings fit

Scaling by range makes one set of levels work on every pair. EURUSD H1 is the reference chart. On GBPJPY the same plus or minus 2 lines still mean a stretched move. On D1 readings past 2 are rare.

When the Normalized Macd Indicator fails

Crosses come often, including in ranges.

Zero crosses add marks late in a move.

ATR scaling shrinks readings in fast markets.

The speaker route ships on.

Copy the compiled Normalized Macd 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.

Download the Normalized Macd Indicator for MT4 and MT5

The zip holds the compiled Normalized Macd 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.

  • 1,380+ indicators
  • MT4 and MT5 files
  • No spam, unsubscribe any time

FAQ

Why divide by ATRPeriod 20?

It turns the MACD gap into average ranges. A reading of 1 then means the averages sit one typical bar apart, whatever the pair or its price level.

What does UpperLevel 2.0 block?

Buy crosses that happen while the line is already above 2. At that stretch a fresh buy is late, so only crosses below the level print a lime mark.

Why do some Buy marks appear without a signal cross?

A cross of the line above zero also prints a buy. That catches the moment the fast average moves above the slow one, even when no signal cross happens.

Is Signal an EMA as in standard MACD?

No. It is a simple 9-bar average of the normalised line, as the `SignalSMA` name says, so it reacts a little more slowly than the usual exponential signal.

Are results guaranteed?

No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Normalized Macd Indicator as one input. Always backtest before trading live.

Category: this is part of our Oscillators collection. Browse more Oscillators for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.

External references

Dominic Walsh - Forex trader and MT4/MT5 developer

About the author

Written by Dominic Walsh, a Forex trader and MT4/MT5 indicator, Expert Advisor and script developer. Every tool on forexmt4systems.com is tested on live charts before release and ships with ready-to-use compiled MT4 (.ex4) and MT5 (.ex5) files. Learn more about the trader and developer behind this site.

How we build, test and correct every tool: Editorial & Testing Policy. Trading carries risk; see the disclaimer.

Leave a Comment