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
| Process | dim() | State type |
|---|---|---|
GeometricBrownianMotion | 1 | f64 |
OrnsteinUhlenbeck | 1 | f64 |
CoxIngersollRoss | 1 | f64 |
HestonProcess | 2 | (price, variance) |
JumpDiffusion | 1 | f64 |
BatesProcess | 2 | (price, variance) |
HawkesProcess | 0 | intensity f64 |
RoughOrnsteinUhlenbeck | 1 | RoughOUState |
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
- Create
market_model/src/process/your_model.rs. - Implement
Simulatablewith your state type,dim(),step(), andcurrent(). - Add
pub mod your_modeland a re-export toprocess/mod.rs. - Add a test comparing Monte Carlo moments against the analytical expectations in Stochastic Processes.
- Add a criterion benchmark against the GBM baseline.