Processes

All processes in market_model implement the Simulatable trait, which provides a uniform interface for the simulation runner. The mathematical definitions of these processes — their driving equations, parameters, and moments — are stated once in Stochastic Processes and are not restated here.

Available processes

Processdim()State type
GeometricBrownianMotion1f64
OrnsteinUhlenbeck1f64
CoxIngersollRoss1f64
HestonProcess2(price, variance)
JumpDiffusion1f64
BatesProcess2(price, variance)
HawkesProcess0intensity f64
RoughOrnsteinUhlenbeck1RoughOUState

Each process implements dim(), step(), and current(); the Hawkes process has dim() = 0 because its randomness comes entirely from the thinning (Ogata) acceptance-rejection step rather than a Brownian driver.

Adding a new process

  1. Create market_model/src/process/your_model.rs.
  2. Implement Simulatable with your state type, dim(), step(), and current().
  3. Add pub mod your_model and a re-export to process/mod.rs.
  4. Add a test comparing Monte Carlo moments against the analytical expectations in Stochastic Processes.
  5. Add a criterion benchmark against the GBM baseline.