Search the site

What are you looking for?

Enter a broker, tool or topic.

Risk & capital

Forex Correlation Pairs: Measure Returns and Map Currency Exposure

Calculate correlation on synchronized returns, see what changes when a quote is inverted, and separate a historical relationship from the currency exposures inside two positions.

Author · Editor

Reviewed

A dark teal metal ribbon and a pale blue glass ribbon pass through a golden ring and diverge above a light stone base.
Inspect the correlation calculation

The essentials

  1. Correlation describes a selected set of paired observations. The data, timeframe, window and quote direction belong beside the number.

  2. Use synchronized returns to study co-movement. Two trending price charts can create a misleading impression of a trading relationship.

  3. A low or zero Pearson coefficient does not establish independence, and a high coefficient does not specify a hedge ratio.

  4. Long and short directions change position exposure. Keep each currency in its own units; correlation does not measure margin or the probability of a joint loss.

What forex pair correlation actually measures

Forex pair correlation usually refers to how the returns of two currency pairs move together over chosen observations. For example, one observation might compare the EURUSD and GBPUSD changes from 09:00 to 10:00 UTC. A coefficient calculated from hourly changes answers a different question from one calculated from daily changes, even when the pair names match.

Pearson’s sample coefficient compares centered values: r = Σ[(x − x̄)(y − ȳ)] / √(Σ(x − x̄)² × Σ(y − ȳ)²). Here x and y are paired returns and the bars above the letters denote their sample means. NIST’s correlation documentation defines this standardized measure of linear association.

When both series vary, r lies between −1 and +1. Positive values describe a positive linear relationship in that sample; negative values describe an opposing one. A value near zero means little measured linear association. If either series has no variation, the denominator vanishes: the coefficient is undefined, not zero.

A correlation number is a description of observations. It is not an instruction to open two trades, a guarantee of diversification or a forecast of the next price move.

Use returns and record the quote direction

A price level and its return are different quantities. EURUSD at 1.10 means 1.10 USD per EUR; it does not say how much the quote changed during the last hour. Comparing raw levels can mostly reflect shared trends rather than interval-by-interval co-movement. This guide uses one-period log returns: gₜ = ln(Pₜ / Pₜ₋₁), with strictly positive prices. CME’s explanation of FX quote conventions sets out the base and quote currency order.

For a change from 1.1000 to 1.1110, the simple return is 1%, while the log return is ln(1.01), approximately 0.9950%. These are close for a small move but are not identical. Expressing every log return as a decimal or multiplying every one by 100 changes its units, not Pearson’s coefficient.

Quote inversion has an exact interpretation for these log returns. If the displayed price becomes 1/P, its return becomes ln[(1/Pₜ)/(1/Pₜ₋₁)] = −gₜ. Inverting just one nonconstant series reverses the sign of r; inverting both preserves it. This identity is about reciprocal quotes over the same timestamps, not a new economic relationship.

Change to the data

Effect under this model

Multiply every price in one series by the same positive constant

Its log returns and correlation are unchanged.

Invert one quote, using the exact reciprocal

Its log-return signs reverse; correlation changes sign.

Invert both quotes

Both return signs reverse; correlation is unchanged.

Change the interval, sampling frequency or observations

Correlation must be recalculated; there is no fixed transformation.

Scroll sideways to compare all columns ↔

Read the currency order before interpreting a table. A pair ending in USD and a pair beginning in USD represent opposite quote orientations. Pair labels alone cannot establish a stable sign or strength, and a published “most correlated pairs” list is incomplete without its measurement settings.

Align observations before calculating

Each paired return must cover the same start and end times. Matching rows by their position in two files is insufficient: one feed may omit an hour, use a different timezone or timestamp the bar’s opening instead of its close. First establish what the timestamp means, then check the actual intervals.

