Skip to main content

IndicatorRef

Trait IndicatorRef 

Source
pub trait IndicatorRef:
    Clone
    + Send
    + Sync
    + 'static {
    // Required methods
    fn key(&self) -> String;
    fn required_indicators(&self) -> Vec<(String, Indicator)>;
    fn value(&self, ctx: &StrategyContext<'_>) -> Option<f64>;
    fn prev_value(&self, ctx: &StrategyContext<'_>) -> Option<f64>;
}
Expand description

A reference to a value that can be compared in conditions.

This is the building block for creating conditions. Each indicator reference knows:

  • Its unique key for storing computed values
  • What indicators it requires
  • How to retrieve its value from the strategy context

§Implementing Custom References

use finance_query::backtesting::refs::IndicatorRef;

#[derive(Clone)]
struct MyCustomRef {
    period: usize,
}

impl IndicatorRef for MyCustomRef {
    fn key(&self) -> String {
        format!("my_custom_{}", self.period)
    }

    fn required_indicators(&self) -> Vec<(String, Indicator)> {
        vec![(self.key(), Indicator::Sma(self.period))]
    }

    fn value(&self, ctx: &StrategyContext) -> Option<f64> {
        ctx.indicator(&self.key())
    }

    fn prev_value(&self, ctx: &StrategyContext) -> Option<f64> {
        ctx.indicator_prev(&self.key())
    }
}

Required Methods§

Source

fn key(&self) -> String

Unique key for storing computed values in the context.

This key is used to look up pre-computed indicator values in the StrategyContext::indicators map.

Source

fn required_indicators(&self) -> Vec<(String, Indicator)>

Required indicators to compute this reference.

Returns a list of (key, Indicator) pairs that must be pre-computed by the backtest engine before the strategy runs.

Source

fn value(&self, ctx: &StrategyContext<'_>) -> Option<f64>

Get the value at current candle index from context.

Source

fn prev_value(&self, ctx: &StrategyContext<'_>) -> Option<f64>

Get the value at the previous candle index.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl IndicatorRef for AccumulationDistributionRef

Source§

impl IndicatorRef for AdxRef

Source§

impl IndicatorRef for AlmaRef

Source§

impl IndicatorRef for AroonDownRef

Source§

impl IndicatorRef for AroonUpRef

Source§

impl IndicatorRef for AtrRef

Source§

impl IndicatorRef for AwesomeOscillatorRef

Source§

impl IndicatorRef for BalanceOfPowerRef

Source§

impl IndicatorRef for BearPowerRef

Source§

impl IndicatorRef for BollingerLowerRef

Source§

impl IndicatorRef for BollingerMiddleRef

Source§

impl IndicatorRef for BollingerUpperRef

Source§

impl IndicatorRef for BullPowerRef

Source§

impl IndicatorRef for CandleBody

Source§

impl IndicatorRef for CandleRange

Source§

impl IndicatorRef for CciRef

Source§

impl IndicatorRef for ChaikinOscillatorRef

Source§

impl IndicatorRef for ChoppinessIndexRef

Source§

impl IndicatorRef for ClosePrice

Source§

impl IndicatorRef for CmfRef

Source§

impl IndicatorRef for CmoRef

Source§

impl IndicatorRef for CoppockCurveRef

Source§

impl IndicatorRef for DemaRef

Source§

impl IndicatorRef for DonchianLowerRef

Source§

impl IndicatorRef for DonchianMiddleRef

Source§

impl IndicatorRef for DonchianUpperRef

Source§

impl IndicatorRef for ElderBearPowerRef

Source§

impl IndicatorRef for ElderBullPowerRef

Source§

impl IndicatorRef for EmaRef

Source§

impl IndicatorRef for GapPct

Source§

impl IndicatorRef for HighPrice

Source§

impl IndicatorRef for HmaRef

Source§

impl IndicatorRef for IchimokuBaseRef

Source§

impl IndicatorRef for IchimokuConversionRef

Source§

impl IndicatorRef for IchimokuLaggingRef

Source§

impl IndicatorRef for IchimokuLeadingARef

Source§

impl IndicatorRef for IchimokuLeadingBRef

Source§

impl IndicatorRef for IsBearish

Source§

impl IndicatorRef for IsBullish

Source§

impl IndicatorRef for KeltnerLowerRef

Source§

impl IndicatorRef for KeltnerMiddleRef

Source§

impl IndicatorRef for KeltnerUpperRef

Source§

impl IndicatorRef for LowPrice

Source§

impl IndicatorRef for MacdHistogramRef

Source§

impl IndicatorRef for MacdLineRef

Source§

impl IndicatorRef for MacdSignalRef

Source§

impl IndicatorRef for McginleyDynamicRef

Source§

impl IndicatorRef for MedianPrice

Source§

impl IndicatorRef for MfiRef

Source§

impl IndicatorRef for MomentumRef

Source§

impl IndicatorRef for ObvRef

Source§

impl IndicatorRef for OpenPrice

Source§

impl IndicatorRef for ParabolicSarRef

Source§

impl IndicatorRef for PriceChangePct

Source§

impl IndicatorRef for RelativeVolume

Source§

impl IndicatorRef for RocRef

Source§

impl IndicatorRef for RsiRef

Source§

impl IndicatorRef for SmaRef

Source§

impl IndicatorRef for StochasticDRef

Source§

impl IndicatorRef for StochasticKRef

Source§

impl IndicatorRef for StochasticRsiRef

Source§

impl IndicatorRef for SupertrendUptrendRef

Source§

impl IndicatorRef for SupertrendValueRef

Source§

impl IndicatorRef for TemaRef

Source§

impl IndicatorRef for TrueRangeRef

Source§

impl IndicatorRef for TypicalPrice

Source§

impl IndicatorRef for VolumeRef

Source§

impl IndicatorRef for VwapRef

Source§

impl IndicatorRef for VwmaRef

Source§

impl IndicatorRef for WilliamsRRef

Source§

impl IndicatorRef for WmaRef