The Stock Predictor App is an advanced tool for forecasting stock prices and analyzing market data. Combining technical analysis, machine learning models, and sentiment analysis from news, the app provides actionable insights to help users make informed trading decisions.
- Stock Prediction: Predict future stock prices using machine learning models.
- News Sentiment Analysis: Evaluate market sentiment based on financial news.
- Interactive GUI: User-friendly interface with real-time stock data, prediction results, and visualizations.
- Comprehensive Stock Data: View historical data, company information, and stock trends.
To run the Stock Predictor App, ensure you have the following installed:
- Python 3.8 or later
- Required Python packages (see
requirements.txt):numpypandasyfinancematplotlibtkintertransformerstorchtascikit-learnjoblib
- Clone the repository:
git clone https://github.com/username/stock-predictor.git cd stock-predictor - Install dependencies:
pip install -r requirements.txt
- Run the application:
python gui.py
- Launch the app by running
gui.py. - Enter a stock symbol or company name in the Prediction tab.
- Click "Predict" to generate a forecast and analyze sentiment.
- Explore tabs for historical data, company information, and news sentiment.
.
├── app.py # Core logic for stock prediction
├── gui.py # Graphical user interface implementation
├── newsML.py # News sentiment analysis module
├── requirements.txt # Python dependencies
├── LICENSE # License details
└── README.md # Project documentation
- Data Preparation: Fetches and processes stock data from Yahoo Finance.
- Neural Network: Custom implementation with hyperparameter tuning using grid search.
- Utilizes FinBERT to classify news articles into positive, negative, or neutral sentiments.
- Developed using
tkinter. - Features multiple tabs for predictions, stock info, historical data, and news sentiment.
-
Prediction:
- Input: Stock ticker (e.g.,
AAPLfor Apple). - Output: Predicted stock price, trend, and actionable advice (e.g., "Strong Buy").
- Input: Stock ticker (e.g.,
-
Sentiment Analysis:
- Input: Recent news headlines.
- Output: Sentiment classification with probabilities.
-
Visualization:
- Displays historical stock trends and moving averages.
Contributions are welcome! Please fork the repository, create a new branch, and submit a pull request. For major changes, open an issue to discuss what you'd like to change.