The calculator below accepts a single aligned table: timestamp;priceA;priceB. Timestamps must be consecutive UTC hours in YYYY-MM-DDTHH:00:00Z form. Both prices belong to that row’s instant. Four to 128 price rows provide three to 127 paired returns. This deliberately narrow contract makes every observation inspectable.

Missing hours, duplicates, out-of-order rows and nonpositive prices are rejected. The tool does not silently sort, fill forward or join mismatched histories. A real weekend gap therefore cannot be pasted as consecutive hourly data. Select a genuinely continuous segment or use a separate data-preparation process whose gap policy is explicitly recorded.

Use comparable price definitions as well. A midpoint, a last traded price and a Bid quote are not interchangeable observations. Document the source, timestamp convention, price basis and any cleaning. For a broader distinction between historical observations and executable prices, see the forex backtesting guide.

Inspect the correlation calculation

Try it yourself

Compare matched currency returns

Inspect Pearson correlation over a selected trailing window of hourly log returns. Change the window or invert a quote and see exactly which observations enter the calculation.

The presets are invented examples, not market history or live correlations. Pasted data are not independently verified. This tool does not recommend a trade or a hedge.

One synchronized price table

Use timestamp;priceA;priceB, with that exact optional header. Supply 4–128 price rows in consecutive UTC hours: YYYY-MM-DDTHH:00:00Z. Positive prices up to 1,000,000, at most 8 decimal places; decimal dots or commas. No gaps, duplicate hours, missing cells, grouping separators or exponent notation. Maximum 20,000 characters.

In the presets, A is EUR/USD and B is GBP/USD, expressed as quote-currency units per base-currency unit. Pasted series keep the labels A and B; check their quotation basis yourself.

3–127 matched returns. N returns require the latest N+1 price rows. Three is this tool’s input minimum, not evidence of a statistically adequate sample. A window longer than the available history is rejected, never shortened automatically.
Quotation direction

Inverting one quotation negates its log returns exactly. The separately displayed reciprocal prices are not used to recompute rounded returns.

Fictional examples on the same 17 timestamps

The selected sample

Pearson r · hourly log returns
0.026688

Matched returns: 16; required price rows: 17; available returns: 16.

Observation period: 01/08/2024, 00:00 → 01/08/2024, 16:00. Timezone: UTC; interval: one hour.

Calculated quotation basis: A = A; B = B.

r describes linear co-movement in this particular sample. It is not a probability, a forecast, proof of independence or evidence that losses will cancel. A short window can change the result sharply.

Compare with correlation of price levels
Pearson r · N+1 price levels
-0.154912

This separate number uses the selected prices, not returns. Shared trends can make level correlation look strong. It cannot replace the return correlation above.

Log return u = ln(Pt/Pt−1). Charts and tables show 100 × u in percent units, not simple percentage returns. Pearson uses deviations from each series’ mean. Constant or numerically indistinguishable observations give an undefined coefficient. Display values are rounded; the CSV keeps the calculated precision.

One point per matched hourly return

Horizontal axis: A log return. Vertical axis: B log return. Each point is one synchronized interval. Exact observations and timestamps are listed in the table below; no fitted trading signal is implied.

B log return · %

A log return · %

Prices and matched returns used
Observation time · UTCInput price AInput price BCalculated price A / 1/ACalculated price B / 1/BA log return · %B log return · %
1.11.251.11.25Starting price onlyStarting price only
1.10111.25091.10111.25090.099950.071974
1.10071.25051.10071.2505-0.036334-0.031982
1.1021.2521.1021.2520.1180370.11988
1.10141.25111.10141.2511-0.054461-0.071911
1.10311.25281.10311.25280.154230.135788
1.10271.25221.10271.2522-0.036268-0.047904
1.1041.25381.1041.25380.1178230.127694
1.10351.25311.10351.2531-0.0453-0.055846
1.10481.25181.10481.25180.117738-0.103797
1.10441.25231.10441.2523-0.0362120.039935
1.10571.25091.10571.25090.117642-0.111857
1.1051.25181.1051.2518-0.0633280.071922
1.10641.25021.10641.25020.126617-0.127898
1.10591.25081.10591.2508-0.0452020.047981
1.10711.24951.10711.24950.10845-0.103988
1.10661.25011.10661.2501-0.0451730.048008

