Overview
This release introduces comprehensive analytics for energy futures trading, including data quality checks, volatility metrics, and advanced visualization tools. The update focuses on robust intraday data handling and futures-specific analysis capabilities.
Major New Features
Data Quality Analytics
- Price Gap Detection: Automatically identify and analyze significant price movements
- Volume Anomaly Detection: Spot unusual trading volumes using statistical analysis
- OHLC Consistency Checks: Validate price data integrity
- Time Series Validation: Monitor data completeness and consistency
Volatility Analytics
- Multiple Calculation Methods:
- Realized Volatility (minute-by-minute)
- Parkinson Volatility (using high-low range)
- Garman-Klass Volatility (using OHLC)
- Volatility Ratios: Compare different volatility measures
- Intraday Range Analysis: Track price movement patterns
Futures Analysis Tools
- Term Structure Analysis: Track and analyze futures curves
- Roll Yield Calculations: Measure and monitor futures roll returns
- Basis Risk Analysis: Quantify spot-futures relationships
- Implied Rates: Calculate implied financing rates from futures spreads
Visualization Capabilities
- Interactive Price Charts: Real-time OHLC visualization
- Volume Profile Analysis: Analyze trading activity distribution
- Term Structure Views: Visual futures curve analysis
- Quality Metric Dashboards: Monitor data integrity
Improvements
- Enhanced data fetching reliability for commodity futures
- Improved timezone handling for global markets
- Better error handling and logging
- Optimized database schema for faster queries
- Standardized column naming across all modules
Installation
pip install energex==0.2.0
Migration Notes
This version introduces new database tables for quality metrics. Users should rebuild their databases after upgrading:
from energex.database import EnergyDatabase
db = EnergyDatabase()
db._init_tables() # This will reinitialize the database schema
Example Usage
# Fetch and analyze data
from energex.data_fetcher import EnergyDataFetcher
from energex.analysis.volatility import VolatilityAnalyzer
fetcher = EnergyDataFetcher()
data = fetcher.fetch_all_commodities()
# Calculate volatility metrics
analyzer = VolatilityAnalyzer(data)
metrics = analyzer.calculate_volatility_metrics()
# Create visualization
from energex.visualization.charts import MarketVisualizer
viz = MarketVisualizer(data)
fig = viz.plot_term_structure("CL=F", "BZ=F")
fig.show()
Known Issues
- Historical data retrieval currently limited to 7 days
- Some visualization features may be memory-intensive with large datasets
Future Plans
- Extended historical data support
- Additional futures analytics
- Performance optimizations for large datasets
- Real-time alerting system
Dependencies
- Python ≥ 3.10
- polars ≥ 0.20.0
- yfinance ≥ 0.2.35
- duckdb ≥ 0.9.0
- plotly ≥ 5.18.0
- numpy ≥ 1.24.0
Contributors
Special thanks to all contributors who helped make this release possible.
License
MIT License - see LICENSE file for details