feat(timeseries): add time-series integration helpers for financial analysis
- Implement 6 helper functions in src/timeseries_utils.rs: * prepare_for_hmm: Feature engineering for HMM regime detection * rolling_hurst_exponent: Mean-reversion detection (H < 0.5 = mean-reverting) * rolling_half_life: Mean-reversion speed for pairs trading * return_statistics: Risk metrics (mean, std, skew, kurt, sharpe) * create_lagged_features: ML feature matrix creation * rolling_correlation: Rolling correlation for pairs trading - Add PyO3 bindings in src/timeseries_utils/python_bindings.rs: * All functions exposed with _py suffix * Proper signature decorators and error handling * Registered in lib.rs module system - Update Python module exports: * python/optimizr/core.py: Import from _core * python/optimizr/__init__.py: Re-export all functions - Create comprehensive example: * examples/timeseries_integration.py demonstrates all 6 functions * Includes integrated pairs trading workflow * Shows feature engineering for regime detection - Technical details: * Fixed Array1<f64> type conversions for ndarray compatibility * Uses risk_metrics::hurst_exponent and estimate_half_life * Built successfully with maturin develop --release (40.93s) * All functions tested and working correctly Part of Priority 3: Time-series integration helpers (Enhancement Strategy) Addresses v0.3.0 roadmap: Bridge optimization with time-series analysis
This commit is contained in:
@@ -23,6 +23,13 @@ from optimizr.core import (
|
||||
compute_risk_metrics_py,
|
||||
estimate_half_life_py,
|
||||
bootstrap_returns_py,
|
||||
# Time-series utilities
|
||||
prepare_for_hmm_py,
|
||||
rolling_hurst_exponent_py,
|
||||
rolling_half_life_py,
|
||||
return_statistics_py,
|
||||
create_lagged_features_py,
|
||||
rolling_correlation_py,
|
||||
)
|
||||
|
||||
# Try to import maths_toolkit from Rust backend
|
||||
@@ -47,5 +54,12 @@ __all__ = [
|
||||
"compute_risk_metrics_py",
|
||||
"estimate_half_life_py",
|
||||
"bootstrap_returns_py",
|
||||
# Time-series utilities
|
||||
"prepare_for_hmm_py",
|
||||
"rolling_hurst_exponent_py",
|
||||
"rolling_half_life_py",
|
||||
"return_statistics_py",
|
||||
"create_lagged_features_py",
|
||||
"rolling_correlation_py",
|
||||
"maths_toolkit",
|
||||
]
|
||||
|
||||
@@ -21,6 +21,13 @@ try:
|
||||
compute_risk_metrics_py,
|
||||
estimate_half_life_py,
|
||||
bootstrap_returns_py,
|
||||
# Time-series utilities
|
||||
prepare_for_hmm_py,
|
||||
rolling_hurst_exponent_py,
|
||||
rolling_half_life_py,
|
||||
return_statistics_py,
|
||||
create_lagged_features_py,
|
||||
rolling_correlation_py,
|
||||
)
|
||||
RUST_AVAILABLE = True
|
||||
except ImportError:
|
||||
|
||||
Reference in New Issue
Block a user