EMA Trend Meter Indicator: Five EMAs, One Score

Written by Dominic Walsh · Published · Last updated

The ema trend meter indicator turns five moving averages into a single number. It compares the close with EMAs at 5, 13, 21, 55 and 100, then sums those comparisons into a score between -5 and 5. That score prints as a histogram in its own pane, so five lines become one bar.

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 3 / 0 / -3)
Plots 4: Bull Stack, Bear Stack, Buy Signal, Sell Signal
Alerts popup, push notification, email
Inputs 10

Everything the Ema trend meter Indicator draws

Bull Stack is the lime green histogram covering a positive score.

Bear Stack is the crimson histogram covering a negative one.

Buy Signal and Sell Signal place lime and red arrows when the score crosses `StrongTrendLevel`.

Level lines sit at 3, 0 and -3, with the pane bounded at -5.5 and 5.5.

  • Bull Stack: histogram, lime green, width 3
  • Bear Stack: histogram, crimson, width 3
  • Buy Signal: arrow, lime, width 2, arrow code 233
  • Sell Signal: arrow, red, width 2, arrow code 234
EMA trend meter indicator on EURUSD H1 with the score histogram and threshold arrows
EMA trend meter indicator on EURUSD H1 with the score histogram and threshold arrows

The logic, one stage at a time

Building the five averages

iMA supplies EMA(close, n) for `EMA1_Period` `5`, `EMA2_Period` `13`, `EMA3_Period` `21`, `EMA4_Period` `55` and `EMA5_Period` `100`. `EMA_AppliedPrice` picks the source and defaults to PRICE_CLOSE. Those five lengths cover everything from the last few bars to roughly four days on H1.

Scoring the stack

The code fetches the close for the bar and compares it with each of the five averages. Every comparison moves the total by one point, so the score runs from -5 to 5. BufBull and BufBear both receive that value, and the sign decides which colour you see.

Triggering an arrow

`StrongTrendLevel` defaults to `4`. ComputeScore also runs on the previous bar, so an arrow marks the bar where the reading crossed the level rather than every bar that stays above it. Warmup covers the longest average, which keeps the first hundred bars of the pane clear.

How to read it

A score of 5 means price sits above all five averages at once.

A reading near 0 means the averages disagree, which usually means a range.

Level lines at 3 and -3 give you a visual mark just below the arrow threshold.

Watch the histogram shrink toward 0, because that happens before the colour flips.

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

`AlertsEnabled` ships on and drives the popup. `AlertOnPush` and `AlertOnEmail` add mobile and mail delivery, both off by default. This build carries no sound channel. The guard limits the meter to one message per closed bar.

Every Ema trend meter Indicator input

Core settings

Setting What it does Default
EMA1_Period EMA1 (fastest). Fastest average, default `5`. 5
EMA2_Period EMA2. Second average, default `13`. 13
EMA3_Period EMA3. Third average, default `21`. 21
EMA4_Period EMA4. Fourth average, default `55`. 55
EMA5_Period EMA5 (slowest). Slowest average, default `100`. It anchors the score, so lengthen it for a slower meter. 100
EMA_AppliedPrice Price source for all five averages, default PRICE_CLOSE. PRICE_CLOSE
StrongTrendLevel Abs score that triggers an arrow. Absolute score that triggers an arrow, default `4`. Set it to 5 to demand a full stack. 4

Alert settings

Setting What it does Default
AlertsEnabled Turns the alert block on, default `true`. on
AlertOnPush Mobile push delivery, default `false`. off
AlertOnEmail Mail delivery, default `false`. off
EMA trend meter indicator inputs: EMA1_Period through EMA5_Period and StrongTrendLevel
EMA trend meter indicator inputs: EMA1_Period through EMA5_Period and StrongTrendLevel

Where the settings fit

A stacked-average score suits trending instruments and struggles in ranges. EURUSD H1 is the reference chart, where `EMA5_Period` at `100` covers about four trading days. Down on M5 the score swings between 5 and -5 several times a session. Up on H4 a reading of 4 or more tends to last, which is what makes the arrow worth waiting for.

What it handles badly

Five averages on the same price series move together, so the score jumps in steps rather than sliding smoothly.

In a range the meter sits near 0 and gives no useful reading at all.

A score of 5 says the trend has already run. It confirms rather than warns.

Copy the compiled Ema trend meter 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.

Background reading on the method behind the Ema trend meter Indicator: Foreign exchange hedge on Wikipedia, Nyse Equity Indices at StockCharts ChartSchool.

Download the Ema trend meter Indicator for MT4 and MT5

The zip holds the compiled Ema trend meter 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

What does StrongTrendLevel at 4 require?

An absolute score of at least 4, which puts price on the same side of at least four of the five averages. ComputeScore also reads the previous bar, so the arrow marks the crossing rather than every bar that holds the level. Set it to 5 to demand the full stack.

Why read EMA1_Period through EMA5_Period at once?

Because a single crossover says very little on its own. Reading `EMA1_Period` `5` through `EMA5_Period` `100` at once tells you whether the short and long views agree. The score is just a count of that agreement, which is easier to read than five lines drawn over price.

What do the Bull Stack and Bear Stack plots show?

The same score, split by sign so the pane colours itself. Bull Stack draws lime green for a positive reading and Bear Stack draws crimson for a negative one. Both are histograms, so the height of each bar is the score itself.

Does EMA_AppliedPrice change the readings much?

It can. The default PRICE_CLOSE ignores wicks entirely. Switching to a median or typical price feeds highs and lows into all five averages, which smooths the score a little and shifts crossings by a bar here and there. Test the change before you keep it.

Are results guaranteed?

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

Category: this is part of our Trend collection. Also, browse more Trend 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