How does a currency strength meter work?
Quick answer
A currency strength meter scores each major currency by its average move against the other seven over a lookback window. Mathematically that equals 8/7 times the currency's log change against the dollar minus the average change of all eight, so seven dollar rates are enough and the scores always sum to zero. The window drives the answer: to 23 October 2026, the Australian dollar ranked first over one week and one year but sixth over one month.
A currency strength meter scores each currency by how it moved against all the others over a lookback window, usually by averaging its change across the seven pairs it forms with the other major currencies. The useful thing to know is that those seven pairs add no information. With eight currencies, a currency's average move against the other seven is exactly 8/7 times its move against the dollar minus the average move of all eight. Seven exchange rates are enough to compute the whole meter.
The second thing to know is that the lookback window decides the answer. On Federal Reserve data to 23 October 2026, the Australian dollar was the strongest major over one week and over one year, and the sixth strongest over one month.
The usual method, and why meters disagree
There is no standard formula. LuxAlgo's own explainer says methods vary by tool and that meters disagree. One popular MetaTrader meter offers five calculation methods (CCI, DeMarker, Momentum, MovingAverage and RVI). Forum threads on babypips and MQL5 ask for the formula outright.
Most of them share a core. Take the eight majors (USD, EUR, JPY, GBP, AUD, CAD, CHF, NZD), measure the change in each of the 28 pairs over a window, credit the change to the base currency and debit it from the quote currency, then average each currency's seven results. After that, some meters smooth the result, convert it to z-scores or squash it onto a 0 to 100 scale.
Those last steps are cosmetic. The choices that actually change the ranking are the window and the price change you measure.
The shortcut: seven dollar rates are enough
Write each currency's value in dollars and take log changes over the window: r(EUR), r(JPY) and so on, with r(USD) = 0. A cross rate is a ratio of two dollar values, so the log change in EURJPY is r(EUR) − r(JPY). Crosses trade directly, but triangular arbitrage keeps them in line with their two dollar legs, so this holds to within a spread.
Now average the euro's change against the other seven: (1/7) × Σ (r(EUR) − r(j)) over the seven other currencies. Rearranged, that is (8/7) × (r(EUR) − the average of all eight r). Every currency's score is its dollar return, demeaned across the basket, scaled by 8/7.
Two things follow. The scores always sum to zero, so a meter can never show every currency strong at once. And the dollar is one of the eight, with a score of its own, not the yardstick the others are measured against.
We checked the identity against a brute-force 28-pair calculation on the same data. The ratio was 1.143, which is 8/7, in every window we tried. Using simple percentage changes instead of log changes moved the scores slightly and never changed the ranking.
import numpy as np
import pandas as pd
def currency_strength(usd_value: pd.DataFrame, start, end) -> pd.Series:
"""usd_value: dollar price of one unit of each currency, plus a USD column of 1.0.
Returns each currency's average log change vs the others, in percent."""
r = np.log(usd_value.loc[end] / usd_value.loc[start])
n = len(r)
return (100 * (r - r.mean()) * n / (n - 1)).sort_values(ascending=False)
# fx: Fed H.10 daily rates, one column per pair
usd_value = pd.DataFrame({
"EUR": fx.EURUSD, "GBP": fx.GBPUSD, "AUD": fx.AUDUSD, "NZD": fx.NZDUSD,
"JPY": 1 / fx.USDJPY, "CAD": 1 / fx.USDCAD, "CHF": 1 / fx.USDCHF, "USD": 1.0})The inputs come from the Federal Reserve's H.10 release: noon buying rates in New York, published for all seven non-dollar majors. H.10 quotes the euro, pound, Australian dollar and New Zealand dollar as dollars per unit, and the yen, Canadian dollar and Swiss franc as units per dollar, hence the three inversions.
Worked example: the same data, four windows
Every window ends on 23 October 2026. Each score is the currency's average log change against the other seven majors, in percent.
Rank 1 week 1 month 3 months 1 year
from 16 Oct from 23 Sep from 24 Jul from 21 Oct 2025
1 AUD +0.85 GBP +0.84 JPY +4.68 AUD +9.58
2 CAD +0.76 JPY +0.83 CAD +0.49 CAD +0.63
3 NZD +0.45 CAD +0.65 AUD +0.47 USD +0.49
4 JPY +0.25 NZD +0.45 GBP +0.07 GBP +0.36
5 GBP -0.19 CHF -0.18 USD -0.20 NZD -0.35
6 USD -0.57 AUD -0.19 CHF -1.31 JPY -3.32
7 CHF -0.64 USD -0.21 EUR -2.08 EUR -3.69
8 EUR -0.90 EUR -2.18 NZD -2.12 CHF -3.71Read across a row and the ranking reshuffles. The yen is the strongest major over three months, because USDJPY fell from 163.71 on 24 July to 156.87, and the sixth over a year, because a year earlier it stood at 151.72. The Australian dollar tops two windows and sits sixth in a third. The euro is the one steady signal: last over a week and a month, seventh over three months and a year.
None of these is wrong. They answer different questions, which is why a meter that does not show its window cannot be read. Two meters with different default windows will disagree on the same day with identical data.
Currency strength versus the dollar index
Over the year to 23 October 2026 the US Dollar Index rose 2.8%. On an equal-weighted meter over the same dates, the dollar scored +0.38%, third of the eight majors and barely above zero. Both are right. The DXY puts 57.6% of its weight on the euro, and over those dates the euro was the weakest major. The meter gives the euro the same weight as the Australian dollar, which was the strongest. If you write about "the dollar", say which measure you mean.
How to chart currency strength
The readable chart is one horizontal bar per currency, sorted, diverging from zero, with the window and method in the title: "Currency strength, 1 month to 23 Oct 2026, average log change vs 7 majors". To show how strength evolves, plot each currency's cumulative score as a line from a common start date. Because the scores sum to zero, the lines fan out around zero.
Avoid the 0 to 100 gauge for anything you publish. Rescaling throws away the size of the move, so a quiet week and a violent one look the same, and readers cannot check the numbers. If the question is how the pairs move together rather than which currency is strongest, a correlation matrix heatmap is the right tool, and the same rule applies there: correlate returns, not price levels.
[QUADESTO-EMBED: currency strength bars for the eight majors from Fed H.10 rates, window selector 1w / 1m / 3m / 1y, with cumulative score lines]
Where Quadesto fits
A strength meter you can publish needs its window, source and method on the chart, not hidden in a settings panel. Quadesto turns series like the H.10 rates into a labeled chart you can share as a link or embed, so readers see the same numbers you do. Build your first chart free.