SMS

SYNTHETIC
MARKET ENGINE

A real-time equities and options exchange powered by
autonomous agents, dynamic liquidity, and realistic market microstructure.

scroll
01 / Agents

Six populations.
One emergent market.

Every ticker is traded by an independent population of synthetic agents. Their net flow each tick feeds back into the price step, so the market is order-driven — not just noise.

01

Market Makers

Post two-sided quotes around mid. Lean against inventory, refuse the one-side hard cap, rebalance aggressively as their book grows.

02

Noise

Uninformed buy / sell flips. Provide the baseline liquidity floor and the constant background hum of order flow.

03

Trend

Momentum followers. Buy when recent return is positive, sell when negative — magnitude scales with the size of the move.

04

Mean-Reversion

Fade deviations from a personal rolling mean. Threshold-gated so they only fire on real extensions, not chop.

05

Fundamental

Anchor to a private fair-value estimate that drifts toward mid. Heterogeneous priors produce persistent disagreement.

06

Contrarian

Buy the dip past their drawdown threshold, sell the rip past their rally threshold. Re-anchor windows after firing.

02 / Engine

A continuous-time
price process.

Each tick is one trading second. The mid-price evolves through a stochastic differential equation with three feedback channels — drift, endogenous volatility, and order-flow impact — plus a Poisson jump term.

Price Update
dPt=μ dt+σt dWt+netFlowtLt + ε+dJt
Drift Stochastic-vol diffusion Flow impact Jump
σt dWt

Endogenous
Volatility

Volatility mean-reverts to a baseline σ0, but absorbs shocks proportional to flow magnitude, market-maker stress, and illiquidity. The leverage term λ amplifies sell-side impact, reproducing the empirical down-move asymmetry.

Total update
σt=σt-1+Δσdrift+σshock
Mean-reversion
Δσdrift=κσ0σt-1) dt
Shock — flow + stress + illiquidity
σshock=a |netFlowt|(1+λ·𝟙{netFlow<0})+b·MMStresst+c / (Lt+ε)
netFlowt / Lt

Liquidity &
Flow Impact

Aggregate agent order flow moves price inversely to instantaneous depth Lt. Liquidity heals toward L0 at rate κL, but is suppressed exponentially by flow magnitude, volatility, and stress — so the book thins precisely when it is needed most.

Liquidity dynamics
Lt=(Lt-1+κL(L0Lt-1) dt)·e−α|netFlowt| − βσt − γ·MMStresst
Flow → price impact
ΔPflow=netFlowtLt + ε
dJt

Jump
Process

Discontinuous price shocks arrive at a Poisson-clocked rate λJ with normally-distributed sizes. Captures the fat-tail behaviour — earnings prints, macro surprises, headline risk — that pure Brownian motion misses.

Arrival times
Nt~Poisson(λJ dt)
Jump size
Jk~𝒩(μJ, σJ2)
Compound jump increment
dJt=Σk=1NtJk
Symbols
Ptasset mid-price
σt, σ0instantaneous & baseline volatility
Lt, L0instantaneous & equilibrium liquidity (depth)
netFlowtaggregate signed agent order flow
MMStresstmarket-maker inventory / capital stress
dWtstandard Wiener increment
dJtPoisson jump increment
κσ, κLmean-reversion speeds (vol, liquidity)
λleverage / down-move asymmetry coefficient
𝟙{netFlow<0}indicator function — returns 1 if selling, 0 if buying
αliquidity decay — sensitivity to flow
βliquidity decay — sensitivity to volatility
γliquidity decay — sensitivity to MM stress
avolatility shock — sensitivity to flow
bvolatility shock — sensitivity to MM stress
cvolatility shock — sensitivity to illiquidity
μfundamental drift
εnumerical-stability constant
03 / Universe

~60 instruments.
One synchronised clock.

The asset universe consists of approximately 60 equities and ETFs, all traded simultaneously in a fully synchronised environment. Prices, volumes, and cross-asset correlations evolve in real time on a single shared tick.

The underlying assets are calibrated from empirical market data — drift, volatility, skewness, kurtosis, jump intensity, rolling volatility distributions per symbol, and sector-based correlation structures — ensuring realistic statistical behaviour across instruments.

~60tickers
1sper tick
6agent classes
5regime states
Launch Terminal