Explore diffusion models for synthetic trade generation

Table of Contents

This page is a capture in the deferred bucket of the product backlog — a pre-sprint idea, not yet pulled into a sprint as a story.

What

TRADES (Berti, Prenkaj, Velardi — arXiv:2502.07071) trains a diffusion model directly on historical order-book/transaction sequences, then generates new synthetic transaction sequences by iteratively denoising a random sequence toward the learned distribution — no hand-written market-mechanics rules, no explicit stochastic-process specification (unlike ORE Studio's current ores.synthetic approach, which generates market data from configured stochastic-process parameters per instrument type, e.g. curve templates, FX spot config). Explore whether a diffusion-based approach could complement or eventually replace parts of ores.synthetic's config-driven generation — likely starting with a single asset class (FX or rates, where ores.synthetic already has generation configs to train against) as a proof of concept, not a wholesale replacement.

Why

ores.synthetic currently generates market data and trades from explicit, hand-configured stochastic-process parameters (per-entity generation configs — see ores.synthetic.fx_spot_generation_config.org, ores.synthetic.market_data_generation_config.org). This requires someone to specify realistic parameters up front and doesn't automatically capture the finer statistical structure (clustering, autocorrelation, microstructure effects) that real historical data has. A diffusion model trained on real (or realistically-shaped) historical sequences could, in principle, produce more realistic synthetic trade/tick sequences with less manual parameter tuning — worth a scoped investigation before committing to it, given it would introduce an ML training/inference dependency this codebase doesn't currently have.

References

See also

Emacs 29.3 (Org mode 9.6.15)