Skip to main content
AI Fin Hub

Generator

Synthetic Market Data Generator

Generate synthetic price series — GBM, GARCH(1,1), regime-switching, or copula-linked pairs. Download CSV/JSON. Scaffold backtests safely.

Runs in your browser. Nothing you enter is uploaded, and no account or API key is needed.

Education, not investment advice. Past performance does not predict future results. How we check our numbers.

Synthetic data cannot replicate real-market microstructure, regime transitions, or news-driven jumps. Use these paths to scaffold pipeline code and sanity-check risk estimators — never as the sole validation of a strategy.

Generated path

20.6%

GBM, 252 days, realized annualized vol

drift +8%, target vol 20%

1. Pick a model

2. Parameters

3. Preview

8997104112120

Ann. return

+1.78%

Ann. vol

+20.60%

Max DD

-15.86%

Sharpe (ret/vol)

0.09

When this is useful

  • Scaffold backtest code without touching proprietary data. Generate a CSV, wire up your pipeline, then swap in real data once the plumbing works.
  • Unit-test risk estimators. GARCH with a known σ lets you verify your vol-targeting layer clips correctly.
  • Sanity-check drawdown distributions. Run 1,000 seeds of GBM at your target drift/vol, see what Max DD looks like — calibrate your stops against that distribution, not a single historical path.
  • Share a reproducible bug report. Seed + parameters → exact same series on any machine.

How to use it

  1. Pick a model: GBM, GARCH(1,1) volatility clustering, a two-state bull/bear regime switch, or a correlated pair.
  2. Set the model's parameters: start price, drift and volatility, GARCH ω, α and β, regime drifts, vols and switch probabilities, or the pair's correlation.
  3. Set the number of days and a seed. The same seed and parameters always reproduce the same path.
  4. Read the realized annualized volatility, return, max drawdown and Sharpe of the path and preview the chart.
  5. Download the path as CSV or JSON, or press Generate new path for a new seed. Use it for testing code, never as a trading signal.

Questions people ask

Why generate synthetic data instead of using real?

To test pipeline code and risk estimators on series whose true parameters you know, to stress a strategy on regimes the history does not contain, and to share examples without real positions. Synthetic paths carry no information about real markets.

How realistic is the synthetic data?

Only as realistic as the chosen model. GBM has constant volatility and normal returns, GARCH(1,1) adds volatility clustering, the regime model adds bull and bear phases, and the pair model adds correlation. The tool does not calibrate to your data or report fit metrics; it reports the realized statistics of each generated path.

What model is under the hood?

Four simple generators driven by a seeded random number generator: geometric Brownian motion, GARCH(1,1) on log returns with normal shocks, a two-state Markov switch between two GBM regimes, and two GBMs with correlated normal shocks. There is no skewed-t, jump or copula model.

Can I generate correlated multi-asset data?

Two assets: the pair model takes a correlation ρ between their shocks. Larger correlated universes are not supported.

Is synthetic data appropriate for production trading?

No. Synthetic data is for testing code and stress-testing strategies, not for live signal generation. Signals computed on synthetic series have no real-world predictive content by construction.

Guides, formulas and worked examples

  • Generators Trading System Blueprinter

    Pick your data source, LLM, broker, storage, risk engine, and logger. Get a Mermaid architecture diagram and a copyable starter file tree — the full stack before you write code.

  • Generators SEC Filing Chunk Optimizer

    Pick a filing archetype, tune chunk size and overlap, and see chunk count, embedding cost, and structural-boundary warnings across three chunking strategies.

  • Generators Quant Interview Question Generator

    Curated bank of probability, stats, derivatives, microstructure, and regression questions across easy/medium/hard difficulty. Reproducible by seed. Nothing generated live.

All articles

Use it from code

The same calculation as a JavaScript module you can import. It runs where you import it, with no request, key or rate limit.

import { compute } from "https://aifinhub.io/engines/synthetic-market-data-generator.js";

Input and output contract and the guide for agents.