A Blog About D4T4 & M47H

Building an Optimal Portfolio of ETFs

26 February ’17

Exchange traded funds (ETFs) have taken the market by storm. Over the last few years, we’ve seen a huge shift in assets towards passive investing, motivated by ETF’s low fee structure and the revelation that most active managers cannot beat their benchmark. This shouldn't be terribly surprising. It only takes simple arithmetic to demonstrate that active management is a zero-sum before fees and a losing proposition after fees. Even world reknown active investor Warren Buffet has suggested a simple portfolio of inexpensive index funds for the heirs to his own fortune.

However, just because ETFs are themselves portfolios doesn't mean that we don't need to think about portfolio optimization. There are well-known factors which earn market-adjusted positive returns (e.g. small > large, value > growth, high momentum > low momentum). Can we build a portfolio of ETFs that takes advantage of these tilts?


A well-constructed portfolio of ETFs can give you similar return with less risk and less market exposure than a single, market-mirroring ETF. Benchmarks for my analysis are the SPY and the MDY.


  1. “Investible” ETF maintains a great database of over ~1800 ETFs. From this, I restricted my universe to funds that are US-based, are non-sector focused, are highly liquid (334 ETFs) and have at least 5 years of returns (211/334).
  2. Factor Modeling – I regressed ETF returns (Yahoo Finance) against known factors including market returns, size, value, momentum, profitability, investment, variance, net shares issued, and accruals. Factor data generously provided by Kenneth French (the CRSP database license is a little outside my price range). I used L1 regularization to prevent overfitting factor loadings. From this, I was able to calculate each ETF’s expected return/variance and covariances with other ETFs.
  3. Portfolio Optimization – I made portfolios with target results of 6%, 8%, 10% and 12%. I used a quadratic optimizer to minimize variance within constraints. Minimum asset weights of 2.5%. Also, to ensure that a variety of factors were driving returns, I required positive tilts on size, value, momentum, profitability, and investment factors.


Overall, all 4 of my portfolios generated higher Sharpe ratios (1.6-1.8 vs. 1.1-1.3) and lower draw-downs (2%-5% vs. 9%-13%) but lower returns than the SPY and MDY, which both have returned a staggering 13.2% annually over the last 5 years. This isn't totally surprising. The model, to the extent that it can, tries to balance systematic market risk and factor risk, resulting in lower betas. Normally, this would be a good thing, except our 5 year test period sits squarely in the middle of the second longest bull market ever. I think we can expect more modest returns for the benchmarks moving forward; my model projects 8.1% and 8.9% for the SPY and MDY respectively. Expected Sharpe ratios for my portfolios (1.4-1.5) are nearly 3x higher than the benchmarks (0.5)! My target return 12% portfolio (TR12) has a beta of just 0.51 and positive loadings on size, profitability, investment, momentum, and accrual factors.

Portfolio Performance Results:

ExpectedActual (Last 5 Years)
PortfolioReturnSDSharpeReturnSDSharpeMax Draw Down

Portfolio Asset Weights:

First Trust Dow Jones Select MicroCap Index Fund (FDM)12.9%18.1%24.4%23.5%
Vanguard Long-Term Corporate Bond Index Fund (VCLT)12.3%18.1%22.4%22.7%
PowerShares Financial Preferred Portfolio (PGF)17.6%24.8%27.4%0.0%
PowerShares High Yield Equity Dividend Achievers Portfolio (PEY)6.1%8.6%12.0%33.5%
iShares Core 10+ Year USD Bond ETF (ILTB)5.9%7.9%13.7%20.3%
Vanguard Short-Term Corporate Bond Index Fund (VCSH)19.2%22.6%0.0%0.0%
PIMCO Enhanced Short Maturity Active ETF (MINT)26.0%0.0%0.0%0.0%

All of my code is posted on my GitHub. The universe of ETFs analyzed and their tilts can be downloaded here and here. Cheers!