pub struct BollingerMeanReversion {
pub period: usize,
pub std_dev: f64,
pub exit_at_middle: bool,
}Expand description
Bollinger Bands Mean Reversion Strategy
Goes long when price touches lower band (oversold).
Exits when price reaches middle or upper band.
Emits short signals when price touches upper band (execution gated by
BacktestConfig::allow_short).
§Signal Strength
All entry signals emit at default strength (1.0). Strength is not scaled
by how far price has penetrated through the band. This differs from
RsiReversal, which grades strength by RSI extremity. If you are relying
on [BacktestConfig::min_signal_strength] to filter signals in a portfolio
context, all Bollinger entries will pass the threshold equally.
Fields§
§period: usizeSMA period for middle band
std_dev: f64Standard deviation multiplier
exit_at_middle: boolExit at middle band (true) or upper/lower band (false)
Implementations§
Trait Implementations§
Source§impl Clone for BollingerMeanReversion
impl Clone for BollingerMeanReversion
Source§fn clone(&self) -> BollingerMeanReversion
fn clone(&self) -> BollingerMeanReversion
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BollingerMeanReversion
impl Debug for BollingerMeanReversion
Source§impl Default for BollingerMeanReversion
impl Default for BollingerMeanReversion
Source§impl Strategy for BollingerMeanReversion
impl Strategy for BollingerMeanReversion
Source§fn required_indicators(&self) -> Vec<(String, Indicator)>
fn required_indicators(&self) -> Vec<(String, Indicator)>
Required indicators this strategy needs. Read more
Source§fn warmup_period(&self) -> usize
fn warmup_period(&self) -> usize
Optional: minimum candles required before strategy can generate signals.
Default is 1 (strategy can run from first candle).
Source§fn on_candle(&self, ctx: &StrategyContext<'_>) -> Signal
fn on_candle(&self, ctx: &StrategyContext<'_>) -> Signal
Called on each candle to generate a signal. Read more
Source§fn htf_requirements(&self) -> Vec<HtfIndicatorSpec>
fn htf_requirements(&self) -> Vec<HtfIndicatorSpec>
Higher-timeframe indicators required by this strategy. Read more
Auto Trait Implementations§
impl Freeze for BollingerMeanReversion
impl RefUnwindSafe for BollingerMeanReversion
impl Send for BollingerMeanReversion
impl Sync for BollingerMeanReversion
impl Unpin for BollingerMeanReversion
impl UnsafeUnpin for BollingerMeanReversion
impl UnwindSafe for BollingerMeanReversion
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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