Interactive Quantitative Finance Toolkit with Python
This project provides an interactive web application for exploring quantitative finance concepts, including:
- Stock Data Analysis: Fetch and visualize historical stock data
- AutoML Stock Prediction: Train ML models using PyCaret
- Time Series Forecasting: ARIMA and NeuralProphet implementations
- Portfolio Optimization: Efficient frontier and risk-adjusted returns
- Data Selection: Choose stocks and date ranges
- Visualization: Interactive Plotly charts
- AutoML Training: One-click model comparison
- ARIMA Forecasting: Walk-forward validation
- Portfolio Optimization: Mean-variance optimization
- ARIMA Fundamentals: Step-by-step time series forecasting guide
- Detailed explanations of stationarity, differencing, and cumsum reversal
- Python 3.9+
- pip or conda
# Clone the repository
git clone https://github.com/vedanthr5/vr-quantfolio-intro.git
cd vr-quantfolio-intro
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txtstreamlit run home.pyThen open http://localhost:8501 in your browser.
jupyter notebook tutorials/vr-quantfolio-intro/
├── home.py # Main Streamlit entry point
├── requirements.txt # Python dependencies
├── _quarto.yml # Quarto config for GitHub Pages
│
├── .streamlit/
│ └── config.toml # Streamlit theme configuration
│
├── pages/ # Streamlit multipage app
│ ├── 1_Data_Selection.py
│ ├── 2_Visualization.py
│ ├── 3_AutoML_Training.py
│ ├── 4_Export_Model.py
│ ├── 5_ARIMA_Prediction.py
│ ├── 6_Portfolio_Optimization.py
│ └── 7_Resources.py
│
├── utils/ # Shared utilities
│ ├── __init__.py
│ ├── data_fetcher.py # yfinance data utilities
│ └── styles.py # CSS and styling
│
├── tutorials/ # Jupyter notebooks
│ └── arima_fundamentals.ipynb
│
└── docs/ # GitHub Pages output
└── index.html
The arima_fundamentals.ipynb notebook covers:
- Data loading and exploration
- Stationarity testing (ADF test)
- Differencing transformation
- Walk-forward ARIMA training
- Cumulative sum reversal
- Error metrics (MSE, SMAPE)
| Category | Tools |
|---|---|
| Web App | Streamlit |
| Data | pandas, yfinance |
| ML | PyCaret, scikit-learn |
| Time Series | statsmodels, NeuralProphet |
| Portfolio | Riskfolio-Lib |
| Visualization | Plotly, matplotlib |
| Documentation | Quarto, GitHub Pages |
- Push to GitHub
- Connect repo to Streamlit Cloud
- Set main file to
home.py
# Install Quarto
# https://quarto.org/docs/get-started/
# Render notebooks to HTML
quarto render
# Push docs/ folder to GitHub
git add docs/
git commit -m "Update GitHub Pages"
git pushContributions welcome! Please open an issue or PR.
MIT License - see LICENSE file.
Vedanth R
- GitHub: @vedanthr5
Star this repo if you find it helpful!