pub struct KamaEngine { /* private fields */ }Expand description
Kaufman’s Adaptive Moving Average (KAMA) over the closing price.
Over the last period + 1 closes the efficiency ratio is net movement over path length,
ER = |close_t - close_{t-period}| / sum(|close_i - close_{i-1}|), and 0 when nothing moved.
It places the smoothing constant between a fast and a slow exponential constant:
sc = (ER * (2/(fast_period+1) - 2/(slow_period+1)) + 2/(slow_period+1))^2
KAMA = KAMA_{t-1} + sc * (close_t - KAMA_{t-1})The first value is the close of the first bar with a full window; there is no separate seed.
Registry defaults: period = 10, fast_period = 2, slow_period = 30.
First output: with the period + 1-th bar. Indicator::reset clears the window and the
average.
Implementations§
Trait Implementations§
Source§impl Indicator for KamaEngine
impl Indicator for KamaEngine
fn name(&self) -> &str
fn warmup_period(&self) -> usize
fn reset(&mut self)
fn on_bar(&mut self, bar: &Bar) -> Option<IndicatorOutput>
fn alerts(&self) -> Vec<IndicatorAlert>
Source§fn on_checked_bar(
&mut self,
bar: &Bar,
) -> Result<Option<IndicatorOutput>, BarValidationError>
fn on_checked_bar( &mut self, bar: &Bar, ) -> Result<Option<IndicatorOutput>, BarValidationError>
Validates a bar before forwarding it to
Indicator::on_bar.Auto Trait Implementations§
impl Freeze for KamaEngine
impl RefUnwindSafe for KamaEngine
impl Send for KamaEngine
impl Sync for KamaEngine
impl Unpin for KamaEngine
impl UnsafeUnpin for KamaEngine
impl UnwindSafe for KamaEngine
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