How it works
How Pulse simulates the market
Pulse turns a real trading day into as many realistic alternative days as you need — order by order, trade by trade. Use them to test an algorithm before it meets a live market, stress a strategy against a crash that never happened, or train models on far more market data than history can give you.
Real market data in
Pulse starts from the recorded order books of real exchanges — every order placed, amended, cancelled and traded on HKEX and LSE symbols.
Two engines generate
An agent-based simulator and a family of foundation models each learn how that market behaves, then generate new trading days from it.
Synthetic markets out
You get back full order books and every trade — as many alternative days as you ask for — checked against the real day before you rely on them.
Two engines
Simulate the traders, or learn the market
Pulse generates markets two different ways. They answer different questions, and because both return the same order-book format, you can run the same analysis on either.
Agent-based simulation
ABMA market built from the bottom up. A population of trader agents — liquidity providers, fundamental traders, momentum traders and noise traders — place, cancel and trade orders against each other in a simulated limit order book.
Each agent's appetite is written down explicitly and fitted to the chosen symbol and day during calibration, then run on a highly optimised C++ matching engine. Because the market is made of agents, it reacts: push a large order into it and the book pushes back.
- You want to ask “what if?” — a crash, a panic, a trend
- You're testing an execution algorithm against a market that responds to it
- You need to explain why the market did what it did
Foundation models
FMA market learned from data. Trained on real order-book activity, a foundation model reads a real market's recent history and generates what happens next — continuing from the actual state of the book rather than simulating the traders behind it.
Pulse runs several model families — diffusion and autoregressive — on GPUs, and can stream generated frames live instead of writing a file. Output comes back in exactly the same format as an agent-based run, so the same tools read both.
- You want the most lifelike continuation of a real market
- You want to pick up from the book as it stands right now
- You want generated order flow streamed live
What Pulse can do
Ask the market questions it can't answer on its own
History only happened once. Pulse lets you rerun the day under different conditions and see the full range of what could have happened. The figures below are real Pulse output — the same runs behind the MCP demo.
Scenarios
Inject an event into the day and watch the book absorb it. Here, the same 700.HK session run normally and with a flash crash: a rapid sell that tears through the bids at 10:30, and a market that never quite recovers the gap.
Execution algorithms
Put your order into the simulated market and measure what it costs. Every algo run is benchmarked against a baseline of the same scenario without it, splitting the cost into slippage, market impact and risk.
Monte Carlo paths
One backtest is one story. Run the same day dozens of times on independent seeds and you get the whole distribution — every path a strategy could have faced, not just the one that happened.
Is it realistic?
Every run can be checked against the real day
Synthetic data is only useful if it behaves like the real thing. Pulse-Check scores a simulation against the same historical window it was calibrated to — how the order book is shaped, how prices move, how the market responds to trading — so you know how far to trust a run before you use it.
q_f = κ·(F − P_t)Fundamental demand: the gap between fundamental value and priceq_m = β·ΔP_tMomentum demand: the recent price trendq_n ~ N(0, σ²)Noise demand: random order flowκ fundamental responsiveness · β momentum responsiveness · F fundamental value · σ noise scale. Each is fitted per symbol during calibration.
Ways in
Use it however you work
The same simulations, from a chat, a browser, your code or your trading stack.
Ask Claude
Connect Pulse to Claude or any MCP client and describe the market you want in plain English. Pulse picks the right tools, runs the jobs and reads back the results.
See a Pulse MCP session →Console
Configure runs, explore results, compare scenarios and inspect the order book second by second in the browser.
QuickstartPython SDK & API
Everything in the Console is an API call. Pull results straight into Polars and into your own research.
API referenceFIX
Point your algo at Pulse's simulated exchange over standard FIX 4.4 — at up to 10× speed — before it meets a live market.
Pulse over FIXPlans
Start with results, grow into the full pipeline
Free tier
Skip straight to results
No queue and no configuration: browse a library of pre-run simulations across HKEX and LSE symbols, dates and scenarios.
- Six scenarios, up to 10 Monte Carlo runs each
- The same order book history a Pro job returns
- Download as a Polars DataFrame or a bulk ZIP
Pro tier
Your market, your question
Pick the symbol, the trading day, the scenario and the algorithm, and run either engine against a day of your choosing.
- Agent-based simulations and foundation-model runs
- TWAP, VWAP and your own custom schedules
- Execution results benchmarked against a baseline
- Pulse-Check validation against the real day
See it for yourself
Every simulation returns the Level 3 order book — every message, in sequence, at individual-order granularity. Browse the free library, or watch Pulse answer a real question in Claude.