An end-to-end predictive analytics system designed to forecast the volatility of the Indian stock market (specifically the Nifty 50 index) using historical official data. By leveraging quantitative finance methodologies and machine learning, this system engineers key statistical features to predict next-day market risk.
- Core Analytics: Python, Pandas, NumPy
- Machine Learning: Scikit-Learn (Random Forest Regressor)
- Data Sourcing: Yahoo Finance API (
yfinance) - Visualization: Matplotlib
- Domain Focus: Volatility Forecasting, Risk Modeling, Financial Time-Series Analysis
- Automated Data Pipeline: Fetches historical and live-updated NSE/BSE market data dynamically.
-
Quantitative Feature Engineering: - Computes log returns for statistical consistency.
- Generates annualized 21-day rolling realized volatility targets.
- Crafts auto-regressive features using past volatility lags (
$t-1$ ,$t-2$ ,$t-5$ ).
- Lookahead Bias Prevention: Implements chronological time-series splitting (80% Train / 20% Test) instead of randomized shuffling to ensure robust, real-world backtesting.
-
Automated Visualization Export: Generates performance comparison charts and safely saves them into an isolated
images/directory.
├── notebook.ipynb # Interactive Jupyter Notebook pipeline
├── NCMPCS abstract.pdf # Reseacrh Abstract
├── NCMPCS research documentation.pdf # Research documentation
└── README.md
The system was evaluated against the out-of-sample testing set, achieving highly precise metrics capturing market regime shifts:
- Root Mean Squared Error (RMSE): 0.0157R-squared
- (
$R^2$ ) Score: 0.9051
The