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