Advanced portfolio optimization engine implementing Modern Portfolio Theory (Markowitz, 1952) for long-only equity portfolios. This project demonstrates quantitative finance principles, numerical optimization techniques, and data-driven asset allocation strategies applicable to institutional portfolio management.
Key Achievement: Constructed optimal portfolios achieving 1.313 Sharpe Ratio (33% improvement over minimum variance) through systematic risk-return optimization across 30 random US equities.
| Metric | Minimum Volatility | Maximum Sharpe | Improvement |
|---|---|---|---|
| Annual Return | 9.77% | 19.64% | +101% |
| Annual Volatility | 11.13% | 14.96% | +34% |
| Sharpe Ratio | 0.878 | 1.313 | +50% |
| Number of Assets | 15 | 8 | -47% |
| Largest Allocation | 22.28% | 42.14% | - |
| Top 5 Concentration | 62.7% | 91.2% | - |
Data Period: 10 years of monthly returns (2015-2025)
-
Dual Optimization Objectives:
- Global Minimum Variance Portfolio (GMV)
- Maximum Sharpe Ratio Portfolio (Tangency)
-
Robust Data Processing:
- Handles missing data and infinite returns (price anomalies)
- Annualized covariance matrix estimation from monthly returns
- Outlier detection and imputation
-
Advanced Visualization:
- Efficient Frontier with 10,000 Monte Carlo simulations
- Dual-axis Risk-Return and Sharpe Ratio plots
- Portfolio composition analysis (pie charts)
- Comparative performance dashboards
-
Numerical Optimization:
- Sequential Least Squares Programming (SLSQP)
- Long-only constraints (w ≥ 0, Σw = 1)
- Iterative efficient frontier computation
Core Technologies:
- Python 3.12: Primary language
- NumPy: Matrix operations and linear algebra
- Pandas: Time series data manipulation
- SciPy: Constrained optimization (
scipy.optimize.minimize) - Matplotlib/Plotly: Data visualization
Mathematical Framework:
- Quadratic Programming for portfolio variance minimization
- Mean-Variance Optimization (MVO)
- Covariance matrix estimation and annualization
- Sharpe Ratio maximization via negative objective function
10,000 simulated portfolios with optimal portfolios highlighted
Comprehensive comparative metrics and top holdings analysis
Monthly returns with inf/NaN handling:
returns = prices.pct_change().dropna()
returns = returns.replace([np.inf, -np.inf], np.nan).fillna(returns.median())Annualized covariance from monthly data:
sigma_annual = returns.cov() * 12Minimum Volatility:
Minimize: σ²ₚ = wᵀ Σ w
Subject to: Σwᵢ = 1, wᵢ ≥ 0
Maximum Sharpe:
Maximize: SR = (μₚ − r_f) / σₚ
Subject to: Σwᵢ = 1, wᵢ ≥ 0
Where:
w= portfolio weightsΣ= covariance matrixμₚ= portfolio expected returnr_f= risk-free rate (3% assumed)
- +101% return for only +34% volatility increase (Min Vol → Max Sharpe)
- Efficient diversification: 15-asset Min Vol vs 8-asset Max Sharpe
- Concentration trade-off: Higher Sharpe achieved through focused bets (91% top 5)
- SLSQP algorithm converged in <1s for 30-asset universe
- Monte Carlo validation: 10,000 portfolios confirm analytical frontier
- Numerical stability verified via eigenvalue decomposition (PSD matrix)
- Min Vol suitable for conservative risk mandates (pension funds)
- Max Sharpe ideal for performance-focused strategies (hedge funds)
- Concentration risk management critical above 40% single-asset allocation
This implementation is based on:
- Markowitz, H. (1952). "Portfolio Selection." Journal of Finance 7(1): 77-91.
- Sharpe, W.F. (1966). "Mutual Fund Performance." Journal of Business 39(S1): 119-138.
- Merton, R.C. (1972). "An Analytic Derivation of the Efficient Portfolio Frontier." Journal of Financial and Quantitative Analysis 7(4): 1851-1872.
Cauê Pileckas D'Agostinho
Computer Engineering Student @ Insper | Quant Trading Enthusiast
📍 São Paulo, Brazil
🔗 LinkedIn | GitHub
Interests: Algorithmic trading, machine learning in finance, derivatives pricing
This project was developed as part of a comprehensive study in quantitative portfolio management and demonstrates production-ready code suitable for institutional asset management applications.

