Skip to content

stochastic

The stochastic module wraps the runtime’s stochastic-process intrinsics. Each function returns a flat numeric series sampled at uniform time steps.

use std::core::stochastic

stochastic::brownian_motion(n: int, dt: number, sigma: number) -> Array<number>

Section titled “stochastic::brownian_motion(n: int, dt: number, sigma: number) -> Array<number>”

Standard Brownian motion path of n steps with time step dt and volatility sigma.

let path = stochastic::brownian_motion(1000, 0.01, 0.2)

stochastic::gbm(n: int, dt: number, mu: number, sigma: number, s0: number) -> Array<number>

Section titled “stochastic::gbm(n: int, dt: number, mu: number, sigma: number, s0: number) -> Array<number>”

Geometric Brownian motion: dS = mu*S dt + sigma*S dW. Common for asset-price modeling.

let prices = stochastic::gbm(1000, 1.0 / 252.0, 0.05, 0.2, 100.0)

stochastic::ou_process(n: int, dt: number, theta: number, mu: number, sigma: number, x0: number) -> Array<number>

Section titled “stochastic::ou_process(n: int, dt: number, theta: number, mu: number, sigma: number, x0: number) -> Array<number>”

Mean-reverting Ornstein-Uhlenbeck process: dx = theta * (mu - x) dt + sigma dW.

let series = stochastic::ou_process(500, 0.01, 1.0, 0.0, 0.3, 1.0)

stochastic::random_walk(n: int, step_size: number) -> Array<number>

Section titled “stochastic::random_walk(n: int, step_size: number) -> Array<number>”

Discrete random walk with +step_size or -step_size per step.

let walk = stochastic::random_walk(1000, 1.0)