pub struct AdvanceBlock { /* private fields */ }Expand description
Advance Block — a 3-bar bearish warning: three green candles still pushing to higher closes, but visibly running out of steam — each real body shrinks while the upper shadows lengthen, hinting the advance is about to stall.
all three green & higher closes
each opens inside the prior body
shrinking bodies (body3 < body2 < body1)
upper shadow of bar3 >= upper shadow of bar2 and bar3 has an upper shadowOutput is −1.0 when the pattern completes and 0.0 otherwise. Advance Block
is a single-direction (bearish-only) warning, so it never emits +1.0. The
first two bars always return 0.0 because the three-bar window is not yet
filled. Pattern-shape check only — no trend filter is applied; combine with a
trend indicator for actionable signals.
§Signed ±1 encoding
This detector emits the uniform candlestick sign convention shared across the
pattern family — −1.0 bearish, 0.0 no pattern — so it drops straight into
a machine-learning feature matrix as a single dimension.
§Example
use wickra_core::{AdvanceBlock, Candle, Indicator};
let mut indicator = AdvanceBlock::new();
indicator.update(Candle::new(10.0, 13.1, 9.9, 13.0, 1.0, 0).unwrap());
indicator.update(Candle::new(12.0, 14.3, 11.9, 14.0, 1.0, 1).unwrap());
let out = indicator
.update(Candle::new(13.5, 15.0, 13.4, 14.5, 1.0, 2).unwrap());
assert_eq!(out, Some(-1.0));Implementations§
Source§impl AdvanceBlock
impl AdvanceBlock
Trait Implementations§
Source§impl Clone for AdvanceBlock
impl Clone for AdvanceBlock
Source§fn clone(&self) -> AdvanceBlock
fn clone(&self) -> AdvanceBlock
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AdvanceBlock
impl Debug for AdvanceBlock
Source§impl Default for AdvanceBlock
impl Default for AdvanceBlock
Source§fn default() -> AdvanceBlock
fn default() -> AdvanceBlock
Source§impl Indicator for AdvanceBlock
impl Indicator for AdvanceBlock
Source§type Input = Candle
type Input = Candle
f64 for a price, or Candle / Tick).Source§fn update(&mut self, candle: Candle) -> Option<f64>
fn update(&mut self, candle: Candle) -> Option<f64>
None if the indicator is still warming up.Source§fn reset(&mut self)
fn reset(&mut self)
Source§fn warmup_period(&self) -> usize
fn warmup_period(&self) -> usize
None output can be produced.Auto Trait Implementations§
impl Freeze for AdvanceBlock
impl RefUnwindSafe for AdvanceBlock
impl Send for AdvanceBlock
impl Sync for AdvanceBlock
impl Unpin for AdvanceBlock
impl UnsafeUnpin for AdvanceBlock
impl UnwindSafe for AdvanceBlock
Blanket Implementations§
Source§impl<T> BatchExt for Twhere
T: Indicator,
impl<T> BatchExt for Twhere
T: Indicator,
Source§fn batch(&mut self, inputs: &[Self::Input]) -> Vec<Option<Self::Output>>
fn batch(&mut self, inputs: &[Self::Input]) -> Vec<Option<Self::Output>>
None during warmup) per input.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
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>
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>
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