pub struct JumpDiffusion {
pub mu: f64,
pub sigma: f64,
pub lambda: f64,
pub mu_jump: f64,
pub sigma_jump: f64,
/* private fields */
}Expand description
Jump diffusion process adding compound Poisson jumps to GBM.
$$dS_t = mu * S_t * dt + sigma * S_t * dW_t + dJ_t$$ $$dJ_t = (e^Z - 1) dN_t, Z ~ N(mu_jump, sigma_jump^2), N_t ~ Poisson(lambda * t)$$
Fields§
§mu: f64§sigma: f64§lambda: f64§mu_jump: f64§sigma_jump: f64Implementations§
Trait Implementations§
Source§impl Clone for JumpDiffusion
impl Clone for JumpDiffusion
Source§fn clone(&self) -> JumpDiffusion
fn clone(&self) -> JumpDiffusion
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Simulatable for JumpDiffusion
impl Simulatable for JumpDiffusion
Source§fn dim(&self) -> usize
fn dim(&self) -> usize
Dimensionality of the Brownian driver. Used by the runner to
pre-generate the correct number of random normals per step.
GBM is 1, Heston is 2, etc.
Source§impl StochasticProcess for JumpDiffusion
impl StochasticProcess for JumpDiffusion
type State = f64
type Diffusion = f64
type BrownianIncrement = f64
fn drift(&self, x: &f64, _t: f64) -> f64
fn diffusion(&self, x: &f64, _t: f64) -> f64
fn jump_intensity(&self, _x: &f64, _t: f64) -> f64
fn jump_size<R: Rng + ?Sized>(&self, _x: &f64, _t: f64, rng: &mut R) -> f64
fn expected_value(&self, x0: &f64, t: f64) -> f64
fn variance(&self, x0: &f64, t: f64) -> f64
fn step<R: Rng + ?Sized>( &self, x: &f64, t: f64, dt: f64, dw: &f64, rng: &mut R, ) -> f64
fn generate_increment<R: Rng + ?Sized>(&self, rng: &mut R, dt: f64) -> f64
fn simulate<R: Rng + ?Sized>( &self, x0: f64, t0: f64, t_end: f64, dt: f64, rng: &mut R, ) -> Vec<(f64, f64)>
fn simulate_paths( &self, x0: Self::State, t0: f64, t_end: f64, dt: f64, num_paths: usize, ) -> Vec<Vec<(f64, Self::State)>>
Auto Trait Implementations§
impl Freeze for JumpDiffusion
impl RefUnwindSafe for JumpDiffusion
impl Send for JumpDiffusion
impl Sync for JumpDiffusion
impl Unpin for JumpDiffusion
impl UnsafeUnpin for JumpDiffusion
impl UnwindSafe for JumpDiffusion
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more