Currency Strength Oscillator MT5

This indicator plots the relative strength of the eight major currencies as a history, decomposed from the 28 major pairs. A panel tells you where things stand now. This shows how they got there — which currency has been strengthening, which has rolled over, and where the ranking changed hands.

All eight series are exposed as documented indicator buffers, so an Expert Advisor can read currency strength directly.

How the decomposition works

Each of the eight currencies appears in seven of the twenty-eight pairs. Its strength is the average of those seven readings, with the sign inverted wherever it is the quote currency — a falling AUDJPY means a strengthening yen, not a weakening one.

Every pair contributes to exactly two currencies, positively to its base and negatively to its quote, so across the full set those contributions cancel and the eight strengths sum to zero. The indicator uses that as an internal check: if the values did not balance, the decomposition would be wrong. It also means the readings are relative rather than absolute. A currency is not strong on its own, only strong against the rest of the set.

Because the calculation reads the currencies rather than the chart, the same eight lines appear whatever symbol the indicator sits on.

What the history shows that a snapshot cannot

A ranking tells you the order today. A history tells you how long it has held, whether the leader is still climbing or already turning, and when two currencies swapped places. Crossings are where the ranking changed hands.

Individual currencies can be switched off, which is often more useful than watching all eight. Plotting only the two that make up the chart's own symbol gives a clean read on which side is driving it.

Two ways to measure strength

Rate of change is the percentage move across the lookback. It is directly comparable between pairs because it is relative.

Standardised distance from the mean expresses the same move in standard deviations, which keeps instruments of very different volatility on one scale.

They behave differently at long lookbacks. At a lookback of 200, rate of change accumulates a persistent offset — several currencies sit above or below zero for the whole window without crossing it — while the standardised measure stays centred. Neither is wrong. Rate of change describes the move that actually happened; the standardised measure describes how unusual it was. At short lookbacks the difference is small.

Pair mode

Pair mode plots a single line: the strength of one currency minus another. It is the same decomposition, reduced to one relationship, and it works on any chart — CHF minus JPY can be watched while trading EURAUD.

This is not the same as the price of CHFJPY. The price is one market's quote; this is the difference between two currencies each measured against the whole matrix.

Beyond the majors

The indicator runs on any chart, not only FX. On a gold or index chart the currency lines still describe the currencies, which is often exactly what is wanted — a dollar-priced instrument is easier to read when the dollar itself is visible beside it. More than one instance can be attached, at different lookbacks, to compare a faster and a slower view.

Note what is and is not being claimed there. Gold is not part of the 28-pair matrix and has no strength value of its own. What the chart shows is the dollar, measured from the FX matrix, displayed alongside gold's price. The honest reading is that the dollar weakened while gold rallied — not that gold was strong.

Reading it from an Expert Advisor

Ten buffers are exposed and documented. Buffer order is fixed and alphabetical, and does not change with the display switches — hiding a currency removes it from the chart but the buffer keeps its values, so an EA is unaffected by a user's display preference.

int h = iCustom(_Symbol, _Period, "CurrencyStrengthOscillator"); double jpy[]; ArraySetAsSeries(jpy, true); CopyBuffer(h, 5, 0, 100, jpy); // buffer 5 is always JPY

  • 0 — AUD
  • 1 — CAD
  • 2 — CHF
  • 3 — EUR
  • 4 — GBP
  • 5 — JPY
  • 6 — NZD
  • 7 — USD
  • 8 — zero line
  • 9 — pair spread, base minus quote, populated in pair mode

Inputs

  • Strength measure — rate of change, or standardised distance from the mean
  • Lookback — the window each reading is measured over, in bars; 14 by default
  • Smoothing — a moving average applied to the result; 3 by default, 1 for none
  • Bars to calculate — how far back to compute; 500 by default, 0 for all available history
  • Symbol suffix — detected automatically, and can be set by hand for unusual broker naming
  • Show a single pair spread — switches to pair mode, with a base and quote currency to compare
  • Show AUD through Show USD — one switch per currency, all on by default and ignored in pair mode

What the screenshots show

  • Three charts side by side — NZDUSD, NZDJPY and USDJPY, each showing only its own two currencies. The shared lines trace identical paths across the charts: the New Zealand dollar is the same measurement in the first two, the yen the same in the last two. The indicator reads the currencies, not the chart.
  • All eight currencies on GBPUSD hourly — the yen separating from the pack while the dollar and the pound fall away, alongside the price move that accompanied it.
  • The Data Window — all ten buffers against a single bar, labelled and readable by an Expert Advisor. The eight currency values in it sum to −0.001, which is the zero-sum property in practice rather than in theory.
  • USDJPY daily with only two currencies plotted — the dollar and the yen, where the crossings line up with the turns in price and nothing else competes for attention.
  • Gold hourly with the dollar isolated, at two lookbacks — two instances of the indicator in separate windows, one slower and one faster. The shorter lookback turns first, the longer confirms.
  • Pair mode on CHFJPY daily — a single line, the Swiss franc minus the yen.
  • The same EURGBP H4 window under both measures — one screenshot for rate of change, one for the standardised measure, with nothing else changed. At a lookback of 200 the offset described above is visible in the first and absent in the second.
  • AUDUSD weekly — price running from 2019 while the oscillator begins in late 2020. That gap is the broker's shortest common history, described below.
  • The inputs dialog — every setting, with the pane visible behind it.

