A comprehensive deep learning framework for stock price prediction using LSTM neural networks with advanced feature engineering, automated hyperparameter optimization, and interactive trading simulation.
- LSTM-Based Time Series Forecasting: LSTM specifically designed for sequential financial data
- Automated Hyperparameter Optimization: Grid search across multiple hyperparameters with early stopping
- Automated Data Retrieval Pipeline: yfinance and fredapi integration to retrieve up-to-date market and economic data
- Feature Engineering Pipeline: Technical indicators (MACD, RSI, ATR) and macroeconomic data integration
- Interactive Dashboard: Real-time experiment configuration with Feature Selection and Hyperparameter Search Configuration in a visual Dashboard UI
- Trading Strategy Simulation: Backtest several different trading strategies with detailed performance metrics
- Comprehensive Visualization: Training progress, predictions, error analysis, and equity curves
- Flexible Model Persistence: Save and load trained models with configurations
- Python 3.8+
- CUDA-compatible GPU (optional, but recommended)
- PyTorch with CUDA support
- Clone the repository:
git clone <repository-url>
cd LSTMPrediction- Create a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install dependencies:
pip install -r requirements.txtPlace your financial data in the data/ directory. Expected format:
- CSV files with date index
- Columns:
Close_{TICKER},Volume_{TICKER}, technical indicators, macroeconomic data
OR retrieve data using the provided pipeline:
data_acquision.ipynb
Open StockPricePrediction.ipynb and run through the cells:
Launch the interactive dashboard for experiment configuration:
Configure:
- Training Features: Select from technical indicators and macro features
- Hyperparameter Grid: Window size, batch size, learning rate, dropout, etc.
- Model Architecture: Hidden layers, LSTM layers, optimizer selection
The framework supports incremental feature selection:
This tests:
- Target feature only (baseline)
- Target + each additional feature individually
- All features combined
Generates:
- Training history plots
- Predictions vs actuals on test set
- Residual analysis
- Performance metrics (MSE, MAE, R²)
- Price data:
Close,Volume - Momentum:
MACD,RSI - Volatility:
ATR,VIX
MACRO_cpi: Consumer Price IndexMACRO_rate: Interest ratesMACRO_ppi: Producer Price IndexMACRO_gdp: GDPMACRO_unrate: Unemployment rateMACRO_CSI: Consumer Sentiment IndexMACRO_HS: Housing Starts
- Data Preparation: Load, clean, and scale data
- Feature Engineering: Calculate technical indicators
- Sequence Creation: Generate sliding windows for LSTM input
- Train/Val/Test Split: 80%/10%/10% split
- Grid Search: Automated hyperparameter optimization
- Early Stopping: Prevent overfitting with validation monitoring
- Model Selection: Choose best model based on validation loss
- Evaluation: Test set performance and visualization
- Trading Simulation: Backtest with realistic trading scenarios
LSTMPrediction/
├── classes/ # Core framework classes
├── data/ # Financial datasets
├── run/ # Experiment outputs and checkpoints
├── StockPricePrediction.ipynb # Main training notebook
├── data_acquisition.ipynb # Data collection pipeline
├── simulation.ipynb # Trading simulations
└── requirements.txt # Python dependencies
All experiments are automatically saved to run/ with:
- Model checkpoints (
checkpoint.pt) - Configuration files (
config.json) - Training plots
- Prediction visualizations
- Performance metrics CSV
The framework provides comprehensive visualizations:
- Training Progress: Real-time loss curves with early stopping indicators
- Predictions: Overlaid predicted vs actual values on test set
- Residual Analysis: Error distribution and patterns
- Equity Curves: Trading simulation performance over time
- Feature Analysis: SHAP values for feature importance
