Skip to content

Releases: oldhero5/energex

Energex v0.2.0

23 Jan 11:21
Compare
Choose a tag to compare

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

17 Jan 19:33
Compare
Choose a tag to compare

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