Tables scroll horizontally. Focus the table region and use arrow keys if needed.

Download observations and assumptions · CSV

The CSV contains the valid selected sample, original prices, reciprocal prices where selected, log returns, window, UTC basis and correlation. English machine headers and decimal dots preserve auditability; 17 significant digits preserve the computed numbers.

One-hour, already synchronized observations only. No automatic timezone conversion, resampling, forward filling, missing-data repair, live quote retrieval, significance test, rolling forecast or execution-cost model. A weekend or session gap must not be disguised as a one-hour interval.

These components calculate in this browser tab without sending the input or saving it in browser storage. A file is saved only if you choose to download it. This statement covers the two labs, not the rest of the site.

Start with the built-in example before entering your own table. It contains 17 invented hourly price observations, producing 16 paired log returns. The changing-relationship example is a teaching sequence, not a downloaded EURUSD/GBPUSD history. The other presets make co-movement and a constant series easier to examine.

Select the number of trailing returns and inspect the corresponding prices and return pairs. A window of N returns needs the final N + 1 prices. Changing N changes the included observations; it does not create more data. If the requested window is unavailable, correct the input rather than treating a shorter calculation as the requested result.

  • Check the first and last included timestamp, the number of paired returns and both quote directions.
  • Invert series A, series B and then both. Compare return signs as well as the coefficient.
  • Switch to the constant-series example and read why correlation is undefined.
  • Change the window on the changing-relationship example. Keep the setup beside any exported value.

Editing assumptions or data hides the previous result and its CSV until valid inputs are applied. An undefined result is also meaningful: a constant or numerically indistinguishable series does not support this calculation. Do not replace that message with a made-up zero or a directional conclusion.

All built-in prices are fictional. The calculator demonstrates a method and its input checks; it does not identify current market correlations or recommend a pair combination.

Read the coefficient without adding claims

The coefficient is unitless. An r of 0.8 does not mean the pairs move in the same direction 80% of the time, that one pair moves 80% as far as the other, or that a hedge removes 80% of losses. Those are different quantities requiring different definitions and evidence.

There is no universal “safe correlation” threshold. The number summarizes linear association in the selected sample and can be influenced by unusual observations. Inspect the paired returns as well as the coefficient. A short window may look striking while containing very little information about other periods. NIST’s scatter-plot guide shows why nonlinear patterns and unusual points matter when inspecting a relationship.

Zero correlation is particularly easy to overread. Consider an original mathematical example: choose X with equal probability from −2, −1, 0, 1 and 2, and define Y = X². The means are 0 and 2, the centered cross-products sum to zero, and both variables vary. Their Pearson correlation is zero.

X

−2

−1

0

1

2

Y = X²

4

1

0

1

4

Scroll sideways to compare all columns ↔

Yet knowing X determines Y exactly, so they are dependent. For example, P(Y = 0) = 1/5, but P(Y = 0 | X = 0) = 1. This original example proves the limitation; it is not a model of currency returns or an estimate of market probabilities.

Treat timeframe and window as part of the result

A rolling calculation replaces older observations with newer ones while retaining a chosen window length. Its changing value may reflect genuinely different co-movement, a few influential returns or ordinary sampling variation. A changing chart alone cannot tell you which explanation applies.

Hourly, daily and weekly returns aggregate information differently. A daily coefficient cannot be substituted for an hourly one just because it is more convenient to find. Also separate the observation frequency from the window length: “one hour” may describe each return, while “16 returns” describes the sample used here.

Choose comparison windows before looking for an attractive number. Record the alternatives you tried and retain unfavourable results. If you repeatedly search dates until a relationship looks stable, the selected result benefits from that search. A later historical interval can challenge it, but it does not guarantee future stability.

