Guide/FX forecasting
Guide

Can you predict exchange rates? The forty-year wall

The most-cited result in international finance says no. Here is where that wall holds, where it cracks, and how to check any forecasting claim before you believe it.

MMexchangerate.dev·Jun 26, 2026·6 min read

In 1983, Meese and Rogoff showed that no exchange-rate model could out-predict a random walk out of sample: the do-nothing forecast that tomorrow's rate equals today's. Forty years and thousands of papers later, that wall still stands at short horizons. The one reliable crack is multi-year mean reversion. Nothing dependable beats the random walk over days to months.

Key points
At day-to-month horizons, no model class reliably beats a random walk out of sample for the major pairs. A 2025 Federal Reserve study and a 2024 meta-analysis of 8,413 forecast errors both reconfirmed it.
The one robust exception is long-horizon (five years or more) mean reversion toward purchasing-power parity, confirmed in European Central Bank research.
Most "machine learning beats the market" results come from data snooping across models and features, not genuine out-of-sample predictability.
An honest test needs a random-walk benchmark, out-of-sample evaluation, a significance test, real-time data, and transaction costs.
Real-time versus revised data matters: about a third of one famous positive result vanished once the data was used as it was actually published at the time.

The wall: short horizons

In 1983, Richard Meese and Kenneth Rogoff asked whether the exchange-rate models everyone relied on actually beat a coin flip. They found that none could out-predict a random walk out of sample, even when the models were handed the true future values of their own inputs. Forty years on, that wall still stands at short horizons for the major pairs: EUR/USD, USD/JPY, GBP/USD.

The most recent confirmations do not come from skeptics. They come from the people building the models. A 2025 Federal Reserve working paper put modern machine learning through its paces and called the apparent edge a "mirage": the gains were small, local, and gone the moment the test window grew. A 2024 meta-analysis in the Journal of International Money and Finance pooled 8,413 reported forecast errors and reached a blunt verdict. Sophistication does not pay, and nonlinear or ML models do not beat plain linear ones in any systematic way.

What the random-walk benchmark is
The bar every model has to clear is the simplest forecast there is: tomorrow's rate equals today's. No parameters, no fundamentals. If a model cannot beat "no change" out of sample, it has shown no real predictive power, however sophisticated it looks.

The crack: long horizons and mean reversion

The wall is not seamless. There is one reliable gap, and it opens at the long horizon. Stretch the forecast out to five years or more and purchasing-power-parity models do beat the random walk for the major pairs. The European Central Bank has confirmed this across several studies. The footnote is where the honesty lives, though. Nearly all of that predictive power comes from one mechanical fact: real exchange rates tend to drift back toward their long-run average over time. It has nothing to do with forecasting interest rates or growth. You are not really predicting the currency so much as betting it reverts, and only on a multi-year clock. That is useless for next week.

Why complexity keeps failing

There is a reason "we beat the market with deep learning" papers keep getting published and keep failing to replicate. It is a statistical trap. Search hard enough across models, features, and hyperparameters and something will look predictive on your sample by sheer luck. Recent work has a name for it: "selection-induced performance inflation", the gap between a polished backtest and what actually happens out of sample. Nobody is committing fraud. They are data-snooping, and it fools careful, honest people all the time.

How to test an FX forecasting claim

Whether you are checking your own model or a vendor's pitch, the list is the same:

  • Benchmark against the random walk. No exceptions. A lower error number means nothing without it.
  • Out-of-sample only, on a rolling or expanding window. In-sample fit does not count.
  • Run a significance test (Diebold-Mariano, or Clark-West when the model nests the benchmark) so you know the gap is not luck.
  • Use real-time data, not revised. Subtle and lethal: a 2003 study found about a third of an earlier positive result evaporated once the authors used the data as it was actually published at the time, instead of the cleaned-up numbers that arrived later.
  • Put costs in. Bid-ask spreads quietly kill most marginal edges.

Test it yourself

You do not have to take anyone's word for this. The API gives you clean, single-source daily rates for the major currencies, and every response is tagged with its source and market_session, so you can tell a live trading-day rate from a weekend reference print. That distinction is exactly the kind of thing that quietly wrecks a careless backtest. Pull the series, build the random-walk benchmark, and see for yourself. The guides on historical time series and avoiding look-ahead bias, linked below, cover the data side.

The wall is real, and it is not mysterious. It is a high bar that nobody gets to skip. Most forecasting claims fail it; the few that pass are narrow, conditional, and honest about where they stop working.

MM
exchangerate.dev
FX data guides for developers building with indicative rates.

Keep reading

GuideBackfill FX rates without look-ahead biasRead ReferenceHistorical FX rates and time seriesRead BlogWhy USD/IDR just hit an all-time highRead