The trading toolkit
Historical Forex Correlation & Volatility Lab
Compare historical forex return correlation, sample volatility and currency changes against EUR. Explore sourced ECB 2024 data or your own local CSV.
Explore what the historical data actually says.
Compare two currency pairs over the same observation dates. Start with 256 published ECB reference observations from 2024-01-02 to 2024-12-31, or import a compatible file. This lab calculates historical statistics; it has no live feed, forecasts or executable prices.
Currency strength here means the change in each currency’s value against EUR only. It is not a broad strength score, a basket index or a trading signal. Everything runs in this page; imported files are neither uploaded nor saved by this tool.
Choose your observations.
ECB 2024 reference-rate dataset: 256 observations, 2024-01-02 to 2024-12-31. Quotes are USD, GBP and JPY per EUR.
Optional: save supported currency-pair, currency or time-zone selections. Amounts, prices and conversion rates are not saved.
Import your own reference-rate CSV
Use 4–5,000 observations and a file no larger than 1 MiB (1,048,576 bytes). The entire file must pass validation before it replaces the working data. A failed import leaves that data intact. A successful import resets the date window to the file’s full range.
date,USD,GBP,JPY. Each quote is positive currency units per one EUR, all from a consistent source and observation time. Dates use YYYY-MM-DD, must be unique and sorted oldest first. Use decimal points; omit thousands separators, empty fields and formulas.Use the downloadable ECB CSV as the template. Direct exports with extra columns or a different base currency need to be converted before importing. The tool checks structure and numbers, but cannot independently verify your source or quote convention.
Your historical sample
Pair changes and volatility
A pair rate is quote-currency units per one base-currency unit. Change is last ÷ first − 1. Volatility is the sample standard deviation of consecutive-observation log returns × √252, shown as a percentage. It is not a realised trading return or a forecast.
Currency value changes versus EUR
A positive value means one unit of that currency bought more EUR at the last observation than at the first. EUR is the reference, so its change against itself is zero. These are separate bilateral comparisons, not weights in a currency basket.
View every included observation
The calculation method, in full.
1. Keep one quote basis and common dates.
The source columns give USD, GBP and JPY per one EUR. EUR/USD, EUR/GBP and EUR/JPY use those columns directly. GBP/USD = USD per EUR ÷ GBP per EUR. USD/JPY = JPY per EUR ÷ USD per EUR. These are mathematical reference crosses; they do not include spreads, commissions or differences between executable feeds.
Hypothetical cross-rate example: 1.10 USD per EUR ÷ 0.88 GBP per EUR = 1.25 USD per GBP. If USD/JPY uses 165 JPY per EUR and 1.10 USD per EUR, the derived value is 150 JPY per USD.
2. Compare log returns, not price levels.
For each consecutive pair of observations, rt = ln(Pt ÷ Pt−1). Pearson correlation compares the two aligned return series after subtracting each series’ mean. It lies between −1 and +1; it is undefined when either return series has zero variation. Shared currencies can contribute to a relationship, and correlation can change substantially across date windows. It does not establish causation, a hedge ratio or a diversification guarantee.
3. State the volatility convention.
With N return observations, sample standard deviation = √[Σ(rt − mean return)² ÷ (N − 1)]. We multiply this by √252 and then by 100 to display an annualised percentage. The 252-interval scaling is an assumption, not an observed annual outcome. It assumes comparable intervals and omits serial-dependence adjustments. A return across a weekend or a longer gap is kept as one interval, without rescaling by elapsed days. Sparse or irregular imported samples can make this annualised figure misleading; inspect the observation count and largest calendar gap.
4. Separate pair movement from currency value.
Pair change = (last pair rate ÷ first pair rate − 1) × 100%. For a currency quoted as units per EUR, its value in EUR is the reciprocal. Its EUR-value change is therefore (first source quote ÷ last source quote − 1) × 100%. These percentages have different denominators and are not simply negatives of one another.
If EUR/USD moves from 1.10 to 1.21, the pair rises 10%. The EUR value of one USD changes by (1.10 ÷ 1.21 − 1) × 100 = −9.090909…%. Both describe the same two rates from different currency perspectives.
The chart separately rebases each selected pair to 100 at the first included observation. Its horizontal axis follows actual observation dates. Connecting lines guide the eye; they do not reconstruct missing prices. The accompanying table supplies every included source quote and derived pair rate. Display rounding is limited to six decimal places, with scientific notation for very small or large values; calculations retain full precision.
Source and provenance.
Source: European Central Bank. The bundled dataset contains 256 observations for each of three ECB euro foreign exchange reference-rate series in 2024. We joined matching published dates, sorted them in ascending order and did not interpolate or fill missing data. Cross-rates, statistics and chart rebasing are calculations by InsomniCapital, not figures published or endorsed by the ECB.
ECB dates identify reference observations, not UTC daily candle closes. The ECB normally determines these rates around 14:10 CET and publishes them around 16:00 CET on working days other than TARGET closing days. They are provided for information and are unsuitable as executable transaction prices.
Official series: EXR.D.USD.EUR.SP00.A, EXR.D.GBP.EUR.SP00.A, EXR.D.JPY.EUR.SP00.A. Dataset retrieved 2026-10-02. See the original ECB API query, ECB API documentation and ECB reuse conditions. The CSV available here is free to download.
Inspect the download integrity record
These SHA-256 checksums identify the exact retrieved source response and the transformed downloadable CSV. They are provenance checks, not a guarantee that an imported file has the same source.
Original ECB response SHA-256:
ea54ab4844ea11eca1207c3e86a05d0cd2b117d58ab2e4ff0ea617e8b098f662
Download CSV SHA-256:
febf2b45b33628f8e8aceae6d28ced5833e78e4b393b13f14d5d316b8ee61bd8
First published date: 2024-01-02. Last published date: 2024-12-31. Rows: 256.
Put the numbers in context.
Read how currency pairs are quoted, how to avoid hindsight in testing and why costs and position size matter. Use the trading journal for your own closed-trade records and the position-size calculator for a separate risk calculation.
A relationship in these reference rates does not establish a profitable strategy. This lab excludes entry and exit rules, leverage, bid/ask spreads, slippage, financing, liquidity and execution. It is a historical data exploration tool, not an instruction to trade or a measure of achievable performance.
Prepared by InsomniCapital. Checked 2 October 2026. Educational calculations and record keeping, not personalised investment advice or evidence of future returns. Risk disclosure.