A comprehensive Python module for financial data analysis, leveraging various financial APIs to gather, process, and visualize market data. This project aims to provide tools for both technical and fundamental analysis, with a focus on API integration and dynamic visualization.
- Unified interface for multiple financial data providers:
- Yahoo Finance
- Alpha Vantage
- Financial Modeling Prep
- Rate limiting and error handling
- Response caching system
- Automatic retry mechanisms
- Historical price analysis
- Technical indicators calculation
- Moving averages (SMA, EMA, VWAP)
- Momentum indicators (RSI, MACD)
- Volatility measures
- Portfolio performance metrics
- Returns calculation
- Risk assessment
- Sharpe ratio and other performance metrics
- Data validation and cleaning utilities
Interactive visualization tools using Plotly:
- Candlestick charts
- Technical indicator overlays
- Volume analysis
- Correlation matrices
- Portfolio performance dashboards
financial_analysis/
├── __init__.py
├── api/ # API integration modules
│ ├── __init__.py
│ ├── base.py
│ ├── yahoo_finance.py
│ └── alpha_vantage.py
├── analysis/ # Data analysis modules
│ ├── __init__.py
│ ├── technical.py
│ └── portfolio.py
├── visualization/ # Visualization components
│ ├── __init__.py
│ ├── charts.py
│ └── dashboard.py
├── utils/ # Utility functions
│ ├── __init__.py
│ ├── cache.py
│ └── helpers.py
└── tests/ # Test suite
├── __init__.py
├── test_api.py
└── test_analysis.py
- Python 3.9 or higher
- pip (Python package installer)
-
Clone the repository:
git clone https://github.com/nrob536/financial-analysis.git cd financial-analysis -
Create and activate virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
from financial_analysis.api import YahooFinance
from financial_analysis.analysis import TechnicalAnalysis
from financial_analysis.visualization import Charts
# Initialize API client
api = YahooFinance()
# Fetch historical data
data = api.get_historical_data("AAPL", start="2024-01-01")
# Perform analysis
analysis = TechnicalAnalysis(data)
sma = analysis.calculate_sma(window=20)
rsi = analysis.calculate_rsi()
# Create visualization
chart = Charts()
chart.plot_with_indicators(data, [sma, rsi])- Fork the repository
- Create a new branch:
git checkout -b feature-name
- Install development dependencies:
pip install -r requirements-dev.txt
pytest tests/This project follows PEP 8 style guidelines. Use flake8 for linting:
flake8 financial_analysis- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Yahoo Finance API
- Alpha Vantage API
- Financial Modeling Prep API
- Plotly visualization library
-
Phase 1: Core API Integration
- Basic API wrapper implementation
- Data fetching and caching
- Error handling
-
Phase 2: Data Processing
- Technical indicators
- Portfolio analytics
- Risk metrics
-
Phase 3: Visualization
- Interactive charts
- Dashboard components
- Export capabilities
-
Phase 4: Documentation & Testing
- API documentation
- Usage examples
- Test coverage