Deep Analysis And Portfolio Simulation
Go to file
2025-05-27 20:31:05 +02:00
.streamlit/.streamlit Initial commit: ETF Portal with Portfolio Builder and Analyzer components 2025-05-24 14:15:07 +00:00
config refactor: improve CLI and package structure - Move CLI code to ETF_Portal package - Add proper package setup with setup.py - Update README with installation and usage instructions - Improve process management and cleanup 2025-05-26 19:46:05 +02:00
ETF_Portal feat: update API and cache management with improved logging 2025-05-27 16:27:13 +02:00
pages refactor: remove duplicate ETF display from sidebar for cleaner UI 2025-05-27 20:31:05 +02:00
portfolios refactor: improve CLI and package structure - Move CLI code to ETF_Portal package - Add proper package setup with setup.py - Update README with installation and usage instructions - Improve process management and cleanup 2025-05-26 19:46:05 +02:00
scripts chore: Update project configuration and add setup scripts 2025-05-27 14:41:58 +02:00
tests feat: update API and cache management with improved logging 2025-05-27 16:27:13 +02:00
.env.template chore: Update Docker configuration for secure API key management 2025-05-27 14:23:27 +02:00
.gitignore chore: Update project configuration and add setup scripts 2025-05-27 14:41:58 +02:00
=0.2.36 feat: update API and cache management with improved logging 2025-05-27 16:27:13 +02:00
Caddyfile chore: Update project configuration and add setup scripts 2025-05-27 14:41:58 +02:00
cli_manager.py refactor: improve CLI and package structure - Move CLI code to ETF_Portal package - Add proper package setup with setup.py - Update README with installation and usage instructions - Improve process management and cleanup 2025-05-26 19:46:05 +02:00
docker-compose.yml chore: Update project configuration and add setup scripts 2025-05-27 14:41:58 +02:00
Dockerfile Initial commit: ETF Portal with Portfolio Builder and Analyzer components 2025-05-24 14:15:07 +00:00
etf_suite_cli.py refactor: improve CLI and package structure - Move CLI code to ETF_Portal package - Add proper package setup with setup.py - Update README with installation and usage instructions - Improve process management and cleanup 2025-05-26 19:46:05 +02:00
ETF_Suite_Launcher.py feat: update API and cache management with improved logging 2025-05-27 16:27:13 +02:00
README.md chore: Update project configuration and add setup scripts 2025-05-27 14:41:58 +02:00
requirements.txt chore: Update project configuration and add setup scripts 2025-05-27 14:41:58 +02:00
setup.py chore: Update project configuration and add setup scripts 2025-05-27 14:41:58 +02:00

ETF Portal

A comprehensive tool for ETF portfolio management and analysis.

Installation

  1. Clone the repository:
git clone <repository-url>
cd ETF_Portal
  1. Create and activate a virtual environment:
python3 -m venv venv
source venv/bin/activate  # On Linux/Mac
# or
.\venv\Scripts\activate  # On Windows
  1. Install the package in development mode:
pip install -e .

Environment Setup

  1. Copy the environment template:

    cp .env.template .env
    
  2. Edit the .env file and add your API keys:

    FMP_API_KEY=your_api_key_here
    CACHE_DURATION_HOURS=24
    
  3. Never commit the .env file to version control.

Usage

The ETF Portal provides a command-line interface for managing the application:

# Start the launcher
etf-portal start

# Start a specific component
etf-portal start --component portfolio_builder

# Start in background mode
etf-portal start --component launcher --background

# Stop all components
etf-portal stop

# Stop a specific component
etf-portal stop --component analyzer

# Check status
etf-portal status

# Restart components
etf-portal restart

# View logs
etf-portal logs

# Update configuration
etf-portal config --key ports.launcher --value 8500

Components

  • Launcher: The main entry point for the ETF Portal (port 8500)
  • Portfolio Builder: Tool for building and managing ETF portfolios (port 8501)
  • Analyzer: Tool for analyzing ETF portfolios (port 8502)

Configuration

The configuration file is located at config/etf_suite_config.json. You can modify it directly or use the config command:

etf-portal config --key ports.launcher --value 8500

Logs

Logs are stored in the logs directory. You can view recent logs using:

etf-portal logs

Features

  • ETF Discovery & Filtering: Find ETFs based on yield, category, AUM, and other criteria
  • Portfolio Builder: Create balanced portfolios with custom allocations
  • DRIP Calculator: Project growth with dividend reinvestment
  • Economic Comparison: Compare DRIP vs. No-DRIP strategies with accurate capital recovery calculation
  • Risk Assessment: AI-powered analysis of NAV and yield erosion risks
  • PDF Reports: Generate downloadable PDF reports of your portfolio analysis
  • ETF Analyzer: Detailed analysis of individual ETFs including holdings, sectors, and dividend history
  • CLI Tool: Command-line interface for managing the ETF Suite applications

Requirements

  • Python 3.8+
  • Streamlit
  • Financial Modeling Prep API key (paid subscription)
  • Pandas, Numpy, Plotly, and other dependencies

Setup

  1. Clone the repository
  2. Install dependencies:
    pip install -r requirements.txt
    
  3. Get an API key from Financial Modeling Prep
  4. Create a .streamlit/secrets.toml file with your API key:
    fmp_api_key = "YOUR_API_KEY_HERE"
    
  5. Install the ETF Suite CLI:
    pip install -e .
    
  6. Run the application using the CLI:
    etf-suite start --component all
    

ETF Suite CLI

The ETF Suite CLI provides a convenient way to manage the different components of the ETF Suite from the command line.

Installation

# Install the package
pip install -e .

# Create required directories
sudo mkdir -p /var/run/etf-portal
sudo mkdir -p /var/log/etf-portal
sudo chown -R $USER:$USER /var/run/etf-portal
sudo chown -R $USER:$USER /var/log/etf-portal

Usage

# Start the ETF Portal application
etf-portal start

# Stop the ETF Portal application
etf-portal stop

# Restart the ETF Portal application
etf-portal restart

# Check the status of the ETF Portal application
etf-portal status

Logs

Logs are stored in /var/log/etf-portal/cli_manager.log

PID File

The PID file is stored in /var/run/etf-portal/etf_portal.pid

Usage

  1. Set your initial capital amount
  2. Use the filters to discover ETFs based on your criteria
  3. Add ETFs to your portfolio and adjust allocations
  4. Run the analysis to see projections and comparisons
  5. Generate a PDF report for your records

Data Source

This application uses the Financial Modeling Prep (FMP) API for real-time ETF data, including:

  • ETF listings and details
  • Price and dividend history
  • Fundamental data

License

MIT License

Author

Pascal