Crate RustQuant_stochastics

Crate RustQuant_stochastics 

Source
Expand description

Monte Carlo engines to simulate stochastic processes.

The following is a list of stochastic processes that can be generated.

  • Brownian Motions:
    • Standard Brownian Motion
      • $dX(t) = dW(t)$
    • Arithmetic Brownian Motion
      • $dX(t) = \mu dt + \sigma dW(t)$
    • Geometric Brownian Motion
      • $dX(t) = \mu X(t) dt + \sigma X(t) dW(t)$
    • Fractional Brownian Motion
  • Cox-Ingersoll-Ross (1985)
    • $dX(t) = \left[ \theta - \alpha X(t) \right] dt + \sigma \sqrt{r_t} dW(t)$
  • Ornstein-Uhlenbeck process
    • $dX(t) = \theta \left[ \mu - X(t) \right] dt + \sigma dW(t)$
  • Ho-Lee (1986)
    • $dX(t) = \theta(t) dt + \sigma dW(t)$
  • Hull-White (1990)
    • $dX(t) = \left[ \theta(t) - \alpha X(t) \right]dt + \sigma dW(t)$
  • Extended Vasicek (1990)
    • $dX(t) = \left[ \theta(t) - \alpha(t) X(t) \right] dt + \sigma dW(t)$
  • Black-Derman-Toy (1990)
    • $d\ln[X(t)] = \left[ \theta(t) + \frac{\sigma’(t)}{\sigma(t)}\ln[X(t)] \right]dt + \sigma_t dW(t)$
use RustQuant::stochastics::*;

// Create new GBM with mu and sigma.
let gbm = GeometricBrownianMotion::new(0.05, 0.9);

// Generate path using Euler-Maruyama scheme.
// Parameters: x_0, t_0, t_n, n, sims, parallel.
let config = StochasticProcessConfig::new(10., 0., 0.5, 10, 1, false);
let output = (&gbm).euler_maruyama(&config);

println!("GBM = {:?}", output.paths);

Re-exports§

pub use arithmetic_brownian_motion::*;
pub use black_derman_toy::*;
pub use brownian_motion::*;
pub use constant_elasticity_of_variance::*;
pub use cox_ingersoll_ross::*;
pub use extended_vasicek::*;
pub use fractional_brownian_motion::*;
pub use fractional_cox_ingersoll_ross::*;
pub use fractional_ornstein_uhlenbeck::*;
pub use geometric_brownian_bridge::*;
pub use geometric_brownian_motion::*;
pub use heston::*;
pub use ho_lee::*;
pub use hull_white::*;
pub use merton_jump_diffusion::*;
pub use ornstein_uhlenbeck::*;
pub use sabr::*;
pub use process::*;
pub use model_parameter::*;
pub use nelson_siegel_svensson::*;
pub use curve_model::*;

Modules§

arithmetic_brownian_motion
Arithmetic Brownian Motion.
black_derman_toy
Black-Derman-Toy short rate model.
brownian_motion
Standard Brownian Motion.
constant_elasticity_of_variance
Constant Elasticity of Variance process.
cox_ingersoll_ross
Cox-Ingersoll-Ross process.
curve_model
Curve model trait. Curves models module.
extended_vasicek
Extended Vasicek process.
fractional_brownian_motion
Fractional Brownian Motion.
fractional_cox_ingersoll_ross
Fractional Cox-Ingersoll-Ross process.
fractional_ornstein_uhlenbeck
Fractional Ornstein-Uhlenbeck process.
geometric_brownian_bridge
Geometric brownian bridge process.
geometric_brownian_motion
Geometric Brownian Motion.
heston
Heston model process.
ho_lee
Ho-Lee process.
hull_white
Hull-White model process.
merton_jump_diffusion
Merton jump diffusion process.
model_parameter
Model parameter struct.
nelson_siegel_svensson
Nelson-Siegel-Svensson model process.
ornstein_uhlenbeck
Ornstein-Uhlenbeck process.
process
Defines Trajectories and StochasticProcess. Trajectories is the return type of all the stochastic processes. StochasticProcess is the base trait for all the stochastic processes.
sabr
SABR model process.