Currency Strength Index Indicator: Eight On One Scale

Written by Dominic Walsh · Published · Last updated

The currency strength index indicator answers a question a single chart cannot. Is the euro strong, or is the dollar weak? It reads twenty-eight pairs. Then it isolates each currency and puts all eight on one scale.

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 20 / 50 / 80)
Plots 8: EUR index, GBP index, AUD index, NZD index, USD index, CAD index, CHF index, JPY index
Alerts popup, push notification, email, sound
Inputs 23

What the Currency Strength Index Indicator draws on the chart

`EUR index` runs royal blue and `USD index` runs lime.

Six more lines cover GBP, AUD, NZD, CAD, CHF and JPY.

The pane is fixed between 0 and 100, with levels at 20, 50 and 80.

A ranking panel lists the eight in order.

  • EUR index: line, royal blue, width 2
  • GBP index: line, crimson, width 2
  • AUD index: line, hot pink, width 2
  • NZD index: line, cadet blue, width 2
  • USD index: line, lime, width 2
  • CAD index: line, khaki, width 2
  • CHF index: line, white smoke, width 2
  • JPY index: line, dark orange, width 2
Currency strength index indicator eight-currency ranking on the EURUSD H1 chart.
Currency strength index indicator eight-currency ranking on the EURUSD H1 chart.

How the Currency Strength Index Indicator calculates its values

Percent change comes first

Each pair contributes its percent move across `InpPeriod` `20` bars. A percentage travels where points do not. That is what lets a yen pair sit beside a dollar pair on one scale.

Normalising twice

`InpNormWindow` `50` scales each pair against its own recent behaviour. `InpScaleLookback` `500` then maps the combined readings onto the 0 to 100 range. `InpScaleK` `3.0` sets how far out the rails sit.

Missing data stops the plot

`InpMinPairs` `8` demands at least eight pairs before anything appears. A broker with odd symbol names can fail that test. Drawing half a picture would be worse than drawing none.

How to read the signals

Rank matters far more than the number itself.

The strongest against the weakest is the pair with the clearest move.

The 50 line means average, since the scale is relative.

`InpOverbought` `75.0` and `InpOversold` `25.0` mark broadly bid and offered.

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

`EnableAlerts` is the master switch and starts true, with `EnablePopup` giving the terminal message. `EnablePushNotify` targets the MetaQuotes ID, `EnableEmail` needs mail set up in the terminal options, and `EnableSound` plays `SoundFile`.

Every Currency Strength Index Indicator input

Core settings

Setting What it does Default
InpPeriod Percent-change lookback N (bars) – step 1 of the formula. Bars in the percent-change window, default `20`. 20
InpNormWindow Per-pair normaliser window M (bars) – step 2. Bars each pair gets scaled against, default `50`. 50
InpScaleLookback STABLE 0-100 normaliser lookback L (bars) – step 5. Bars behind the stable 0 to 100 mapping, default `500`. 500
InpScaleK Dispersion multiple that reaches the 0 / 100 rail – step 5. Dispersion multiple that reaches the rails, default `3.0`. 3.0
InpMinPairs Minimum resolved pairs before anything is plotted. Pairs that must resolve before plotting, default `8`. 8
InpOverbought Index level treated as broadly bid. Level treated as broadly bid, default `75.0`. 75.0
InpOversold Index level treated as broadly offered. Level treated as broadly offered, default `25.0`. 25.0
InpX Panel X offset (px). 14
InpY Panel Y offset (px) – clears the one-click panel. 120

Display settings

Setting What it does Default
InpMaxBars History bars to build (28 pairs are re-read per new bar). History built across twenty-eight pairs, default `600`. 600
InpShowPanel Show the 0-100 ranking panel. Show the ranking readout, default `true`. on
InpCorner Panel corner (0=UL 1=UR 2=LL 3=LR). 0
InpFontSize Panel font size. 9
InpFont Panel font (monospaced keeps the columns square). Consolas
InpPanelBg Panel background (dark amber – distinct from the slope tool). RGB 26,12,6
InpBorderColor Panel border colour. dark orange
InpTextColor Panel body text colour. wheat

Alert settings

Setting What it does Default
EnableAlerts Master alert switch. Master alert switch, default `true`. on
EnablePopup Terminal popup alert. on
EnablePushNotify Push notification to the MetaQuotes ID. off
EnableEmail E-mail alert (configure Tools > Options > Email). off
EnableSound Play a sound file on a new reading. off
SoundFile Sound file name inside terminal Sounds folder. alert.wav
Currency strength index indicator inputs panel with InpPeriod, InpNormWindow and InpMinPairs.
Currency strength index indicator inputs panel with InpPeriod, InpNormWindow and InpMinPairs.

Settings that fit your chart

Strength is a relative measure, so the chart sets the horizon. EURUSD H1 is the reference chart. There `InpPeriod` `20` covers most of a day. On M5 the ranking reshuffles constantly. H4 gives a swing-scale picture.

When the Currency Strength Index Indicator fails

Symbol naming varies by broker, and unresolved pairs weaken the reading.

Reading twenty-eight pairs on every new bar is heavy work for the terminal.

A currency can look strong purely because its counterparts are all weak.

Copy the compiled Currency Strength Index 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 Currency Strength Index Indicator: World currency on Wikipedia, Wyckoff Market Analysis at StockCharts ChartSchool.

Download the Currency Strength Index Indicator for MT4 and MT5

The zip holds the compiled Currency Strength Index 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 does InpPeriod 20 use percent change?

Because points mean different things on different pairs. A twenty-point move in USDJPY is not the same as one in EURUSD. A percentage is, which is what allows a single shared scale.

What does InpMinPairs 8 protect against?

A partial reading. Brokers name symbols differently, and some pairs may not resolve at all. Requiring eight before plotting means you never see a strength ranking built from half the data.

How does InpScaleK 3.0 set the rails?

It multiplies the spread of recent readings to decide what counts as the 0 and 100 ends. A larger value pushes the rails further out. The lines then spend more time in the middle band.

Does a high EUR index mean euro buying?

It means the euro outperformed the other seven across the window. That can happen because the euro rose or because everything else fell, and the ranking alone cannot separate the two.

Are results guaranteed?

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

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