|
|
|
Log In | Sign Up | ||
Where the Minervini Trend Template Works: A Backtest Across 14 Stock UniversesMark Minervini's Trend Template keeps only stocks in a strong Stage 2 uptrend: price above rising moving averages, near its 52-week high and outperforming most other stocks. It's a popular filter, but does it actually beat the market, and where? We ran the same Trend Template strategy through MarketInOut's backtester on 14 stock universes in seven countries, with up to 26 years of data each, and compared every result with a local index fund. The biggest factor wasn't the country. It was which stocks the strategy was allowed to buy. The short version
Where the Trend Template beat the index fundAnnual return of the strategy minus the annual return of the local index fund over the same period, in percentage points: Full results
Each test ends on October 19, 2026 and starts in the year shown: the first year with index membership history for that universe. Index funds are bought and held, with dividends reinvested. Results are in each market's own currency, except the Japan fund, which trades in US dollars. Why the universe matters so muchIndex membership filters out short-lived spikesOn a whole exchange, thousands of small companies can pass the Trend Template for a few weeks after a sharp rally, then collapse. The strategy buys the strongest of them first, so it fills up with exactly these stocks. Index members are larger, more established companies whose uptrends tend to last, so the same rules catch longer trends. Small caps are the hardest place for itThe Russell 2000 version lost 4.3 points a year against its index fund, with a 66% drawdown. The FTSE 250 version trailed too. Small-cap uptrends break more often and more violently, and the strategy's exit, a close below the 200-day average, comes too late. The index needs enough membersThe DAX has only 40 members, so at any time only a few of them are likely to pass the Trend Template. The strategy then holds fewer than its 20 positions and keeps the rest in cash, which makes it hard to keep up with the index. A pool of a few hundred stocks suits it better. The largest US stocks are hard to beatWith S&P 500 and Russell 1000 members, the strategy roughly matched the index fund. The biggest US companies have dominated the index for years, and buy-and-hold already captures their gains. The Nasdaq-100 looks like an exception: the strategy beat QQQ by almost 4 points a year. But the whole edge came from 2000–2002, when few technology stocks passed the template and the strategy sat out most of the crash. From 2003 on, it trailed QQQ slightly: 15.0% a year vs 15.9%. What about selling everything at year end?We also tested a simpler exit: hold every position until the end of the year, sell everything, and start again with the new year's leaders. Annual return and maximum drawdown:
Selling at year end raised returns for S&P 500, Russell 1000 and Russell 2000 members, most of all with the Russell 1000 (19.3% a year). But it lowered returns for the Nasdaq-100 and TSX, and made the worst drawdown much deeper in most markets: 58% instead of 35–37% for the Nasdaq-100 and TSX. Using both exits together (sell below the 200-day average or at year end, whichever comes first) was worse than the 200-day exit alone in most markets. We kept the 200-day exit as the main rule because it held up better across markets. A warning about these resultsWe tested 14 universes and several exits, and some results will look good by chance. Big edges often come from one period: the Nasdaq-100 result depends on 2000–2002. Don't pick the best row and expect the same in the future. The pattern across many tests is more reliable than any single number: the strategy did better on large, established stocks and worse on small, speculative ones. How we tested
Run it yourselfOpening formula, using Nasdaq-100 members as the example: index(nasdaq100) and price > sma(50) and sma(50) > sma(150) and sma(150) > sma(200) and sma(200) > sma(200)@21 and price >= 1.25 * w52low and price >= 0.75 * w52high and rs(252) >= 70 and sortby(rs(252), desc) Closing formula: price cb sma(200) Paste both into the Strategy Backtester and change the universe, for example to Backtests run on MarketInOut data on October 20–21, 2026. Past results don't guarantee future returns. |
Disclaimer - Privacy Policy - Terms of Service - Cookies - FAQ - Affiliates - Blog |