Skip to main content

A comprehensive toolkit for stock market analysis and reporting

Project description

Indian Stock Market Analysis Tool

A comprehensive Python-based tool for analyzing Indian stocks using technical and fundamental analysis. This tool fetches stock data from various sources, performs in-depth analysis, generates visualizations, and creates detailed reports.

Features

  • Data Collection: Fetches historical and real-time stock data from multiple sources
    • Supports BSE stocks (e.g., 500325.BO for RELIANCE)
    • Supports NSE stocks (e.g., RELIANCE.NS or NSE:RELIANCE)
    • Supports indices (e.g., ^NSEI for NIFTY 50)
  • Technical Analysis: Implements various technical indicators (RSI, MACD, Bollinger Bands, Moving Averages, etc.)
  • Fundamental Analysis: Analyzes key financial metrics (P/E, ROE, Debt/Equity, etc.)
  • Visualization: Generates interactive charts and dashboards
  • Reporting: Creates detailed HTML reports with analysis and recommendations
  • Email Notifications: Option to send reports via email

Prerequisites

  • Python 3.8+
  • Required Python packages (see requirements.txt)
  • Alpha Vantage API key (optional, for additional fundamental data)
  • Gmail account (for email functionality)

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd stock-analysis-tool
    
  2. Create and activate a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install the required packages:

    pip install -r requirements.txt
    
  4. Install TA-Lib (required for technical analysis):

    • macOS: brew install ta-lib
    • Linux: sudo apt-get install -y python3-ta-lib
    • Windows: Download the appropriate wheel from here
  5. Create a .env file in the project root and add your API keys:

    ALPHA_VANTAGE_API_KEY=your_api_key_here
    SENDER_EMAIL=your_email@gmail.com
    SENDER_PASSWORD=your_app_specific_password
    

Usage

Basic Usage

Analyze the top 10 BSE stocks:

python src/main.py

Command Line Options

usage: main.py [-h] [--stocks [STOCKS ...]] [--days DAYS] [--email EMAIL]
              [--report-dir REPORT_DIR] [--top TOP] [--all]

Stock Analysis Tool

optional arguments:
  -h, --help            show this help message and exit
  --stocks [STOCKS ...] List of stock symbols to analyze (e.g., RELIANCE.BO TCS.BO)
  --days DAYS           Number of days of historical data to fetch (default: 365)
  --email EMAIL         Email address to send the report to
  --report-dir REPORT_DIR
                        Directory to save the report (default: reports)
  --top TOP             Analyze top N BSE stocks by market cap
  --all                 Analyze all top BSE stocks

Examples

  1. Analyze specific stocks:

    python3 src/main.py --stocks RELIANCE.BO TCS.BO HDFCBANK.BO
    
  2. Analyze top 5 BSE stocks and email the report:

    python3 src/main.py --top 5 --email your-email@example.com
    
  3. Analyze all top BSE stocks with 2 years of data:

    python3 src/main.py --all --days 730
    
  4. Analyze NIFTY50 index:

    python3 src/main.py --stocks ^NSEI --days 365
    python3 src/main.py --stocks ^NSEI --days 365 --email your-email@example.com
    
  5. Analyze top 10 BSE stocks and email the report:

    python3 src/main.py --top 10 --email your-email@example.com
    
  6. Analyze top 10 BSE stocks and email the report:

    cd HOME_PATH/stock_analysis && PYTHONPATH=HOME_PATH/stock_analysis python3 -m src.main --email your-email@example.com
    

Project Structure

stock-analysis/
├── config/                 # Configuration files
│   └── config.py           # Application configuration
├── data/                   # Data storage
│   └── cache/              # Cached stock data
├── logs/                   # Log files
├── reports/                # Generated reports
│   └── charts/             # Chart visualizations
├── src/                    # Source code
│   ├── data_fetcher.py     # Data collection from APIs
│   ├── technical_analysis.py # Technical indicators and analysis
│   ├── visualization.py    # Data visualization
│   └── main.py             # Main application and CLI
├── .env.example            # Example environment variables
├── requirements.txt        # Python dependencies
└── README.md               # This file

Supported Stock Exchanges

  • BSE (Bombay Stock Exchange): Use .BO suffix (e.g., RELIANCE.BO)
  • NSE (National Stock Exchange): Use .NS suffix (e.g., RELIANCE.NS)

Data Sources

  • Primary: Google Finance
  • Fallback: Yahoo Finance
  • Additional: Alpha Vantage (for fundamental data, requires API key)

Email Configuration

To enable email notifications:

  1. Enable "Less secure app access" in your Gmail account settings or generate an App Password
  2. Set the following environment variables in your .env file:
    SENDER_EMAIL=your_email@gmail.com
    SENDER_PASSWORD=your_app_specific_password
    

Limitations

  • Free API tiers may have rate limits
  • Some fundamental data may not be available for all stocks
  • Analysis should be used for informational purposes only

License

This project is licensed under the MIT License - see the LICENSE file for details.

Disclaimer

This tool is for educational and informational purposes only. It does not constitute financial advice. Always do your own research and consult with a licensed financial advisor before making investment decisions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stock_analysis_toolkit-1.0.2.tar.gz (47.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stock_analysis_toolkit-1.0.2-py3-none-any.whl (51.7 kB view details)

Uploaded Python 3

File details

Details for the file stock_analysis_toolkit-1.0.2.tar.gz.

File metadata

  • Download URL: stock_analysis_toolkit-1.0.2.tar.gz
  • Upload date:
  • Size: 47.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for stock_analysis_toolkit-1.0.2.tar.gz
Algorithm Hash digest
SHA256 0233041f16ad1982f48c4403ce5753235f7a3ef03731a3d9cb189da4d2ecf9a0
MD5 964aaca40f83f0214ba022a994950c23
BLAKE2b-256 1cce4138affa1cf6e71699c1a8f9c01af0ee8ba2b6cbb97caaeb46f92863dabe

See more details on using hashes here.

File details

Details for the file stock_analysis_toolkit-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for stock_analysis_toolkit-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7d83f43b33ec927c0456e53dd9527dd970a755d067e9ee7e540bf709d7d8c5e4
MD5 aa1fc99a6f5df48ac2640c3fc34458a2
BLAKE2b-256 26f69946e6d23146edfd9de67fa46d90a0a1b078482ba75cb16c379b93f17524

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page