How far back it plots

The decomposition needs all 28 pairs on a bar to mean anything, so the usable depth is the shortest history among them — and brokers hold far less history on minor crosses than on majors. Where the available history is shorter than requested, the indicator plots what it can and reports the limit once in the Experts log.

On short timeframes this is invisible. It becomes visible on Weekly and Monthly, where the common history can be a few hundred bars or fewer, and the oscillator will start part-way across a chart whose price runs back much further. That is the limit, not a fault. It is a property of broker data and applies to every currency strength tool — most simply do not tell you.

Bars to calculate defaults to 500. Raising it, or setting 0 for all available history, gives a longer view at the cost of a slower first load on a new timeframe.

Calculation behaviour

Closed-bar values are final. The forming bar updates until it closes, and is recomputed on each tick rather than being frozen at first touch, so its value settles at the close instead of recording whatever the price happened to be when the bar opened.

Every bar is decomposed from all 28 pairs or not at all. Each currency is averaged over the pairs that actually contributed to it rather than over an assumed seven, and where a pair is missing the bar is left empty. A gap is obvious; a strength computed from a partial set looks exactly like a real reading and cannot be identified as wrong later.

Where a pair's bar times do not line up with the chart — a gap in the broker's history, which does occur on the lowest timeframes — that pair is excluded from the affected bars rather than shifted onto the wrong ones, and the exclusion is reported in the Experts log.

Notes

  • Draws in a separate window, with ten indicator buffers. The buffer map above is fixed and does not change with the display switches.
  • All 28 major pairs must be available from your broker. The indicator reports any that are missing by name in the Experts log.
  • The plotted range is limited by the shortest history among the 28 pairs, which is visible on Weekly and Monthly. The limit is reported once in the Experts log.
  • More than one instance can be attached to the same chart, at different lookbacks or different measures.
  • No external dependencies. Every value is calculated inside the indicator. It does not call any other indicator, so there are no handles to fail, nothing to install alongside it, and no dependency on the state of your standard indicator folder.

What this is and is not

This is a tool for technical analysis and for filtering market conditions. It is not a trading system, it produces no buy or sell signals, it gives no investment advice, and it does not open or manage positions.

It is descriptive rather than predictive. It measures what the eight currencies have been doing; it does not forecast what they will do next, and no claim is made about its performance.

More tools from this developer

I build MT5 indicators and Expert Advisors with an emphasis on clean, documented, no-repaint code — closed-bar logic, validated buffers, and no dependencies on other indicators.

If you want the current picture across all 28 pairs and nine timeframes at once, the Multi Timeframe Currency Strength Panel is free and uses the same decomposition. This indicator is its history.

See all published products →

Questions about the calculation, the buffers, or using this in your own EA? Send me a private message — I am happy to answer.

Built and maintained by Narayanan Mohanan, MT5/MQL5 developer.

More from author
Anchored Volume Delta with Adaptive Bands
Narayanan Mohanan Mohanan Krishnan
This indicator plots Cumulative Volume Delta (CVD) — the running total of each bar's volume, signed by the direction the bar closed — inside adaptive standard-deviation bands. It answers a question price alone does not: is the move being carried by participation, or is it drifting? The cumulative total restarts at an anchor you choose — daily, weekly or monthly — so the reading is always relative to the current session, week or month rather than to the beginning of chart history. That single con
FREE
Force Index with Adaptive Volatility Bands
Narayanan Mohanan Mohanan Krishnan
This indicator plots the Force Index — each bar's price change multiplied by its volume — inside adaptive standard-deviation bands. Where price alone tells you that a market moved, the Force Index tells you how much effort went into moving it. A large price change on thin volume and a small change on heavy volume are very different events, even when the candles look similar. The Force Index separates them by combining both into a single reading, and the bands place that reading in the context of
FREE
Multi Timeframe Currency Strength Panel
Narayanan Mohanan Mohanan Krishnan
This panel shows where the eight major currencies stand right now, and how each of the 28 major pairs has been moving across nine timeframes at once. Both readings sit on one chart, updated on a timer. Ranking pairs on their own is misleading. When a single currency moves, every pair containing it moves with it, so the top of a pair ranking is often the same currency repeated seven times. This panel separates the driver from the duplicates by decomposing the whole matrix into individual currency
FREE
OBVCD Pro
Narayanan Mohanan Mohanan Krishnan
OBVCD Pro is a momentum oscillator that applies convergence/divergence analysis to On-Balance Volume (OBV) instead of price, combining adaptive volatility bands with a 5-state regime classifier that can be read visually on the chart or consumed directly by an Expert Advisor. Most classical oscillators analyse price alone. OBVCD Pro calculates convergence and divergence from cumulative volume flow, so it measures the participation behind a market move rather than only the movement itself. The res
Filter:
No reviews
Reply to review