Geometric Mean vs Arithmetic Mean for Currency Strength

Geometric Mean vs Arithmetic Mean for Currency Strength

4 May 2026, 16:33
Matthias Wilhelm Scholz
0
46

Most currency strength meters use arithmetic calculations — simple pip differences or percentage changes averaged across pairs.
There is a mathematically cleaner approach that solves several problems at once.

When measuring the strength of EUR against 7 other major currencies, the arithmetic approach sums the pip changes of all 7 EUR pairs.
This works, but it creates a scaling problem. EURJPY moves 100 pips while EURCHF moves 10 pips.
The JPY pair dominates the calculation regardless of its actual significance.

The geometric mean approach takes the 7th root of the product of all 7 pair values.
Each pair contributes proportionally to the final index value, regardless of its absolute price level.
A 1 percent move in EURCHF has the same impact on the EUR index as a 1 percent move in EURJPY.

In MQL5, this can be implemented using the CustomSymbolCreate function to generate synthetic chart symbols.
The formula for a EUR basket index looks like this:

pow((EURCAD * EURCHF * (EURJPY/100) * EURAUD * EURUSD * EURGBP * EURNZD), 0.142857)

The division of EURJPY by 100 normalizes the JPY pairs to the same scale as the other pairs.
The exponent 0.142857 is simply 1/7.

What makes this interesting is a mathematical property that emerges when you calculate all 8 currency indices this way.
The sum of all 8 daily pip changes always equals zero.
If EUR gained 45 pips and USD gained 124 pips across their respective baskets, the remaining 6 currencies must collectively show exactly -169 pips.

This zero-sum property is not an approximation.
It is a mathematical certainty of the geometric mean construction applied to a closed set of currencies.
It provides a built-in validation mechanism: if your calculations do not sum to zero, something is wrong.

For anyone interested in building custom synthetic symbols in MT5, the key functions are CustomSymbolCreate, CustomRatesUpdate and CustomTicksAdd.
The main challenge is handling broker rollover periods around midnight where spread widening can create artificial spikes in your synthetic charts.

I have published a free indicator on the CodeBase that demonstrates the geometric mean approach applied to the USD index:
MATTRIX USDx Compare. It compares the official ICE-weighted USDX with an equal-weighted version using the same 6 pairs.
https://www.mql5.com/en/code/72600