Skip to main content

quantwave_core/regimes/
mod.rs

1//! Regime Detection and Market State Tools
2//!
3//! This module provides algorithms for identifying market regimes, such as volatility clustering,
4//! hidden Markov models (HMM), and changepoint detection.
5
6pub mod ecld;
7pub mod gaussian_hmm;
8pub mod hmm;
9pub mod hmm_forecast;
10pub mod volatility_clustering;
11
12pub use ecld::{ecld_cdf, ecld_log_pdf, ecld_pdf, ecld_variance, natural_to_work, work_to_natural};
13pub use gaussian_hmm::{
14    EmissionFamily, GaussianHmmDecode, GaussianHmmError, GaussianHmmFilter, GaussianHmmFitConfig,
15    GaussianHmmFitResult, GaussianHmmParams, fit_em,
16};
17pub use hmm_forecast::{
18    HmmDecodeStatsRow, HmmDiagnostics, HmmStateObsStats, calc_stats_from_obs, decode_stats_history,
19    forecast_observation_mean, forecast_observation_pdf, forecast_state, forecast_volatility,
20    pseudo_residuals,
21};
22pub mod analytics;
23pub mod ensemble;
24pub mod gmm;
25pub mod hmm_gas;
26pub mod hsmm;
27pub mod india;
28pub mod ms_garch;
29pub mod multi_asset;
30pub mod pelt;
31pub mod tar;
32
33use serde::{Deserialize, Serialize};
34
35/// Represents common market regime states.
36#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, Default)]
37pub enum MarketRegime {
38    /// A period of low volatility and generally upward price movement.
39    Bull,
40    /// A period of high volatility or downward price movement.
41    Bear,
42    /// A transitional or unstable period.
43    Crisis,
44    /// A steady state with normal characteristics.
45    #[default]
46    Steady,
47    /// Custom state for user-defined clusters.
48    Cluster(u8),
49}