Skip to content

Wickra SynthOne seed. A whole market.

Deterministic synthetic market microstructure — OHLCV, order book, trades and funding from a single seed. A GenSpec is data, not code — byte-identical across ten languages.

Wickra Synth

The spec is JSON, not code

A generation is a GenSpec: a seed, a bar count, a start_price, a list of regimes and a microstructure block. The regimes shape the price path; the microstructure block shapes the book, trades and funding.

json
{
  "seed": 42,
  "bars": 500,
  "start_price": 100.0,
  "regimes": [
    { "kind": "trend", "len": 300, "drift": 0.002, "vol": 0.01 },
    { "kind": "chop",  "len": 200, "drift": 0.0,   "vol": 0.02 }
  ],
  "microstructure": { "book_depth": 10, "spread_bps": 3.0, "trade_rate": 12.0 },
  "funding": { "interval": 480, "base_rate": 0.0001 }
}

Install

The same synthetic market from every language — native Rust, Python, Node.js and WASM, plus a C ABI for C, C++, C#, Go, Java and R.

pip install wickra-synth

Draw it from any language

Construct a Synth from the JSON spec, then drive it with command(json) -> json. Every binding returns the same bytes for the same seed.

import json
from wickra_synth import Synth

spec = json.dumps({
    "seed": 42,
    "bars": 20,
    "start_price": 100.0,
    "regimes": [{"kind": "trend", "len": 20, "drift": 0.002, "vol": 0.01}],
    "microstructure": {"book_depth": 5, "spread_bps": 4.0, "trade_rate": 8.0},
})

synth = Synth(spec)
out = json.loads(synth.command(json.dumps({"cmd": "generate"})))
print(len(out["candles"]), "candles from seed 42")

Built on the Wickra core

Wickra Synth is part of the Wickra ecosystem. Its output mirrors the JSON shapes of wickra-core, so a synthetic stream drops straight into a backtest, a feature build or a live chart — the same numbers, from a reproducible seed.

Wickra Synth is a software library, not a trading system, and comes with no warranty — use at your own risk.