TradingView indicator guides

Currency Strength Indicator & Matrix

A currency strength indicator averages the returns of one currency against a defined basket. This free matrix compares eight major currencies using current quote changes, with an equal-weight average and a relative 0 to 100 score. It is a snapshot, not a historical TradingView indicator.

8 Major Currencies
Five-minute refresh
100% Free

Currency Strength Matrix

Basis: provider price minus reported change. Refresh frequency is not the return window. Compare quotes only when their reference periods and feeds agree.

Provider quote timestamps are unavailable in this response. Fetch time above records receipt in your browser, not market freshness.

Pair performance matrix (Base vs Quote)

Scores compare available averages within this snapshot. Missing pairs, different quote times, and provider baselines limit comparability. This tool provides information, not investment advice.

How the currency strength matrix is calculated

Read each row as the base currency and each column as the quote currency. A positive EUR/USD cell means the euro rose in dollar terms over the provider reference period. Percentage returns make differently priced pairs comparable in units; they do not make different time windows comparable.

  1. Recover the baseline: reference price = current price − reported price change. Return = 100 × change / reference price. Non-finite values and non-positive prices or baselines are excluded.
  2. Handle the direction: if the pair return is r percent, its inverse is −r / (1 + r / 100). When both directions are supplied, the alphabetically ordered symbol is preferred; otherwise its reverse is used. Both cells use that one source.
  3. Average the basket: sum the valid returns against the other seven listed currencies and divide by its available pair count. Each counterpart has one equal weight; other currencies are excluded.
  4. Scale the result: score = 100 × (average − minimum average) / (maximum average − minimum average). Equal averages all receive 50. No usable pairs means no rank, not a neutral observation.

The scale is relative to this snapshot. A score of 100 can occur during a small market move. Missing quotes change basket weights, so compare coverage before comparing ranks. A partial basket is not equivalent to a complete seven-pair average.

A three-currency worked example

Hypothetical arithmetic only: at one common reference time, EUR/USD, GBP/USD, and EUR/GBP each equal 1. At one common later time, EUR/USD is 1.10, GBP/USD is 1.05, and EUR/GBP is 1.10 / 1.05. The example uses only three currencies so every value can be checked.

Illustrative returns in percent, with two counterparts per row
BaseEUR quoteGBP quoteUSD quoteAverageScore
EURN/A+4.7619%+10.0000%+7.3810%100
GBP−4.5455%N/A+5.0000%+0.2273%50
USD−9.0909%−4.7619%N/A−6.9264%0

The EUR average is (10 + 4.7619) / 2 = 7.3810%. USD/EUR falls 9.0909%, not 10%, because its starting and ending quotes are reciprocals. GBP receives 50 here because its average lies at the midpoint of the other two averages, not because its return is zero. Calculations use unrounded values; the table rounds for display.

Check the time window before comparing with TradingView

This page requests FMP quote data through the Pineify API. It does not simulate prices or replace failed requests with sample data. The browser refreshes every five minutes while open; the API currently caches these requests for 30 seconds. Neither interval defines the return window. The calculation inherits the provider reported change baseline and cannot verify aligned reference timestamps from price and change alone.

A historical currency relative strength indicator needs a fixed basket, a defined lookback, and aligned price observations for every bar. This tool does not fetch those histories or backtest a basket. Current quotes also need not match a TradingView broker feed. A stale quote can make a precise-looking score misleading.

  • Specify all symbols and their providers, a common timeframe, and an exact baseline such as the close 20 completed hourly bars earlier.
  • Choose whether missing data removes the whole observation or changes the divisor. Do not silently replace a missing return with zero.
  • Separate developing bars from confirmed bars. Higher-timeframe requests need explicit confirmation and lookahead handling to avoid using future data.
  • Check one direct pair, its inverse, the row average, and the normalized score on the same bar before defining entries, exits, spread, and costs.

TradingView documents how request.security() selects symbol and timeframe contexts and how gaps and lookahead affect returned data. Those settings must be specified when building the historical version; a current ranking alone is not a trading strategy.

Sources and further checks

Reviewed October 17, 2026. The formulas and hypothetical matrix are shown here for independent calculation.

Currency Strength Matrix FAQ

What does a currency strength indicator measure?

A currency strength indicator summarizes how one currency changes against a defined basket over a defined window. This matrix averages available percentage changes against seven other major currencies. It measures relative movement, not the correlation between two return series.

Why is the inverse return not just the negative return?

An inverse quote has a different denominator. If EUR/USD rises 10%, USD/EUR falls 9.09%, calculated as -10 / (1 + 10 / 100). The matrix derives both directions from one quote per pair to keep this relationship consistent.

Is a strength score of 100 a buy signal?

A score of 100 only identifies the highest available average in the current snapshot. It is not a probability, forecast, or entry rule. Scores change when other currencies or quote coverage change, even if the average for that currency stays constant.

Does this matrix show live or historical currency strength?

The matrix requests current FMP forex quotes and refreshes every five minutes while open. It does not store a historical basket or provide a selectable lookback. The fetch time is not the market quote time, and delayed or missing quotes can affect the result.

Can I reproduce the matrix on TradingView?

You can implement the same formulas, but matching values also requires matching feeds, quote directions, basket members, reference closes, and timestamps. For a bar-based indicator, define a fixed timeframe and lookback, then compare individual pair returns before comparing the aggregate score.

Define your currency basket in Pine Script

Bring the basket, return window, missing-data rule, and bar confirmation rule to Pine Script AI Coding Agent. Check the generated values bar by bar, then define strategy exits and trading costs separately.

Open Pine Script AI Coding Agent