pub struct EmaState { /* private fields */ }Expand description
Incremental EMA (α = 2/(period+1), seed = SMA of first period closes).
Batch ema uses this state end-to-end.
§Examples
use finance_solution::stocks::ta::{EmaState, ema};
let closes: Vec<f64> = (1..=20).map(|x| x as f64).collect();
let batch = ema(&closes, 5).unwrap();
let mut st = EmaState::new(5).unwrap();
let mut last = None;
for &c in &closes {
last = st.push(c).unwrap();
}
assert!((last.unwrap() - batch[19].unwrap()).abs() < 1e-9);Implementations§
Source§impl EmaState
impl EmaState
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 EmaState
impl RefUnwindSafe for EmaState
impl Send for EmaState
impl Sync for EmaState
impl Unpin for EmaState
impl UnsafeUnpin for EmaState
impl UnwindSafe for EmaState
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