The currency strength meter indicator ranks eight major currencies in one pane. Each line is a rate of change reading, averaged across every pair that holds that currency. USD, EUR, GBP, JPY, AUD, CAD, CHF and NZD each get their own colour. A zero line splits the strong side from the weak side.
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 | 8: USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD |
| Alerts | popup, push notification, email, sound |
| Inputs | 12 |
What the Currency Strength Meter Indicator draws on the chart
USD (blue), EUR (gold), GBP (crimson) and JPY (orchid) take the first four buffers.
AUD (green), CAD (orange), CHF (silver) and NZD (turquoise) fill the rest.
A zero line runs across the pane. Above it a currency has gained over the lookback, below it the currency has lost ground.
ShowLabels adds a legend of currency names, so the colours are readable without guessing.
- USD: line, dodger blue, width 2
- EUR: line, gold, width 2
- GBP: line, crimson, width 2
- JPY: line, medium orchid, width 2
- AUD: line, lime green, width 2
- CAD: line, dark orange, width 2
- CHF: line, silver, width 2
- NZD: line, turquoise, width 2

How the Currency Strength Meter Indicator calculates its values
Rate of change, pair by pair
For every pair holding a given currency, the code reads the close now and the close LookbackPeriod bars ago. That difference becomes a percentage of the older price.
One such number is the raw contribution of one pair. A pair moving up adds to its base currency and takes away from the quote currency.
Averaging into one score
Each currency appears in several pairs, so the readings get summed and divided by how many contributed. That average is the currency score.
The score is then multiplied by 1.5 before it reaches a buffer. Scaling keeps the eight lines spread across a readable range instead of bunched near zero.
How far back the pane fills
MaxBarsBack caps the drawn history at 600 bars by default, and older bars stay empty.
That cap keeps the first pass quick. Eight currencies across many pairs means a lot of history reads per bar, so covering a whole chart would be slow.
How to read the signals
Whichever line sits at the top of the pane is the strongest currency over the lookback, and the bottom line is the weakest.
Pairing the top line against the bottom one is the usual way traders use a meter.
Lines crossing each other matter more than the level of any single line.
Everything bunched near zero means no currency is leading, which is a poor condition for this reading.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
Alerts cover popup, push, email and sound, and they fire when a currency clears StrengthHighThresh or drops under StrengthLowThresh. A bar time check keeps it to one alert per closed bar.
Every Currency Strength Meter Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
LookbackPeriod |
ROC lookback bars. LookbackPeriod is how many bars back each rate of change measures. It defaults to 14. A longer setting gives a slower, steadier ranking. | 14 |
StrengthHighThresh |
Strong currency threshold (alert). StrengthHighThresh is the level a currency has to reach for a strong alert, 6.0 by default. | 6.0 |
StrengthLowThresh |
Weak currency threshold (alert). StrengthLowThresh is the matching weak side at -6.0. | -6.0 |
Display settings
| Setting | What it does | Default |
|---|---|---|
MaxBarsBack |
Bars to draw back (history). MaxBarsBack limits how much history the pane draws, 600 bars by default. Raise it if you scroll back often. | 600 |
ShowLabels |
Show currency legend. ShowLabels draws the currency legend. It defaults to true. | on |
LabelFontSize |
Legend label font size. LabelFontSize sets the legend text size, 9 by default. | 9 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
(see inputs panel) | on |
EnablePopup |
(see inputs panel) | on |
EnablePushNotify |
(see inputs panel) | off |
EnableEmail |
(see inputs panel) | off |
EnableSound |
(see inputs panel) | off |
SoundFile |
(see inputs panel) | alert.wav |

Settings that fit your chart
The screenshot uses EURUSD H1. A meter is a cross market reading, so the chart it sits on decides the timeframe rather than the symbols it measures. H1 and H4 give a ranking that holds for a session or two. On M1 the ordering reshuffles constantly and the crossings stop meaning much.
When the Currency Strength Meter Indicator fails
Rate of change is a blunt measure. A currency that gapped at the open reads as strong for LookbackPeriod bars afterwards, whether or not it still moves.
The meter needs every pair it reads to sit in Market Watch. A missing symbol quietly drops out of that currency average and skews the score.
That 1.5 scaling is fixed in the code. It changes how the lines look and nothing about the underlying ranking.
A meter gives you the ordering, not the entry. Two currencies far apart can stay far apart for days with no clean setup between them.
Copy the compiled Currency Strength 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.
Download the Currency Strength Meter Indicator for MT4 and MT5
The zip holds the compiled Currency Strength 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.
FAQ
How does the meter score a currency that sits in several pairs?
It reads every pair holding that currency, works out a rate of change over LookbackPeriod bars for each one, then averages those readings. A currency appearing in six pairs gets a six-way average. That is why one odd pair moves the score far less than it would move a single chart.
What does StrengthHighThresh at 6.0 actually trigger?
It sets the level a currency line has to reach before a strong alert fires. StrengthLowThresh does the mirror at -6.0 on the weak side. Both work on the scaled score you see in the pane, so raising the threshold makes alerts rarer without changing any line.
Why is MaxBarsBack capped at 600 bars by default?
Eight currencies across many pairs means a lot of history reads on every bar. Capping the drawn range at 600 keeps the first calculation quick. Raise MaxBarsBack if you scroll back often, and expect the pane to take longer to fill when you do.
Can I read direction from a single USD line alone?
Not reliably. A meter ranks currencies against each other, so the useful information is the gap between two lines rather than the height of one. USD rising while every other line rises too tells you little. USD rising while NZD falls is the readable case.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Currency Strength Meter Indicator as one input. Always backtest before trading live.
Category: this is part of our Sessions collection. Next, plainly, truly, browse more Sessions for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- For background on this concept, see Hard currency on Wikipedia.
- For broader market context, see True Strength Index at StockCharts ChartSchool.
