Post

Robust Markowitz Portfolio Optimization Techniques

Robust Markowitz Portfolio Optimization Techniques

๐Ÿ“˜ Markowitz Portfolio Optimization Techniques with Regularization, Trading Constraints, and Risk Factors

๐Ÿ“„ Read the full PDF

๐Ÿง  Summary

This paper done by me and Zhihan, Yueyang explores extensions to the classical Markowitz mean-variance portfolio optimization framework by introducing:

  • โœ… L1 (LASSO), L2 (Ridge), and Elastic Net regularization
  • ๐Ÿ“‰ Volume-based and volatility-aware trading constraints
  • ๐Ÿงฎ Bi-level optimization for determining asset and cash weight bounds
  • ๐Ÿ“Š Realistic cost modeling and return forecasting frameworks
  • ๐Ÿงช Extensive 3-month rolling backtests from 2020โ€“2025

We show that Ridge regularization combined with practical trading constraints consistently delivers the most robust and high-performing portfolios in both return and risk-adjusted metrics (Sharpe, CVaR, MDD).

๐Ÿ”ฅ TL;DR: Modernizing Markowitz with regularization + constraints = alpha-generating machine!

๐Ÿ—‚๏ธ Key Contributions

TechniqueDescription
LASSO / Ridge / Elastic NetPromote sparsity, reduce overfitting, and balance diversification
Trading ConstraintsControl for liquidity via volume limits and volatility filters
Bi-level OptimizationTune bounds on portfolio weights and cash to maximize Sharpe ratio
Backtesting FrameworkEvaluate robustness under 3-month rolling windows
Performance & Risk EvaluationCompare models on net return, cost, drawdown, and more

๐Ÿ“ˆ Results Snapshot

ModelGross ReturnNet ReturnSharpeMax Drawdown
Classical4.46%1.81%0.571-12.6%
LASSO4.48%2.10%0.562-11.5%
Ridge4.62%3.08%0.622-11.0%
Elastic Net4.40%2.55%0.564-13.9%

๐Ÿ”ง The Ridge model emerges as the winner with the best return-cost balance and lowest realized volatility.

๐Ÿ› ๏ธ Code

The code includes:

  • ETF data preprocessing with yfinance
  • Optimization routines using cvxpy
  • Custom constraints: trading volume, price gap, volatility jump
  • Portfolio performance metrics: Sharpe, VaR, CVaR, Max Drawdown
  • Visualization tools for returns and risk profiles

All implementation details can be found in the notebooks/ and models/ folders (you can create them and place your Jupyter Notebooks or scripts there).

๐Ÿ’ก Future Work

  • Incorporating ML-driven return forecasts (e.g., LSTM, XGBoost)
  • Adaptive regularization tuning via Bayesian optimization
  • Expansion to multi-asset portfolios or international ETFs

Thanks for checking out our work! If you find this useful, feel free to โญ the repo and drop your thoughts in Issues!

This post is licensed under CC BY 4.0 by the author.