The Momentum Portfolio

A simple, fully mechanical strategy: rank every US stock above $1B market cap by its 12-month price momentum, skipping the most recent month, hold the top 25 equal-weight, and re-rank at every month-end. No forecasts, no discretion. We tested it point-in-time on three separate windows back to 2009 — including two we never touched while designing it. It beat the S&P 500 in 2016–2026 and 2009–2012, and lost to it in 2012–2016 (9.7% vs 11.4%/yr). We publish the loss next to the wins — the honest caveats are below, right next to the results.

This month’s basket

Loading the current top-25…

Loading…

Check against your portfolio

See which basket names you already hold and which of your holdings are outside the basket this month. Informational only — this compares tickers, it does not tell you to buy or sell anything.

or paste tickers manually:

The backtest — three independent windows

Same rules applied point-in-time: universe membership and market cap use only data knowable at each rebalance (annual filings with a 91-day lag, and that day’s price). The 2012-2016 and 2009-2012 windows were run after the strategy was fixed on 2016-2026 data — a true out-of-sample check. The strategy won 2009-2012 and lost 2012-2016: momentum rode the 2013-2015 mid-cap biotech run-up straight into the late-2015 crash. One win, one loss out-of-sample — that is the record, and we show both.

The chart shows total return since the window started (e.g. +1900% over ~10 years); the CAGR figures above are that same result expressed as a constant annual rate (33.8%/year, compounded, produces roughly that same +1900% over ~10 years). Same result, two units — the % scale on the chart isn’t directly comparable to the yearly stats.

Methodology — and what this test can and cannot claim

  • Signal: 12M-1M price momentum — the close one month before the rebalance divided by the close thirteen months before, minus one. The most recent month is skipped because short-term returns tend to reverse (the standard academic convention). Nothing else: no earnings, no scores, no opinions.
  • Universe: US-listed stocks with market cap ≥ $1B at the rebalance date, mega caps and mid caps competing in one pool. In testing, letting the whole spectrum compete beat restricting to either group alone.
  • Portfolio: the top 25 by momentum, equal weight, re-ranked every month-end. Typically 5-10 names change per month, not the whole basket. Wider baskets (25) survived out-of-sample; concentrated ones (top 5-10) looked better in-sample and failed out-of-sample, so we don’t use them.
  • What we tried and rejected, in the open: per-stock trailing stop-losses (whipsawed, made results worse), market regime filters — 200-day trend, partial exposure, volatility-index tiers (each helped one window, hurt another; none passed both), quality-fundamental gates on top of momentum (diluted returns at monthly cadence). The bankruptcy check was the one defensive test that passed: in nine real collapses (2020-2023), momentum turned deeply negative 3-12 months before the end, so the monthly re-rank had already rotated out of every one of them.
  • Where this page came from: our original test asked whether ranking stocks by fundamentals beats the market. Honest answer: it didn’t (top-quintile 11.3%/yr vs SPY 13.5% in the mega-cap universe, 2016-2026). We published nothing and kept iterating; the momentum finding above is what survived every check we could throw at it.
Honest limitations. The universe is every US-listed stock above $1B market cap today with at least three years of SEC filings (~1,150 names with usable price history) — the same universe the live basket is built from. It still under-represents companies that delisted or were acquired along the way, and that kind of gap flatters backtests. We take this seriously: an earlier draft of this page used a narrower ~600-name pool selected by today’s size, and it showed 17.8%/yr for 2012-2016. Re-running on the full universe — which adds back the mid-cap momentum names that crashed in late 2015 — dropped that window to 9.7%/yr, below the index. We publish the full-universe numbers everywhere on this page. The out-of-sample record is +2.8pp/yr (2009-2012) and −1.7pp/yr (2012-2016): the honest expectation is a modest edge over long horizons, with multi-year stretches where the strategy simply loses to the index — not the headline +20pp of the main window. Returns are price-only (dividends excluded on both sides — which understates the SPY side more than the basket). The cost-adjusted CAGR shown assumes 0.3% per trade. Max drawdowns ran deeper than the index (-27.6% vs -23.8% on the main window, and -31% vs -10.9% in the losing 2012-2016 window — see the table above for all three windows) — this strategy is more volatile than holding SPY, and momentum strategies are known to crash hardest when markets whipsaw. Past results are no guarantee of future results. Educational only, not investment advice.