Absolute Strength Histogram Indicator: Ups Minus Downs

Written by Dominic Walsh · Published · Last updated

The absolute strength histogram indicator keeps the two sides of a move apart until the last step. Over `StrengthPeriod` bars it sums every up close into one figure. Every down close feeds another. Both get smoothed. Only then does the code subtract.

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 0)
Plots 2: Net strength up, Net strength down
Alerts popup, push notification, email, sound
Inputs 15

What the Absolute Strength Histogram Indicator draws on the chart

Net strength up is the histogram above zero, in `UpColor`.

Net strength down is the histogram below it, in `DownColor`.

A reference line marks zero between them.

An OBJ_LABEL note repeats the current settings when `ShowNote` is on.

  • Net strength up: histogram, width 3
  • Net strength down: histogram, width 3
Absolute strength histogram indicator on EURUSD H1 with the net strength pane
Absolute strength histogram indicator on EURUSD H1 with the net strength pane

How the Absolute Strength Histogram Indicator calculates its values

Two running sums

Over `StrengthPeriod` `10` bars the code adds every positive close-to-close change into rawBull. Every negative change contributes its absolute size to rawBear. Neither figure knows about the other at this stage.

Smoothing before subtracting

Both raw series then run through a smoothing at `Smooth` `5`. A plain mean seeds each one at the warmup boundary. Smoothing the two sides apart gives a cleaner result than smoothing the difference would.

Making it readable

net takes the smoothed bull figure minus the smoothed bear one. `DisplayScale` `1000.0` then multiplies it. Raw close-to-close sums on a five-digit pair are tiny, so the scale is what makes the pane legible.

How to read the signals

Above zero the up moves in the window outweighed the down moves.

Bar height reports the size of that imbalance, not its direction of change.

A crossing of zero means the balance tipped over ten bars.

`DisplayScale` is cosmetic, so a tall bar is not automatically a large move.

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

`EnableAlerts` arrives switched on and `EnablePopup` does the talking. `EnablePushNotify`, `EnableEmail` and `EnableSound` all begin false. `SoundFile` picks the clip. The zero cross test reads closed bars, one message per bar.

Every Absolute Strength Histogram Indicator input

Core settings

Setting What it does Default
StrengthPeriod Rolling window for the up/down sums. Bars in the two running sums, default `10`. 10
Smooth EMA smoothing period (SMA seeded). Smoothing length applied to each side, default `5`. 5

Display settings

Setting What it does Default
DisplayScale Readability scale for the subwindow. Readability multiplier for the pane, default `1000.0`. 1000.0
UpColor Net positive histogram colour. Positive histogram colour, default medium sea green. medium sea green
DownColor Net negative histogram colour. Negative histogram colour, default tomato. tomato

Alert settings

Setting What it does Default
MaxBars History bars to scan (0 = all). History bars scanned, default `2000`. 2000
ShowNote Show the settings note. Draws the settings note, default `true`. on
NoteX Note X (px). 12
NoteY Note Y (px). 16
EnableAlerts Master alert switch. Master switch for the zero cross alerts, default `true`. on
EnablePopup Popup alert. Terminal dialog on a zero cross, default `true`. on
EnablePushNotify Push notification to phone. Phone push on a zero cross, default `false`. off
EnableEmail Email alert. Mail delivery on a zero cross, default `false`. off
EnableSound Sound alert. Sound playback on a zero cross, default `false`. off
SoundFile Sound file. Wav clip for the strength alert, default `alert.wav`. alert.wav
Absolute strength histogram indicator inputs: StrengthPeriod, Smooth, DisplayScale
Absolute strength histogram indicator inputs: StrengthPeriod, Smooth, DisplayScale

Settings that fit your chart

A ten-bar imbalance reads as a short-term measure. EURUSD H1 is the reference chart, where the window covers under half a day. On M5 the pane crosses zero several times a session. On H4 one colour block often covers a real multi-day leg.

When the Absolute Strength Histogram Indicator fails

Ten bars is a short window, so the reading swings hard.

`DisplayScale` `1000.0` makes small imbalances look dramatic on the pane.

Summing close-to-close changes ignores where each bar traded during its life.

Copy the compiled Absolute Strength Histogram 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 Absolute Strength Histogram Indicator for MT4 and MT5

The zip holds the compiled Absolute Strength Histogram 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 smooth before subtracting?

Because smoothing each side apart keeps more information. Subtracting first would collapse the two figures into one noisy series. Smoothing that afterwards blurs a lot of it. `Smooth` `5` runs on both raw sums.

What does DisplayScale at 1000.0 do?

Nothing to the calculation, everything to the view. Close-to-close sums on a five-digit pair sit in the fourth decimal place, so an unscaled pane would look flat. Lower it on gold or an index, where prices already run large.

How much history does StrengthPeriod sum?

Ten bars for each of the two sums. On EURUSD H1 that is under half a day. Lengthen it for a steadier reading that turns less often. The cost is a slower reaction to any change in balance.

When does the Net strength up plot hand over?

The moment net drops below zero. Both buffers receive the same figure, and only the sign decides which one draws. The inactive buffer holds EMPTY_VALUE, so exactly one bar appears per index.

Are results guaranteed?

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

Authoritative 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