4.34 Currency Strength Models from Pair Decomposition
A quoted pair hides which currency moved. Solve the whole cross matrix jointly and each currency's strength decouples, giving X-ray vision through the quotes, fixed only up to a normalization.
The previous article cancelled the dollar out of two pairs to isolate EUR versus GBP. The natural next question: why stop at two. Every currency you care about appears in many pairs at once, and each pair is a tangle of two currencies moving against each other. If subtracting two pairs decouples three currencies, then solving the whole web of pairs simultaneously should decouple every currency, handing you a single strength number for each one with all the other currencies divided out. That is a currency strength model, and it gives you X-ray vision through the quoted prices: instead of EURUSD, GBPUSD, USDJPY, you see EUR, GBP, USD, JPY as separate, decoupled objects.
The motivation is that a quoted pair never tells you which currency moved. EURUSD up could be EUR strong, USD weak, or both. A trader who wants to trade EUR (not EUR-against-some-specific-dollar) needs EUR's own strength, separated from whatever the dollar is doing, and that is exactly what pair decomposition produces. Once you have per-currency strength, you can build an index for each currency, rank them, and trade the strongest against the weakest.
This article builds the currency strength model, generalizing the two-pair cancellation from "Cross-Pair Signals: Can EUR Predict GBP?" to the whole cross matrix. It is the FX endpoint of the decomposition idea and a cousin of the learned-network view in "From Intermarket Analysis to Network Momentum", both of which extract structure hidden inside a wall of correlated prices.
One pair is underdetermined
Start with why a single pair cannot be decomposed. Express a pair's change over a period as the product of two per-currency multipliers: the old EURUSD quote times an EUR multiplier over a USD multiplier equals the new quote.
$$ \left(\frac{\text{EUR}}{\text{USD}}\right)\left(\frac{E}{U}\right) = \frac{\text{eur}}{\text{usd}} $$
The old EURUSD quote times the ratio of the EUR multiplier E to the USD multiplier U gives the new quote. The problem is that only the ratio E over U is determined by the pair's move. A 0.8% rise in EURUSD could be E equal to 1.008 with U equal to 1 (all EUR strength), or E equal to 1 with U equal to 0.992 (all USD weakness), or any combination in between. One equation, two unknowns: the pair fixes the ratio and leaves the individual strengths free. This is the same identification problem the two-pair subtraction faced, and the solution is the same: add more pairs.
Many pairs make it solvable
Add more pairs and each one contributes another equation in the same shared set of currency multipliers. EURUSD constrains E over U; GBPUSD constrains G over U; EURGBP constrains E over G; and so on across every cross you have data for.
$$ \left(\frac{\text{EUR}}{\text{USD}}\right)\!\left(\frac{E}{U}\right) = \frac{\text{eur}}{\text{usd}}, \quad \left(\frac{\text{GBP}}{\text{USD}}\right)\!\left(\frac{G}{U}\right) = \frac{\text{gbp}}{\text{usd}}, \quad \left(\frac{\text{EUR}}{\text{GBP}}\right)\!\left(\frac{E}{G}\right) = \frac{\text{eur}}{\text{gbp}} $$
Three pairs in three currency multipliers E, G, and U are now jointly constrained: the EURGBP equation ties E and G together, GBPUSD ties G and U, and EURUSD ties E and U, so the system pins down the individual strengths up to one overall normalization. Extend this to the whole market (dozens of crosses across all the currencies you trade) and you have many equations in relatively few currency multipliers, an over-determined system.
Because the real market does not satisfy all equations exactly (quotes are noisy and not perfectly synchronous), you do not solve it by substitution. You hand it to a numerical optimizer: define an error function over a candidate set of currency multipliers that measures how badly they reproduce all the observed pair quotes, start every multiplier at 1 (no change), and minimize. The optimizer returns the set of per-currency multipliers that best explains the entire pair matrix at once.
From multipliers to strength indices
Once you have each currency's multiplier, the strength signal is one step away. Take the log of a currency's multiplier and it is that currency's decoupled log return over the period, its move with every other currency divided out.
$$ \log(E) = \log\!\left(\frac{\text{eur}}{\text{EUR}}\right) = \text{decoupled log return of EUR} $$
The log of the EUR multiplier equals the log return of EUR's own strength, independent of the dollar, the pound, or anything else it is normally quoted against. Accumulate these per-period log returns and you get a strength index for each currency, a clean price-like chart of EUR itself, GBP itself, USD itself. This is the X-ray view: under a EURUSD chart that rose, you can now see whether EUR climbed, the dollar sank, or both, and by how much each.
With per-currency strength indices in hand, the toolbox opens. Apply ordinary trend and momentum analysis to a single currency's index. Rank all currencies by strength and trade the strongest against the weakest as a single pair, which concentrates the relative-strength edge the cross-pair article found between just two. Feed the decoupled returns into intermarket currency analysis or a model, the same structure-extraction the network-momentum article used on a learned graph.
The honest limits
The decomposition is powerful and it is an estimate, with the failure modes every estimate carries.
It is only identified up to a normalization. The system fixes the relative strengths, not an absolute level, so you must impose a constraint (fix a numeraire, or require the average strength change across currencies to be zero) to pin the solution. Different normalizations give different-looking indices, and comparing two strength models built on different conventions is comparing apples to oraches. The choice is arbitrary and must be stated, the kind of acknowledged arbitrary choice the house style flags rather than hides.
It depends on the basket of pairs. The strength of a currency is estimated from the pairs you fed in, so a model built on G10 crosses gives different numbers from one that includes emerging-market pairs, and a currency thinly represented in the basket gets a noisy, poorly identified strength. The decomposition is a property of the basket as much as of the currency.
It is non-stationary and not free to trade. The relationships drift, so the model must be re-estimated continuously, and the strongest-versus-weakest trade it suggests still pays spreads and slippage on real pairs, often on the less liquid crosses where the strength extremes live, the cost constraint from "Why Transaction Costs Should Be Added Before You Fall in Love". A strength index is a clean signal sitting on top of a messy, costly execution surface, and the cleanliness of the signal does not reduce the cost of acting on it.
Visualizing the decomposition

