pub struct DemaState { /* private fields */ }Expand description
Double exponential moving average: 2·EMA − EMA(EMA).
Reduces lag vs a single EMA of the same period (Mulloy). Warm-up is longer (nested EMA).
Implementations§
Source§impl DemaState
impl DemaState
pub fn new(period: usize) -> FinanceResult<Self>
pub fn from_history(period: usize, closes: &[f64]) -> FinanceResult<Self>
pub fn period(&self) -> usize
pub fn reset(&mut self)
pub fn push(&mut self, close: f64) -> FinanceResult<Option<f64>>
pub fn push_bars(&mut self, closes: &[f64]) -> FinanceResult<Vec<Option<f64>>>
pub fn last(&self) -> Option<f64>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DemaState
impl RefUnwindSafe for DemaState
impl Send for DemaState
impl Sync for DemaState
impl Unpin for DemaState
impl UnsafeUnpin for DemaState
impl UnwindSafe for DemaState
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
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