Stock trading and financial instrument markets offer significant opportunities for wealth creation. The ability to predict stock price movements has long intrigued researchers and investors alike. While some theories, like the Efficient Market Hypothesis, suggest that consistently beating the market is nearly impossible, others contest this viewpoint.
Stock price prediction involves forecasting the future value of a given stock. In this project, we focus on the S&P 500 Index, which consists of 500 stocks from various sectors of the US economy and serves as a key indicator of US equities. To tackle this task, we utilize the Yahoo stock price history dataset, which contains 1825 rows and 7 columns including Date, High, Low, Open, Close, Volume, and Adj Close. To enhance our predictions, we incorporate technical indicators such as daily returns, Moving Average Convergence-Divergence (MACD), Relative Strength Index (RSI), Simple Moving Average (SMA), lower and upper bands, and standard deviation.
In this book, for the forecasting task, we employ various regression algorithms including Linear Regression, Random Forest Regression, Decision Tree Regression, Support Vector Regression, Naïve Bayes Regression, K-Nearest Neighbor Regression, Adaboost Regression, Gradient Boosting Regression, Extreme Gradient Boosting Regression, Light Gradient Boosting Regression, Catboost Regression, MLP Regression, Lasso Regression, and Ridge Regression. These models aim to predict the future Adj Close price of the stock based on historical data.
In addition to stock price prediction, we also delve into predicting stock daily returns using machine learning models. We utilize K-Nearest Neighbor Classifier, Random Forest Classifier, Naive Bayes Classifier, Logistic Regression Classifier, Decision Tree Classifier, Support Vector Machine Classifier, LGBM Classifier, Gradient Boosting Classifier, XGB Classifier, MLP Classifier, and Extra Trees Classifier. These models are trained to predict the direction of daily stock returns (positive or negative) based on various features and technical indicators.
To assess the performance of these machine learning models, we evaluate several important metrics. Accuracy measures the overall correctness of the predictions, while recall quantifies the ability to correctly identify positive cases (upward daily returns). Precision evaluates the precision of positive predictions, and the F1 score provides a balanced measure of precision and recall. Additionally, we consider macro average, which calculates the average metric value across all classes, and weighted average, which provides a balanced representation considering class imbalances.
To enhance the user experience and facilitate data exploration, we develop a graphical user interface (GUI). The GUI is built using PyQt and offers an interactive platform for users to visualize and interact with the data. It provides features such as plotting boundary decisions, visualizing feature distributions and importance, comparing predicted values with true values, displaying confusion matrices, learning curves, model performance, and scalability analysis. The GUI allows users to customize the analysis by selecting different models, time periods, or variables of interest, making it accessible and user-friendly for individuals without extensive programming knowledge.
The combination of exploring the dataset, forecasting stock prices, predicting daily returns, and developing a GUI creates a comprehensive framework for analyzing and understanding stock market trends. By leveraging machine learning algorithms and evaluating performance metrics, we gain valuable insights into the accuracy and effectiveness of our predictions. The GUI further enhances the accessibility and usability of the analysis, enabling users to make data-driven decisions and explore the stock market with ease.
No comments:
Post a Comment