"""
MRD Strategy - Momentum Regime Detection
========================================

Momentum-based regime detection strategy using Hidden Markov Models
to identify market states (Trend Up, Range, Trend Down).

Components:
- MRDFeatureEngineer: Computes momentum indicators (RSI, MACD, ROC, ADX, etc.)
- RegimeHMM: Hidden Markov Model for unsupervised regime detection
- MRDModel: Complete model combining HMM + LSTM + XGBoost
- MRDTrainer: Training pipeline with walk-forward validation

The strategy detects three market regimes:
1. Trend Up: Bullish momentum, favor long positions
2. Range: Low momentum, favor mean reversion or avoid
3. Trend Down: Bearish momentum, favor short positions

Example Usage:
    from src.models.strategies.mrd import (
        MRDModel,
        MRDTrainer,
        MRDFeatureEngineer,
        RegimeHMM
    )

    # Full model training
    model = MRDModel()
    metrics = model.fit(df_train, df_val)

    # Make predictions
    prediction = model.predict(df_test)
    print(f"Regime: {prediction.regime_name}")
    print(f"Continuation prob: {prediction.continuation_prob}")

    # Walk-forward training
    trainer = MRDTrainer()
    results = trainer.walk_forward_train(df, symbol='EURUSD', n_folds=5)

    # Individual components
    engineer = MRDFeatureEngineer()
    features = engineer.compute_all_features(df)

    hmm = RegimeHMM()
    hmm.fit(features)
    regimes = hmm.predict_regime(features)

Author: ML-Specialist (NEXUS v4.0)
Created: 2026-01-25
Version: 1.0.0
"""

# Feature Engineering
from .feature_engineering import (
    MRDFeatureEngineer,
    MRDFeatureConfig,
)

# HMM Regime Detection
from .hmm_regime import (
    RegimeHMM,
    RegimeHMMConfig,
    RegimePrediction,
    MarketRegime,
)

# Complete Model
from .model import (
    MRDModel,
    MRDModelConfig,
    MRDPrediction,
    MRDLSTMEncoder,
)

# Trainer
from .trainer import (
    MRDTrainer,
    TrainerConfig,
    TrainingResults,
    FoldResult,
)


__all__ = [
    # Feature Engineering
    'MRDFeatureEngineer',
    'MRDFeatureConfig',

    # HMM
    'RegimeHMM',
    'RegimeHMMConfig',
    'RegimePrediction',
    'MarketRegime',

    # Model
    'MRDModel',
    'MRDModelConfig',
    'MRDPrediction',
    'MRDLSTMEncoder',

    # Trainer
    'MRDTrainer',
    'TrainerConfig',
    'TrainingResults',
    'FoldResult',
]


__version__ = '1.0.0'
