Hidden Regime v1.0.0 Release
I am pleased to announce the release of v1.0.0
of the hidden-regime
Python module.
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.0] - 2025-09-30
Added
Complete Documentation Overhaul
- Rewrote root README.md focused on v1.0.0 capabilities (removed all aspirational content)
- Created 10 comprehensive module READMEs with accurate API documentation
- Completely rewrote examples/README.md documenting all 12 working examples
- Added installation instructions, quick start guides, and learning paths
Production-Ready Examples (12 total)
- Basic examples: 00_basic_regime_detection, 01_real_market_analysis, 02_regime_comparison_analysis
- Intermediate examples: 03_trading_strategy_demo, 04_multi_stock_comparative_study
- Advanced examples: 05_advanced_analysis_showcase, improved_features
- Case study examples: case_study, case_study_basic, case_study_comprehensive, case_study_multi_asset, financial_case_study
- All examples tested and verified working with documented runtimes (15s-180s)
Proper Dependency Management
- Moved scikit-learn to main dependencies (used for KMeans initialization and metrics)
- Created visualization optional dependency group (seaborn, plotly, Pillow)
- Clear separation between core, visualization, dev, and docs dependencies
Test Infrastructure
- Organized test suite with proper markers (slow, network, performance)
- 177 passing fast tests (100% pass rate)
- Comprehensive coverage across all modules
Changed
Data Validation
- Relaxed NaN validation threshold from 0% to 10% for practical use with pct_change() calculations
- More realistic handling of missing data in time series
Package Metadata
- Updated classifier to “Development Status :: 5 - Production/Stable”
- Enhanced optional dependencies with visualization group
Fixed
Test Suite Fixes (5 total)
- 4 model tests: Removed references to deleted online learning attributes (_current_state_probs, _last_observation, _sufficient_stats)
- 1 analysis test: Corrected attribute name from indicator_calculator to indicator_analyzer
Example Fixes
- Fixed 5 examples requiring model_component parameter for data-driven regime interpretation
- Fixed 1 example with incorrect API usage (old DataLoader pattern)
- All 12 examples now execute successfully
Documentation
- Module Documentation: Complete README for each of 10 modules (config, data, observations, models, analysis, reporting, pipeline, utils, visualization, financial)
- API Documentation: Full docstring coverage with examples
- Examples Guide: Comprehensive examples/README.md with:
- Runtime estimates for each example
- Complexity levels (Beginner/Intermediate/Advanced)
- Learning paths for different user types
- Command reference for running tests
- Configuration Guide: Documentation of all config classes and presets
Technical Details
- Architecture: Pipeline-based (Data → Observation → Model → Analysis → Report)
- HMM Implementation: Gaussian emissions with Baum-Welch training
- Financial Regime Types: Bear, Bull, Sideways, Crisis (data-driven classification)
- Trading Simulation: Regime-based strategies with realistic backtesting
- Temporal Control: Proper data isolation for V&V backtesting
[Unreleased]
Added
- Enhanced PyPI packaging with pyproject.toml support
- Comprehensive CI/CD pipeline with GitHub Actions
- Performance testing and benchmarking infrastructure
- Security scanning with Bandit
- Code quality checks with Black, isort, flake8
Changed
- Improved package metadata with project URLs and enhanced classifiers
- Centralized version management in
_version.py
- Enhanced MANIFEST.in for better file inclusion control
Fixed
- Unit test compatibility issues across Python versions
- Log-likelihood sign assertions in test suite
- DataFrame assignment warnings in preprocessing
- Performance test rate limiting issues
[0.1.0] - 2025-01-XX
Added
Complete Data Pipeline
- Multi-source data loading with yfinance integration
- Comprehensive 6-layer data validation system
- Advanced preprocessing with outlier detection and missing value handling
- Intelligent caching with rate limiting and automatic retry logic
- Quality scoring system (0.0-1.0 scale) for quantitative data assessment
- Multi-asset support with timestamp alignment and batch processing
Hidden Markov Models (HMM)
- 3-state regime detection optimized for Bear, Sideways, Bull markets
- Baum-Welch EM training algorithm with numerical stability enhancements
- Viterbi algorithm for most likely regime sequence inference
- Forward-Backward algorithm for state probability computation
- Real-time regime tracking with online state probability updates
- Model persistence with save/load functionality (JSON/Pickle formats)
Regime Analysis & Interpretation
- Comprehensive regime analysis with duration statistics
- Automatic regime interpretation (Bull/Bear/Sideways with volatility levels)
- Regime transition analysis and timing predictions
- Performance statistics by regime type
Configuration System
- Flexible configuration classes for data loading, validation, and preprocessing
- Factory methods for common use cases (market data, high-frequency data)
- Validation of configuration parameters against data characteristics
Error Handling & Exceptions
- Comprehensive exception hierarchy for different error types
- Graceful error handling with informative error messages
- Data quality warnings and validation feedback
Testing & Quality Assurance
- Comprehensive unit test suite (80%+ coverage)
- Integration tests for end-to-end workflows
- Performance tests and benchmarking
- Mock data generation for consistent testing
- Type hints and static analysis support
Examples & Documentation
- Complete API documentation in models/README.md
- Practical examples for common use cases
- Data pipeline demonstrations
- HMM training and analysis examples
- Portfolio analysis integration examples
Technical Details
- Dependencies: numpy, pandas, scipy, matplotlib, yfinance
- Python Support: 3.8, 3.9, 3.10, 3.11, 3.12
- Operating Systems: Linux, macOS, Windows
- Architecture: Modular design with clear separation of concerns
- Performance: Optimized algorithms with numerical stability enhancements
Package Structure
hidden_regime/
├── config/ # Configuration management
├── data/ # Data loading, validation, preprocessing
├── models/ # HMM implementation and algorithms
├── utils/ # Shared utilities and exceptions
examples/ # Usage examples and demonstrations
tests/ # Comprehensive test suite
Known Limitations
- Currently supports Gaussian emission models only
- Online learning capabilities are basic (planned for future releases)
- Limited to 3-state models by default (configurable up to 6 states)
- Fat-tailed emission models not yet implemented
- Duration modeling for regime persistence is planned for v0.2.0
[0.0.1] - 2025-01-XX
Added
- Initial project structure
- Basic package configuration
- Placeholder PyPI package (published as placeholder)
Release Notes
Version 0.1.0 - “Foundation Release”
This is the first production-ready release of Hidden Regime, providing a complete toolkit for market regime detection using Hidden Markov Models. The package includes:
🚀 Production-Ready Components:
- Robust data pipeline with comprehensive validation
- Numerically stable HMM implementation
- Real-time regime detection capabilities
- Extensive testing and documentation
📊 Proven Performance:
- Successfully tested on major market indices (SPY, QQQ, etc.)
- Handles various market conditions and time periods
- Reliable regime detection with quantified uncertainty
🔧 Developer-Friendly:
- Clean, well-documented API
- Comprehensive examples and tutorials
- Flexible configuration system
- Extensive error handling
🎯 Target Users:
- Quantitative analysts and researchers
- Algorithmic trading developers
- Financial data scientists
- Academic researchers in finance
Upgrade Path
This is the first stable release. Future versions will maintain backward compatibility for the public API while adding new features and improvements.
Support
- Documentation: Available in the
models/README.md
and inline docstrings - Examples: See the
examples/
directory for practical usage patterns - Issues: Report bugs and feature requests on GitHub
- Community: Join discussions in GitHub Discussions
Acknowledgments
Special thanks to the open-source community and the contributors who helped make this release possible.