The invented presets deliberately make sensitivity visible. Their short samples cannot support population conclusions, significance claims or a promise that a relationship will persist. This tool supplies no p-values, confidence intervals or automatic trading signals.

Map the currencies inside two positions

Try it yourself

Map two positions into currencies

Translate each chosen pair, direction and base-unit quantity into signed base and quote amounts at an assumed reference price. Compare net and gross amounts within each currency.

This is a currency representation of two positions, not an account balance, a cash transfer, margin, P/L or a recommended hedge ratio. It does not simulate broker or CFD settlement rules.

Position 1
More than 0 and up to 1,000,000,000 EUR, with at most 2 decimal places. These are currency units, not lots.
More than 0 and up to 1,000,000 USD per EUR, with at most 6 decimal places. Assumed reference price, not a live quote. Changing the pair clears this field.
Position 2
More than 0 and up to 1,000,000,000 GBP, with at most 2 decimal places. These are currency units, not lots.
More than 0 and up to 1,000,000 USD per GBP, with at most 6 decimal places. Assumed reference price, not a live quote. Changing the pair clears this field.

Signed currency contributions

Long base/quote: +Q base and −Q × P quote. Short: −Q base and +Q × P quote. Q is base units; P is quote units per base unit. Each leg uses its own assumed price.

Signed currency contributions
Currency · amounts in its own unitsPosition 1 contributionPosition 2 contributionNet · signed sumGross · sum of absolute amounts
EUR+10,000.00No contribution+10,000.0010,000.00
GBPNo contribution−10,000.00−10,000.0010,000.00
USD−11,000.00+12,500.00+1,500.0023,500.00

Tables scroll horizontally. Focus the table region and use arrow keys if needed.

Net adds signed contributions within one currency. Gross adds their absolute amounts. Opposite contributions can leave zero net while gross remains positive. Different currencies are never added into one total.

Equal opposite quantities at the same reference price cancel this representation only. Costs, different execution prices, changing valuations, contract rules and remaining portfolio risk are outside this model.

Quantities allow 2 decimal places and prices allow 6; their products retain up to 8 exact decimal places. No conversion to a common reporting currency is performed.

Download inputs and currency map · CSV

The CSV records both assumptions, all signed contributions and per-currency net and gross amounts with 8 decimal places. English machine headers use decimal dots. No live prices or account data are included.

These components calculate in this browser tab without sending the input or saving it in browser storage. A file is saved only if you choose to download it. This statement covers the two labs, not the rest of the site.

Correlation concerns observations; exposure begins with what the positions represent. For a pair BASE/QUOTE, a conceptual long of Q base units at price P has a +Q base leg and a −Q × P quote leg. A short reverses both signs. P is measured in quote-currency units per base-currency unit.

Use the second tool to enter two pairs, directions, base quantities and reference prices. It reports each contribution, then net and gross amounts separately for each currency. Net adds signed amounts in that currency; gross adds their absolute amounts. Neither operation combines EUR, GBP and USD into a single total.

Position at its reference price

Base-currency leg

Quote-currency leg

Long 10,000 EURUSD at 1.10

+10,000 EUR

−11,000 USD

Short 10,000 GBPUSD at 1.25

−10,000 GBP

+12,500 USD

Combined, keeping currency units separate

+10,000 EUR and −10,000 GBP

+1,500 USD net; 23,500 USD gross

Scroll sideways to compare all columns ↔

The two USD legs partly offset, yet the result still contains EUR, GBP and USD exposures. The map does not assert that this position pair is diversified or market-neutral. Changing the quantity or direction changes these legs even if the historical price-series correlation stays the same.

These are conceptual currency equivalents at supplied reference prices. A CFD account does not necessarily exchange or hold those cash amounts; contract specifications and account rules determine actual obligations. The map calculates no balance, collateral, margin, liquidation level or account-currency loss. Forex versus futures explains why instrument structure must be checked separately.

