Skip to content

amlfarhad/stock-prediction

Repository files navigation

Stock Market Prediction with Random Forest & Optimization

A stock price prediction system using Random Forest regression with advanced feature engineering and hyperparameter optimization via GridSearchCV.

Features

  • Data Pipeline: Fetches historical OHLCV data from Yahoo Finance via yfinance
  • Feature Engineering: 25+ technical indicators including SMA, EMA, MACD, RSI, Bollinger Bands, ATR, OBV
  • Model Training: Random Forest Regressor with baseline and optimized modes
  • Hyperparameter Tuning: GridSearchCV with TimeSeriesSplit cross-validation
  • Evaluation: MAE, RMSE, R², MAPE, and directional accuracy metrics
  • Visualization: Price charts, prediction plots, feature importance, residual analysis

Tech Stack

  • Python, scikit-learn, pandas, numpy
  • yfinance (Yahoo Finance API)
  • matplotlib, seaborn (visualization)
  • GridSearchCV with TimeSeriesSplit

Usage

Basic prediction (baseline model):

python main.py --ticker AAPL --start 2018-01-01 --end 2023-12-31

With GridSearchCV optimization:

python main.py --ticker AAPL --optimize

Compare multiple stocks:

python main.py --compare AAPL GOOGL MSFT --optimize

Setup

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python main.py --ticker AAPL

Testing

pytest tests/ -v

Project Structure

stock-prediction/
├── main.py                 # CLI entry point and pipeline
├── data_fetcher.py         # Yahoo Finance data retrieval
├── feature_engineering.py  # Technical indicators and feature creation
├── model.py                # Random Forest model with GridSearchCV
├── visualize.py            # Chart generation
├── requirements.txt
├── models/                 # Saved trained models
├── visualizations/         # Generated charts
└── tests/
    ├── test_feature_engineering.py
    └── test_model.py

About

Stock price prediction using Random Forest regression with GridSearchCV optimization

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages