Quant Memo
Core

Synthetic Market Data for Backtesting

Artificially generated price series, built to share statistical properties with real markets, used to stress-test a strategy on scenarios that historical data never happened to produce.

History only happened once. A backtest run on real prices tests a strategy against exactly one sequence of events — one 2008, one 2020 crash, one specific decade of interest rate policy — and there's no way to know whether that one path was representative or a fluke. Synthetic market data solves a narrower but useful problem: generate artificial price series that share the statistical fingerprints of real markets (volatility clustering, fat tails, autocorrelation) without being tied to any one historical sequence, so a strategy can be tested against many plausible worlds instead of the single one that actually occurred.

How it's built

The simplest approach simulates prices from a statistical model — geometric Brownian motion for a naive baseline, or a more realistic model like GARCH that reproduces volatility clustering (calm periods and turbulent periods), or a model with fat-tailed shocks to reproduce the extreme moves real markets show more often than a normal distribution predicts. A more data-driven approach resamples pieces of real historical returns (see block bootstrap) to build new sequences that never literally happened but are built from real market behavior. Either way the goal is the same: produce data that looks statistically like the real thing but isn't any specific historical episode, so a strategy's backtest performance can't be an artifact of one particular sequence of dates.

Worked example: stress-testing a strategy against volatility it never saw

A momentum strategy backtested on 2015–2019 US equities shows a strong 1.6 Sharpe ratio — but that five-year window happened to be unusually calm, with no major crash. Generating 500 synthetic price paths from a GARCH model fit to that same data, calibrated to occasionally produce volatility spikes the real 2015–2019 window didn't happen to contain, and re-running the strategy on each path gives a distribution of Sharpe ratios instead of one number: say, a median of 1.1 with a 10th percentile of 0.2. That spread tells the researcher the strategy's real-history 1.6 was likely flattered by a calm sample, and gives a more honest sense of what performance to expect if a volatile stretch actually occurs — information the single historical backtest could never provide on its own.

actual history grey paths: synthetic scenarios, same statistical fingerprint
Actual history is one path out of many that could have occurred; synthetic paths sharing its volatility and autocorrelation structure reveal how sensitive the backtest result is to which path happened to occur.

What this means in practice

Synthetic data doesn't replace real historical backtesting — it supplements it, mainly to answer "how much of this result is luck of the historical draw?" and to test strategies against scenarios (extreme crashes, unusual correlation breakdowns) too rare to show up enough times in the real record. It's especially valuable for strategies that will trade in conditions the historical sample barely covers, like a crisis-alpha strategy backtested mostly through a calm decade. The main risk is that synthetic data is only as good as the model generating it — a GARCH model calibrated on calm data will underestimate how extreme real crashes can get, so synthetic scenarios should be treated as a lower bound on how bad things can go, not a full replacement for judgment.

Synthetic market data generates many statistically plausible price paths instead of relying on the single historical sequence a backtest normally uses, turning a strategy's performance from one number into a distribution and revealing how much of the historical result was luck of the draw.

Synthetic data can only be as realistic as the model used to generate it. A model calibrated on a calm historical sample will produce synthetic paths that are also too calm, giving false confidence about tail risk the real market is fully capable of producing.

Related concepts

Further reading

  • López de Prado, Advances in Financial Machine Learning, ch. 12
ShareTwitterLinkedIn