Welcome to StockSentry, your ultimate tool for leveraging machine learning to analyze daily and weekly sentiment of news and online information about your favorite stocks. Stay ahead of the market with detailed reports and real-time updates, ensuring you make informed trading decisions. 🚀
- Advanced Sentiment Analysis 📊: Utilizes FinBERT for cutting-edge financial sentiment analysis.
- Machine Learning Integration 🤖: Leverages pystark for advanced stock analysis and MLflow for managing machine learning experiments and models.
- Comprehensive Technical Indicators 📈: Includes key indicators like SMA, RSI, and Bollinger Bands.
- Real-time Updates ⏱️: Get the latest stock prices and insights delivered to your inbox.
- Secure Configuration 🔒: Encrypts and securely stores your configuration data.
- Customizable Watchlist 👀: Monitor up to five stocks of your choice.
- Python: Version 3.8 or higher
- EmailJS Account: Sign up for EmailJS
- API Keys: Get your API keys from Alpha Vantage and News API
-
Clone the Repository
git clone https://github.com/yourusername/StockSentry.git cd StockSentry
-
Install Dependencies
pip install -r requirements.txt
- Sign Up: Create an account on EmailJS.
- Create a Service: Set up a new email service.
- Create a Template: Use the content from
email_template.html
(provided in this repository) for your email template. - Retrieve IDs: Get your service ID, template ID, user ID, and private key from the EmailJS dashboard.
- Alpha Vantage: Sign up and get your API key from Alpha Vantage.
- News API: Sign up and get your API key from News API.
Run the application for the first time to enter your configuration details. These will be securely encrypted and stored.
python main.py
You will be prompted to enter:
- Alpha Vantage API Key
- News API Key
- EmailJS Service ID, Template ID, User ID, Private Key
- Email address to receive updates
- Your watchlist (comma-separated list of five stocks)
For future runs, you will be asked if you want to use the existing configuration.
Screenshot was taken on 9/4/2024
Example of a daily stock update email.
Initial configuration setup in the terminal.
Dashboard development using Streamlit .
- Sentiment Analysis: Fetches and analyzes news articles about the stocks in your watchlist using FinBERT.
- Technical Indicators: Retrieves historical stock data and calculates essential technical indicators.
- Model Training: Trains a machine learning model to predict stock movements.
- Email Updates: Sends detailed email updates with predictions and real-time stock prices throughout the day.
We welcome contributions! To contribute to StockSentry, please follow these steps:
- Fork the Repository: Fork the repo on GitHub and clone it to your local machine.
- Create a Branch: Create a new branch for your changes.
- Make Your Changes: Make your changes in the new branch.
- Sign the CLA: Before we can accept your contributions, you need to sign our Contributor License Agreement (CLA). Please read and sign the CLA.
- Submit a Pull Request: Submit a pull request with your changes and a note indicating that you have signed the CLA.
Thank you for your contributions!
This project is licensed under the MIT License.