Skip to main content

indicators/
lib.rs

1//! # indicators — Technical Indicators + Market Regime Detection
2
3// ── Core types & traits ───────────────────────────────────────────────────────
4pub mod error;
5pub mod functions;
6pub mod indicator;
7pub mod indicator_config;
8pub mod registry;
9pub mod types;
10
11// ── Indicator categories ──────────────────────────────────────────────────────
12pub mod momentum;
13pub mod trend;
14pub mod volatility;
15pub mod volume;
16
17// ── Signal pipeline ───────────────────────────────────────────────────────────
18pub mod signal;
19
20// ── Regime detection ─────────────────────────────────────────────────────────
21pub mod regime;
22
23// ── Re-exports: core ─────────────────────────────────────────────────────────
24pub use functions::{
25    ATR, BollingerBandsValue, EMA, IncrementalAtr, IncrementalBollinger, IncrementalEma,
26    IncrementalMacd, IncrementalRsi, IndicatorCalculator, StrategyIndicators,
27};
28pub use functions::{atr, ema, macd, rsi, sma, true_range};
29pub use indicator::{Indicator, IndicatorOutput, PriceColumn};
30pub use indicator_config::{IndicatorConfig, SignalEngineConfig};
31// IndexMap backs IndicatorOutput::into_inner(); re-exported so callers don't
32// need a direct `indexmap` dependency in their Cargo.toml.
33pub use indexmap::IndexMap;
34pub use registry::IndicatorRegistry;
35pub use types::{
36    Candle, MarketRegime, RecommendedStrategy, RegimeConfidence, RegimeConfig, TrendDirection,
37};
38
39// ── Re-exports: momentum ─────────────────────────────────────────────────────
40pub use momentum::{Rsi, Stochastic, StochasticRsi};
41
42// ── Re-exports: signal pipeline ──────────────────────────────────────────────
43pub use signal::CVDTracker;
44pub use signal::ConfluenceEngine;
45pub use signal::Indicators;
46pub use signal::LiquidityProfile;
47pub use signal::MarketStructure;
48pub use signal::{MarketRegimeTracker, PercentileTracker, VolatilityPercentile};
49pub use signal::{SignalComponents, SignalStreak, compute_signal};
50// Indicator wrappers for the signal pipeline
51pub use signal::EngineIndicator;
52pub use signal::SignalIndicator;
53pub use signal::{ConfluenceIndicator, ConfluenceParams};
54pub use signal::{CvdIndicator, CvdParams};
55pub use signal::{LiquidityIndicator, LiquidityParams};
56pub use signal::{StructureIndicator, StructureParams};
57pub use signal::{VolumeRegime, VolumeRegimeParams};
58
59// ── Re-exports: regime detection ─────────────────────────────────────────────
60pub use regime::RegimeDetector;
61/// Internal Bollinger Bands used by the regime detector (incremental, not batch).
62/// For the batch `Indicator` impl see [`volatility::BollingerBands`].
63pub use regime::{ADX, BollingerBands, BollingerBandsValues, RSI};
64pub use regime::{
65    ActiveStrategy, AssetSummary, DetectionMethod, EnhancedRouter, EnhancedRouterConfig,
66    RoutedSignal,
67};
68pub use regime::{EnsembleConfig, EnsembleRegimeDetector, EnsembleResult, EnsembleStatus};
69pub use regime::{HMMConfig, HMMRegimeDetector};
70// Indicator wrappers for regime detection
71pub use regime::DetectorIndicator;
72pub use regime::EnsembleIndicator;
73pub use regime::HmmIndicator;
74pub use regime::RouterIndicator;
75pub use regime::{
76    AdxIndicator, AtrPrimIndicator, BbPrimIndicator, EmaPrimIndicator, RsiPrimIndicator,
77};