Releases: oldhero5/energex
Energex v0.2.0
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
Energex v0.1.0 - Initial Release
Overview
Initial release of Energex, a Python package for energy market analysis combining the speed of Polars with the persistence of DuckDB. This release focuses on core functionality for data collection, technical analysis, and visualization of energy market data.
Key Features
Data Management
- Automated data collection from Yahoo Finance
- Efficient data processing using Polars DataFrames
- Persistent storage in DuckDB
- Support for major energy futures and ETFs:
- Crude Oil (CL=F)
- Natural Gas (NG=F)
- Heating Oil (HO=F)
- RBOB Gasoline (RB=F)
- Brent Crude (BZ=F)
- Energy ETFs (XLE, USO, UNG)
Technical Analysis
- Moving Averages (20, 50, 200 days)
- Relative Strength Index (RSI)
- Automated signal generation:
- Golden Cross detection
- Death Cross detection
- Overbought/Oversold conditions
Visualization
- Interactive charts using Plotly
- Combined price and indicator views
- Spread analysis visualization
- Volume analysis charts
Installation
# Using uv (recommended)
uv pip install energex
# Using pip
pip install energex
Quick Start
from energex import TechnicalAnalyzer
# Initialize analyzer
analyzer = TechnicalAnalyzer()
# Analyze crude oil futures
df, signals, fig = analyzer.analyze("CL=F")
# Save analysis chart
fig.write_html("crude_oil_analysis.html")
Dependencies
- polars >= 0.20.0
- duckdb >= 0.9.0
- yfinance >= 0.2.35
- plotly >= 5.18.0
Requirements
- Python >= 3.12
- Operating System: Linux, macOS, Windows
Known Limitations
- Historical data limited to available Yahoo Finance data
- Some energy products may have limited data availability
- Spread analysis limited to daily timeframes
Coming Soon
- Intraday data support
- Additional technical indicators
- Custom indicator development
- Enhanced spread analysis tools
- Backtesting capabilities
Bug Reporting
Please report any bugs or issues on our GitHub repository: Issues
License
MIT License - See LICENSE file for details