This project explores portfolio management using volatility estimation and time series analysis. The main goal is to improve portfolio performance by optimizing asset allocation weights and comparing various volatility forecasting methods.
We build a crypto portfolio consisting of BTC-USD, ETH-USD, BNB-USD, and XRP-USD using daily historical data from 2023-08-01 to 2024-12-01. The workflow includes:
- Data Collection & Preprocessing
- Volatility Estimation
- Portfolio Optimization using Black-Litterman model
- Buy and Hold Strategy Backtesting
- Performance Evaluation & Visualization
- Historical daily data for the 4 cryptocurrencies.
- Data split:
- Training Set: 2023-08-01 to 2024-08-01
- Test Set: 2024-08-01 to 2024-12-01
For each asset, and for 7-day and 30-day rolling windows:
- GARCH
- EGARCH
- FIGARCH
- Historical Volatility
- Parkinson Estimator
- Garman-Klass Estimator
- Yang-Zhang Estimator
β A total of 14 volatility series per asset.
- Volatility estimates are averaged per method (per asset).
- Each average volatility vector is used in a Black-Litterman optimization.
- Objective: maximize Sharpe Ratio while enforcing diversification.
πΈ Output: 7 different sets of optimized weights (one per volatility method group).
- Simple Buy and Hold strategy.
- Initial capital: $1000
- Transaction cost: 2%
- Backtested separately on training and test datasets.
- Performance Metrics:
- Sharpe Ratio
- Net Profit
- Max Drawdown
- Compare strategies across volatility estimation methods.
- Identify the best-performing approach.
- Visualize:
- Equity Curve
- Portfolio Allocation Over Time
- Volatility Dynamics
- Confidence Intervals
- Cumulative Returns
pandasnumpymatplotlib,seabornarch(for GARCH models)yfinanceor other data providerscvxpy,scipy(for optimization)statsmodelssklearn(for evaluation)