US ML-Enhanced Portfolio Optimization
Summary
This report implements the AI-Driven Quantitative Portfolio Optimization Engine (MLPO) on US large-cap equities: a 30-name diversified panel across technology, healthcare, finance, consumer, energy, industrial, and utilities sectors, benchmarked against SPY.
Out-of-sample evaluation uses quarterly walk-forward rebalancing with a rolling 36-month estimation window, training on history from late 2013 through November 2020, then simulating through the latest available prices. A 4% annualized risk-free rate proxies US cash/T-bill returns. Four constructions are tracked out-of-sample: mean-variance (MV) optimized, ML-enhanced MV (XGBoost views via Black-Litterman), a cap-weight reference, and SPY.
Interactive exhibits quantify return and risk (CAGR/total return, Sharpe/Sortino, max drawdown, beta/alpha, information ratio, and VaR/CVaR) plus SPY-relative behaviour (tracking error, correlation, up/down capture, and turnover), along with allocation and model diagnostics (sector concentration and ranked forecast signals).
Results are research illustrations of method behaviour—not investment advice or live trading signals.
- ML + MV compound annual growth (15.10%) exceeded the SPY (14.90%) by 0.2 percentage points over the walk-forward window.
- MV-only Sharpe (1.12) matched or beat ML + MV (0.67) here—historical means may have been as informative as technical forecasts in this period.
- Drawdown on ML + MV (-22.40%) was comparable to or shallower than SPY (-23.80%), indicating risk was not disproportionately worse than the benchmark.
- Alpha near zero—performance is largely explained by market co-movement (beta 0.92).
- Information ratio 0.03 reflects modest or noisy active return relative to benchmark tracking error.
Data through 2026-07-17 · 30 stocks in universe · Walk-forward from 2020-11-30
Research workflow and data processing
Stage 1 — Universe and prices. Thirty liquid US tickers with aligned adjusted closes from Yahoo Finance; names with insufficient history are dropped before estimation.
Stage 2 — Feature engineering. Technical indicators (moving averages, RSI, MACD, momentum, volatility) feed the gradient-boosted forecasting model.
Stage 3 — Training window. At each quarterly rebalance, the prior 36 months form the estimation sample for means, covariances, and ML features.
Stage 4 — Optimization. Pure MV maximizes Sharpe under long-only bounds and a volatility ceiling; ML + MV replaces expected returns with Black-Litterman posteriors from ML views.
Stage 5 — Walk-forward simulation. Weights are held for one quarter; 0.1% slippage applies to turnover at each rebalance.
Stage 6 — Risk analytics. Cumulative paths, drawdowns, Sharpe/Sortino, beta/alpha versus SPY, VaR/CVaR, and sector concentration are summarized in the interpretation section.
Quantitative framework
Mean-variance optimization. Weights maximize Sharpe subject to , box constraints, and with annualized.
Machine-learning views. XGBoost predicts forward returns from technical features; out-of-sample maps to view confidence, with forecasts shrunk toward historical means before Black-Litterman blending ().
Black-Litterman. Cap-weight notionals imply equilibrium returns; investor views with diagonal produce posterior expected returns for the second MV solve.
Performance metrics. CAGR, Sharpe, Sortino, max drawdown, beta, alpha, VaR, and CVaR follow standard definitions on daily portfolio returns versus SPY.
How to interpret the results
Compare ML + MV to MV only to see whether ML views improve the risk-return trade-off; compare both to SPY for passive benchmark context.
Sector allocation bars show industry concentration in the latest optimized book. Signal tables rank cross-sectional forecasts from the most recent training window (annualized, model-implied)—illustrative, not orders. Use the risk and relative analytics above to judge whether any outperformance (if observed) comes with better downside control (drawdowns + VaR/CVaR) and how the portfolio participates in market up- and down-moves (capture metrics).
| Strategy | CAGR | Total | Sharpe | Sortino | Max DD | Vol |
|---|---|---|---|---|---|---|
| ML + MV+0.2 pp vs SPY | 15.10% | 118.50% | 0.67 | 1.08 | -22.40% | 17.10% |
| MV only+9.1 pp vs SPY | 24.00% | 231.90% | 1.12 | 1.87 | -20.00% | 16.90% |
| Cap-weight+4.5 pp vs SPY | 19.40% | 167.70% | 0.99 | 1.63 | -19.20% | 15.00% |
| SPY | 14.90% | 116.80% | 0.68 | 1.11 | -23.80% | 16.70% |
Tracking error
7.70%
Correlation
0.90
Up-capture
0.92
Down-capture
0.90
Avg rebalance turnover (ML)
59.00%
Calmar (ML + MV)
0.67
Alpha (ann.)
1.10%
Beta
0.92
Information ratio
0.03
VaR 95% (daily)
1.70%
CVaR 95% (daily)
2.50%
Win rate (daily)
54.40%
Best / worst day
9.90% / -7.90%
| Year | ML + MV | SPY | Excess |
|---|---|---|---|
| 2020 | 4.00% | 3.70% | +0.3 pp |
| 2021 | 39.40% | 25.90% | +13.5 pp |
| 2022 | -11.70% | -16.60% | +4.9 pp |
| 2023 | 23.20% | 25.90% | -2.7 pp |
| 2024 | 18.60% | 25.50% | -6.9 pp |
| 2025 | 8.00% | 17.40% | -9.4 pp |
| 2026 | 8.00% | 9.40% | -1.4 pp |
Largest sector: Finance at 62.10%
| Ticker | Price ($) | Forecast | Signal |
|---|---|---|---|
| MSFT | 205.61 | 35.0% | Strong Buy |
| ADBE | 477.03 | 35.0% | Hold |
| COST | 357.1 | 30.9% | Strong Buy |
| NEE | 65.19 | 26.4% | Strong Buy |
| AAPL | 113.28 | 25.6% | Strong Buy |
| NVDA | 13.2 | 23.6% | Hold |
| CRM | 243.42 | 22.3% | Hold |
| UNH | 306.23 | 21.3% | Strong Buy |
| PG | 120.54 | 21.0% | Hold |
| MS | 53.84 | 20.3% | Strong Buy |
| HON | 184.99 | 17.3% | Strong Buy |
| BAC | 25.26 | 17.1% | Strong Buy |
| NKE | 122.84 | 17.1% | Strong Buy |
| BA | 216.5 | 16.1% | Strong Buy |
| ABBV | 84.32 | 15.8% | Strong Buy |
| LLY | 139.44 | 15.6% | Strong Buy |
| JPM | 104.97 | 15.1% | Strong Buy |
| GOOGL | 88.57 | 15.1% | Strong Buy |
| BLK | 624.08 | 13.0% | Strong Buy |
| CAT | 158.53 | 12.8% | Strong Buy |
Limitations
Yahoo Finance prices and simplified transaction costs (slippage on turnover only) may differ from live execution.
The fixed 30-stock panel is not the full S&P 500; results may not generalize to broader universes.
ML forecasts are noisy; views are shrunk toward historical means by design.
Past backtest performance does not guarantee future results.
Conclusion
ML-enhanced portfolio optimization on a diversified US equity panel illustrates how forecast views blended via Black–Litterman can shift mean-variance weights relative to a pure MVO baseline. Walk-forward quarterly rebalancing with explicit turnover costs is essential for interpreting headline Sharpe ratios.
Strong backtest performance can reflect factor exposures, constraint slack, or period-specific regimes rather than repeatable alpha after costs. Refresh the study when new market data are available to keep conclusions aligned with current conditions.