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, EMA, IncrementalAtr, IncrementalEma, IndicatorCalculator, StrategyIndicators,
26};
27pub use functions::{atr, ema, macd, rsi, sma, true_range};
28pub use indicator::{Indicator, IndicatorOutput, PriceColumn};
29pub use indicator_config::IndicatorConfig;
30// IndexMap backs IndicatorOutput::into_inner(); re-exported so callers don't
31// need a direct `indexmap` dependency in their Cargo.toml.
32pub use indexmap::IndexMap;
33pub use registry::IndicatorRegistry;
34pub use types::{
35    Candle, MarketRegime, RecommendedStrategy, RegimeConfidence, RegimeConfig, TrendDirection,
36};
37
38// ── Re-exports: momentum ─────────────────────────────────────────────────────
39pub use momentum::{Rsi, Stochastic, StochasticRsi};
40
41// ── Re-exports: signal pipeline ──────────────────────────────────────────────
42pub use signal::CVDTracker;
43pub use signal::ConfluenceEngine;
44pub use signal::Indicators;
45pub use signal::LiquidityProfile;
46pub use signal::MarketStructure;
47pub use signal::{MarketRegimeTracker, PercentileTracker, VolatilityPercentile};
48pub use signal::{SignalComponents, SignalStreak, compute_signal};
49// Indicator wrappers for the signal pipeline
50pub use signal::EngineIndicator;
51pub use signal::SignalIndicator;
52pub use signal::{ConfluenceIndicator, ConfluenceParams};
53pub use signal::{CvdIndicator, CvdParams};
54pub use signal::{LiquidityIndicator, LiquidityParams};
55pub use signal::{StructureIndicator, StructureParams};
56pub use signal::{VolumeRegime, VolumeRegimeParams};
57
58// ── Re-exports: regime detection ─────────────────────────────────────────────
59pub use regime::RegimeDetector;
60/// Internal Bollinger Bands used by the regime detector (incremental, not batch).
61/// For the batch `Indicator` impl see [`volatility::BollingerBands`].
62pub use regime::{ADX, BollingerBands, BollingerBandsValues, RSI};
63pub use regime::{
64    ActiveStrategy, AssetSummary, DetectionMethod, EnhancedRouter, EnhancedRouterConfig,
65    RoutedSignal,
66};
67pub use regime::{EnsembleConfig, EnsembleRegimeDetector, EnsembleResult, EnsembleStatus};
68pub use regime::{HMMConfig, HMMRegimeDetector};
69// Indicator wrappers for regime detection
70pub use regime::DetectorIndicator;
71pub use regime::EnsembleIndicator;
72pub use regime::HmmIndicator;
73pub use regime::RouterIndicator;
74pub use regime::{
75    AdxIndicator, AtrPrimIndicator, BbPrimIndicator, EmaPrimIndicator, RsiPrimIndicator,
76};