KEY POINTS
- A quoted pair never tells you which currency moved: EURUSD up could be EUR strong, USD weak, or both. A currency strength model decouples each currency from the pairs it is quoted in, giving one strength number per currency.
- A single pair is underdetermined: it fixes only the ratio of its two currencies' multipliers, leaving the individual strengths free. One equation, two unknowns.
- Adding pairs adds equations in the same shared currency multipliers. Across the whole cross matrix you get an over-determined system that pins down each currency's strength up to one overall normalization.
- Because real quotes are noisy and asynchronous, you do not solve by substitution. A numerical optimizer minimizes an error function measuring how badly a candidate set of multipliers reproduces all observed pair quotes, starting every multiplier at 1.
- The log of a currency's multiplier is its decoupled log return, its move with every other currency divided out. Accumulating these gives a clean strength index per currency, X-ray vision through the quotes.
- With per-currency strength you can apply trend and momentum to a single currency, rank all currencies and trade the strongest against the weakest, or feed decoupled returns into intermarket analysis or a model.
- It is identified only up to a normalization, so you must impose a constraint (a numeraire or zero-average-change), and the choice is arbitrary and must be stated. Different conventions give different-looking indices.
- It depends on the basket of pairs, is non-stationary and must be re-estimated continuously, and the strongest-versus-weakest trade still pays real spreads and slippage, often on the less liquid crosses where the extremes live.
References
- Trading Systems and Methods - Perry Kaufman (Amazon)
- Cybernetic Trading Strategies - Murray Ruggiero (Amazon)
- The Art of Currency Trading - Brent Donnelly (Amazon)
- The Microstructure of Foreign Exchange Markets
- Noise Trading and Exchange Rates
- The Impact of FX Central Bank Intervention in a Noise Trading Model
- Lead-Lag Relationships in Market Microstructure
- High-Frequency Trading, Asset Pricing, and Market Microstructure
- Identification of Structural Parameters in Simultaneous Equations Models with Market Microstructure Application
- Full article: Identifying an unknown source term in a heat equation
- Identifying Noise Traders: The Head-And-Shoulders Pattern In U.S.