pub struct VolatilityCompression { /* private fields */ }Expand description
Volatility Compression — consecutive count of bars where the bar’s range is below
the rolling average range over the last period bars.
Outputs:
- +N: N consecutive bars where range < rolling avg (compression building).
- 0: current bar has range >= rolling avg (compression broken).
This is useful for detecting squeeze setups: prolonged compression often precedes a volatility expansion breakout.
Returns SignalValue::Unavailable until period bars have been seen.
§Errors
Returns FinError::InvalidPeriod if period == 0.
§Example
use fin_primitives::signals::indicators::VolatilityCompression;
use fin_primitives::signals::Signal;
let vc = VolatilityCompression::new("vc", 14).unwrap();
assert_eq!(vc.period(), 14);Implementations§
Trait Implementations§
Source§impl Signal for VolatilityCompression
impl Signal for VolatilityCompression
Source§fn period(&self) -> usize
fn period(&self) -> usize
Returns the number of bars required before the signal produces a value.
Source§fn is_ready(&self) -> bool
fn is_ready(&self) -> bool
Returns
true if the signal has accumulated enough bars to produce a value.Source§fn reset(&mut self)
fn reset(&mut self)
Resets the signal to its initial state as if no bars had been seen. Read more
Source§fn update_bar(&mut self, bar: &OhlcvBar) -> Result<SignalValue, FinError>
fn update_bar(&mut self, bar: &OhlcvBar) -> Result<SignalValue, FinError>
Auto Trait Implementations§
impl Freeze for VolatilityCompression
impl RefUnwindSafe for VolatilityCompression
impl Send for VolatilityCompression
impl Sync for VolatilityCompression
impl Unpin for VolatilityCompression
impl UnsafeUnpin for VolatilityCompression
impl UnwindSafe for VolatilityCompression
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