Struct ta::indicators::ExponentialMovingAverage
[−]
[src]
pub struct ExponentialMovingAverage { /* fields omitted */ }
An exponential moving average (EMA), also known as an exponentially weighted moving average (EWMA), is a type of infinite impulse response filter that applies weighting factors which decrease exponentially. The weighting for each older datum decreases exponentially, never reaching zero.
Formula
Where:
- EMAt - is the value of the EMA at any time period t.
- EMAt-1 - is the value of the EMA at the previous period t-1.
- pt - is the input value at a time period t.
- α - is the coefficient that represents the degree of weighting decrease, a constant smoothing factor between 0 and 1.
α is calculated with the following formula:
Where:
- n - number of periods
Parameters
- n - number of periods (integer greater than 0)
Example
use ta::indicators::ExponentialMovingAverage; use ta::Next; let mut ema = ExponentialMovingAverage::new(3).unwrap(); assert_eq!(ema.next(2.0), 2.0); assert_eq!(ema.next(5.0), 3.5); assert_eq!(ema.next(1.0), 2.25); assert_eq!(ema.next(6.25), 4.25);
Links
Methods
impl ExponentialMovingAverage
[src]
Trait Implementations
impl Debug for ExponentialMovingAverage
[src]
impl Clone for ExponentialMovingAverage
[src]
fn clone(&self) -> ExponentialMovingAverage
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more