Why correlation is not a hedge ratio

Position direction matters. If two quoted return series are positively correlated, long–long and long–short combinations do not have the same signed exposure. Position size, each return’s variability, price levels and conversion into the account currency also matter. A price-series coefficient alone contains none of that sizing information.

Even a simplified variance calculation needs more: Var(aX + bY) = a²Var(X) + b²Var(Y) + 2abCov(X,Y). Correlation supplies only the standardized covariance term. This identity is explanatory; the calculator does not estimate a hedge ratio, choose a position size or optimize a portfolio.

Correlation also does not determine the probability that two positions lose together. That event depends on the directions, entry and exit rules, holding period, costs and the joint distribution of outcomes. The same linear coefficient can coexist with different tail behaviour. Assessing joint losses needs a separate, explicitly defined model and observations of its outcomes.

Execution adds further differences between observed co-movement and realized results. Spreads, slippage and financing can affect positions separately. Do not insert a correlation value as a “joint-loss probability” into a risk-of-ruin calculation: those inputs describe different models.

A repeatable way to investigate a relationship

Begin with a question you can answer from the available observations, such as whether two specific hourly return series showed a linear relationship during a stated interval. Keep that descriptive question separate from whether a position combination would have achieved a particular result.

  • Write down the pair order, data source, price basis, timezone, timestamp meaning, return formula and observation frequency.
  • Validate synchronized timestamps and positive prices. Record exclusions instead of quietly repairing gaps.
  • Fix the window rule, calculate correlation and inspect the paired returns, including unusual observations.
  • Compare preselected periods and quote orientations. Preserve the settings and results, including undefined outcomes.
  • Map the proposed position directions and quantities by currency; do not treat that map as a margin or cash statement.
  • If a trading hypothesis follows, specify its rules and costs in a separate backtest and record its limitations.

The trading plan template offers a place to record a hypothesis and rejection criteria. A correlation table can be an input to that research record. It cannot replace a rule for entering and leaving positions or establish that the rule is profitable.

Frequently asked questions

Which forex pairs are the most correlated?

There is no timeless ranking. A useful answer identifies the pairs, quote orientation, data source, return formula, timeframe, window and calculation date. The fictional examples here provide no live ranking. Recalculate on properly aligned observations before making a descriptive claim about a real period.

Should I correlate prices or returns?

For the co-movement question in this guide, use synchronized log returns. Correlation of price levels is a different statistic and can be dominated by trends. Stating the chosen transformation is necessary; calling both calculations simply “pair correlation” hides an important difference.

Does negative correlation mean two positions hedge each other?

No. The relationship refers to quoted returns before position direction and sizing. Two opposite or matching trade directions change the interpretation, while volatility, costs and changing relationships remain relevant. This calculator neither identifies an effective hedge nor recommends one.

Why does inverting one quote change the sign?

For a reciprocal price, the log return is exactly the negative of the original log return over the same interval. Pearson correlation therefore changes sign when only one varying series is inverted. Inverting both preserves the coefficient. Rounding displayed reciprocal prices should not redefine the underlying calculation.

Why is a constant series shown as undefined?

Pearson’s denominator requires variation in both inputs. A constant series has none, so a numeric coefficient cannot be calculated. Numerically indistinguishable variation may also be insufficient at the calculation’s precision. Undefined must not be interpreted as zero association or independent behaviour.

Does the exposure map show my actual money or margin?

No. It shows conceptual base and quote legs at the reference prices you enter, with net and gross amounts kept in each currency. Actual cash settlement, margin and account losses depend on the instrument, broker contract and account. Those are outside this educational map.

Sources & further reading

Risk & capital
Forex backtestingSeparate a historical relationship from an executable trading hypothesis.Risk of ruin calculatorUnderstand the assumptions behind a different probability model.Forex versus futuresCheck the instrument structure before interpreting currency exposure.Trading plan templateRecord the research question, rules and rejection criteria.
All guides