Broad Momentum 30
30 strong trends in equal amounts, rebuilt once a month: the most spread-out of all.
How it works
Broad Momentum 30 holds 30 of the 500 most actively traded US stocks: those with the strongest price trends over the past year, among companies that generate cash. It puts the same amount in each and rebuilds the portfolio once a month. Each rule is listed below in the order it is applied.
The rules, step by step
- When it decides. After the market closes on the last trading day of each month, using that day’s closing prices and only information available by then.
- The stock pool. US-listed common stocks and ADRs, not traded over the counter, closing at $5 or more. Each must have traded at least $10 million a day on average over 20 trading days at this decision and at each of the previous two month-end decisions. Of those, the 500 with the highest 20-day average trading value form the pool.
- Cash flow. Keeps only companies whose latest quarterly report, filed by the decision day, shows positive free cash flow.
- The ranking. Ranks the remaining stocks by 12-1 momentum: the price change from twelve months ago (252 trading days) to one month ago (21 trading days), using prices adjusted for splits and dividends. The latest month is left out on purpose.
- The selection. Takes the 30 highest-ranked stocks, with at most three from any one industry sector: when a sector is full, the next-ranked stock from another sector takes the place. Stocks already held get no preference; each rebuild starts from the ranking.
- How much in each. The same amount in every stock: 1/30 of the portfolio each (3.33%).
- The trades. Made at the next trading day’s closing price: stocks no longer selected are sold, new ones bought, and those that stay are resized to their new amounts. Every buy, sale and resize pays 0.10% of the amount traded.
- Between rebuilds. No trades. The holdings’ shares of the portfolio drift as their prices move until the next decision.
These rules are frozen (rules version 1) and are exactly what the record uses, every day since go-live and throughout the backtest. Changing any of them would make a new strategy with its own record. Key terms explained.
What to expect: The most cautious: no stock above a few percent, and the smallest falls, at a lower return than the others.
What would your money have done?
$10,000 put in at the close of Nov 1, 2017, worth at the close of Oct 16, 2026:
Growth of $10,000 against SPY
Fall from the highest value so far
The Bull Rhythm Weekly · every Friday after the close
Follow the strategies as they run live
Eight strategies with fixed rules, every decision made at the day’s close. Each Friday, see where the record stands: what each one made, what it bought and sold, and why.
- This week’s result and the running total since going live, next to the S&P 500
- Every buy and every sale, with the reason in plain words
- What each one holds now, with charts
- The good weeks and the bad ones, reported the same way
Returns over set periods
| Strategy | 1 month | 3 months | This year | 1 year | 3 years | 5 years | Since 2017 | Since go-live |
|---|---|---|---|---|---|---|---|---|
| Broad Momentum 30 | -1.8% | +3.6% (ahead of SPY) | +24.0% (ahead of SPY) | +14.8% | +209.3% (ahead of SPY) | +186.7% (ahead of SPY) | +530.5% (ahead of SPY) | -1.9% |
| SPY (buy and hold) | +0.3% | +3.1% | +12.8% | +16.0% | +81.4% | +86.4% | +240.4% | -0.1% |
Year by year
Each calendar year on its own, newest first: the return (bold when ahead of SPY), the worst fall from a high within that year, how much the value swung (volatility, as a yearly figure), Sharpe, the best and worst month, the share of months that ended higher, and beta (how much it moved for each 1% SPY moved). The first and the current year are partial; years before going live are a backtest.
| Year | Return | SPY | Worst fall | SPY worst fall | Volatility | Sharpe | Best month | Worst month | Up months | Beta |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026 (partial) · live from Sep 29, 2026 | +24.0% (ahead of SPY) | +12.8% | -13.4% | -8.9% | 24.7% | 1.23 | +14.5% | -7.9% | 70% | 1.36 |
| 2025 | +41.5% (ahead of SPY) | +17.7% | -27.3% | -18.8% | 31.4% | 1.27 | +14.5% | -8.3% | 67% | 1.32 |
| 2024 | +57.7% (ahead of SPY) | +24.9% | -12.9% | -8.4% | 23.1% | 2.09 | +17.7% | -9.9% | 67% | 1.50 |
| 2023 | +12.0% | +26.2% | -15.2% | -10.0% | 16.6% | 0.77 | +10.7% | -5.6% | 58% | 1.05 |
| 2022 | -10.3% (ahead of SPY) | -18.2% | -19.6% | -24.5% | 24.6% | -0.32 | +8.7% | -9.9% | 58% | 0.88 |
| 2021 | +18.6% | +28.7% | -16.7% | -5.1% | 25.3% | 0.80 | +9.1% | -5.0% | 58% | 1.39 |
| 2020 | +46.5% (ahead of SPY) | +18.4% | -32.5% | -33.7% | 35.2% | 1.26 | +19.4% | -12.1% | 67% | 0.89 |
| 2019 | +32.8% (ahead of SPY) | +31.2% | -9.2% | -6.6% | 15.5% | 1.91 | +10.7% | -6.3% | 83% | 0.92 |
| 2018 | -5.4% | -4.6% | -26.4% | -19.3% | 22.8% | -0.13 | +7.9% | -11.1% | 50% | 1.21 |
| 2017 (partial) | +4.0% | +4.2% | -3.6% | -1.0% | 12.1% | 2.09 | +3.3% | +0.6% | 100% | 1.21 |
The account, as a ledger
The strategy shown as one account that started with $10,000 on Nov 1, 2017 (change the amount above) and followed every trade. Shares are fractional; share counts include stock splits and reinvested dividends. Gains are measured on average cost. With a split chosen above, part of the account sits in BIL (a 1–3 month T-bill fund) and is put back to the split at every rebuild: each move is one BIL row below, and it buys or sells the same slice of every stock held.
What it holds now
At the close of Oct 16, 2026. It decides after the close on the last trading day of each month and trades at the next day's close. The weights drift with prices between rebuilds. This is the model’s position, published for education, not a recommendation to buy these stocks: a portfolio started today would differ in entry prices and results.
| Stock | Sector | Weight | Shares | Avg cost | Cost basis | Price | Value | Gain on cost | Since first bought | First bought | At | Why |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DINO | Energy | 3.8% | 19.130 | $88.34 | $1,690 | $125.29 | $2,397 | +$707 | +42.2% | Aug 3, 2026 | $88.65 | new: ranked 16 of 30, 12-1 momentum +73% |
| VLO | Energy | 3.7% | 5.278 | $217.89 | $1,150 | $444.71 | $2,347 | +$1,197 | +108.8% | Mar 2, 2026 | $214.91 | new: ranked 28 of 30, 12-1 momentum +45% |
| NUE | Basic Materials | 3.7% | 9.136 | $250.19 | $2,286 | $256.29 | $2,341 | +$56 | +2.0% | Sep 1, 2026 | $251.92 | new: ranked 18 of 30, 12-1 momentum +74% |
| MNST | Consumer Defensive | 3.7% | 51.160 | $47.94 | $2,453 | $45.73 | $2,340 | −$113 | -6.0% | Jul 1, 2026 | $97.35 | new: ranked 26 of 30, 12-1 momentum +43% |
| TRV | Financial Services | 3.7% | 5.961 | $361.93 | $2,158 | $389.54 | $2,322 | +$165 | +7.7% | Oct 1, 2026 | $361.64 | new: ranked 29 of 30, 12-1 momentum +34% |
| EAT | Consumer Cyclical | 3.6% | 11.094 | $194.48 | $2,158 | $204.14 | $2,265 | +$107 | +5.0% | Oct 1, 2026 | $194.33 | new: ranked 18 of 30, 12-1 momentum +72% |
| CRL | Healthcare | 3.6% | 7.516 | $287.06 | $2,158 | $300.15 | $2,256 | +$98 | +4.6% | Oct 1, 2026 | $286.83 | new: ranked 13 of 30, 12-1 momentum +96% |
| ADM | Consumer Defensive | 3.6% | 27.111 | $79.58 | $2,158 | $82.61 | $2,240 | +$82 | +3.9% | Oct 1, 2026 | $79.52 | new: ranked 26 of 30, 12-1 momentum +39% |
| SN | Consumer Cyclical | 3.6% | 11.992 | $179.92 | $2,158 | $186.51 | $2,237 | +$79 | +3.7% | Oct 1, 2026 | $179.78 | new: ranked 17 of 30, 12-1 momentum +81% |
| WELL | Real Estate | 3.5% | 9.500 | $215.79 | $2,050 | $234.85 | $2,231 | +$181 | +9.0% | May 1, 2026 | $216.91 | new: ranked 28 of 30, 12-1 momentum +33% |
| PBF | Energy | 3.5% | 26.183 | $82.41 | $2,158 | $84.52 | $2,213 | +$55 | +2.6% | Oct 1, 2026 | $82.34 | new: ranked 6 of 30, 12-1 momentum +142% |
| ROKU | Communication Services | 3.5% | 14.253 | $146.56 | $2,089 | $154.54 | $2,203 | +$114 | +6.0% | Aug 3, 2026 | $145.84 | new: ranked 23 of 30, 12-1 momentum +53% |
| MRK | Healthcare | 3.5% | 14.991 | $143.92 | $2,158 | $145.95 | $2,188 | +$30 | +1.5% | Oct 1, 2026 | $143.81 | new: ranked 14 of 30, 12-1 momentum +92% |
| FIVE | Consumer Cyclical | 3.4% | 9.748 | $221.35 | $2,158 | $222.72 | $2,171 | +$13 | +0.7% | Oct 1, 2026 | $221.17 | new: ranked 20 of 30, 12-1 momentum +59% |
| JBHT | Industrials | 3.4% | 9.489 | $227.38 | $2,158 | $228.78 | $2,171 | +$13 | +0.7% | Oct 1, 2026 | $227.20 | new: ranked 12 of 30, 12-1 momentum +99% |
| FCX | Basic Materials | 3.4% | 31.185 | $69.19 | $2,158 | $69.54 | $2,169 | +$11 | +0.6% | Oct 1, 2026 | $69.28 | new: ranked 10 of 30, 12-1 momentum +106% |
| BNY | Financial Services | 3.4% | 14.980 | $158.44 | $2,373 | $143.30 | $2,147 | −$227 | -10.7% | Sep 1, 2026 | $160.51 | new: ranked 24 of 30, 12-1 momentum +50% |
| ILMN | Healthcare | 3.4% | 8.113 | $207.46 | $1,683 | $262.54 | $2,130 | +$447 | +26.7% | Sep 1, 2026 | $207.13 | new: ranked 10 of 30, 12-1 momentum +107% |
| TGT | Consumer Defensive | 3.4% | 13.758 | $163.43 | $2,248 | $154.26 | $2,122 | −$126 | -5.8% | Sep 1, 2026 | $163.75 | new: ranked 22 of 30, 12-1 momentum +54% |
| AGNC | Real Estate | 3.3% | 240.882 | $8.96 | $2,158 | $8.72 | $2,100 | −$57 | -2.6% | Oct 1, 2026 | $8.95 | new: ranked 30 of 30, 12-1 momentum +25% |
| ATI | Industrials | 3.3% | 11.279 | $200.41 | $2,260 | $185.59 | $2,093 | −$167 | -7.6% | Sep 1, 2026 | $200.95 | new: ranked 5 of 30, 12-1 momentum +139% |
| IBKR | Financial Services | 3.3% | 25.124 | $90.12 | $2,264 | $82.69 | $2,078 | −$187 | -8.5% | Sep 1, 2026 | $90.39 | new: ranked 28 of 30, 12-1 momentum +41% |
| GEV | Utilities | 3.2% | 2.183 | $581.96 | $1,271 | $921.20 | $2,011 | +$741 | +141.6% | May 1, 2025 | $382.29 | new: ranked 9 of 30, 12-1 momentum +100% |
| HL | Basic Materials | 3.1% | 126.817 | $15.80 | $2,003 | $15.30 | $1,940 | −$63 | -1.8% | Jul 1, 2026 | $15.59 | new: ranked 8 of 30, 12-1 momentum +205% |
| TWLO | Communication Services | 2.8% | 7.156 | $209.62 | $1,500 | $244.37 | $1,749 | +$249 | +16.8% | Jul 1, 2026 | $209.28 | new: ranked 22 of 30, 12-1 momentum +55% |
| MU | Technology | 2.7% | 1.965 | $831.52 | $1,634 | $878.84 | $1,727 | +$93 | +6.0% | Aug 3, 2026 | $829.50 | new: ranked 2 of 30, 12-1 momentum +801% |
| BE | Industrials | 2.7% | 7.767 | $161.30 | $1,253 | $221.31 | $1,719 | +$466 | +55.4% | Nov 3, 2025 | $142.37 | new: ranked 1 of 30, 12-1 momentum +768% |
| SNDK | Technology | 2.5% | 1.206 | $853.35 | $1,029 | $1,299.30 | $1,567 | +$538 | +109.9% | Mar 2, 2026 | $619.08 | new: ranked 1 of 30, 12-1 momentum +1033% |
| AXTI | Technology | 2.2% | 26.352 | $56.20 | $1,481 | $51.47 | $1,356 | −$125 | -8.3% | Sep 1, 2026 | $56.11 | new: ranked 2 of 30, 12-1 momentum +1970% |
Every trade
4,539 trades in all; the latest 50 below, newest first (up to 300 here; the download has them all). Download the full ledger (CSV). A trade is decided at one day’s close and made at the next day’s close.
| Date | Stock | Action | Weight | Shares | Price | Amount | Fee | Realized gain | Account value | Gain vs start | Why |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Oct 5, 2026 | WBD | sell | 3.3% → to 0.0% | 69.657 | $30.95 | +$2,156 received | $2.16 | +$180 | $65,583 | +$55,583 | delisted or acquired: sold at its last close |
| Oct 1, 2026 | WELL | add | 3.0% → to 3.3% | 0.889 | $226.94 | −$202 paid | $0.20 | $64,677 | +$54,677 | rebalance to target weight | |
| Oct 1, 2026 | WBD | trim | 3.5% → to 3.3% | 3.452 | $30.95 | +$107 received | $0.11 | +$9 | $64,677 | +$54,677 | rebalance to target weight |
| Oct 1, 2026 | VLO | trim | 3.6% → to 3.3% | 0.442 | $408.46 | +$180 received | $0.18 | +$84 | $64,677 | +$54,677 | rebalance to target weight |
| Oct 1, 2026 | TWLO | trim | 4.2% → to 3.3% | 1.900 | $301.27 | +$572 received | $0.57 | +$174 | $64,677 | +$54,677 | rebalance to target weight |
| Oct 1, 2026 | TRV | buy | 0.0% → to 3.3% | 5.966 | $361.64 | −$2,158 paid | $2.16 | $64,677 | +$54,677 | new: ranked 29 of 30, 12-1 momentum +34% | |
| Oct 1, 2026 | TGT | add | 3.1% → to 3.3% | 1.115 | $156.70 | −$175 paid | $0.17 | $64,677 | +$54,677 | rebalance to target weight | |
| Oct 1, 2026 | STLD | sell | 3.1% → to 0.0% | 8.873 | $226.17 | +$2,007 received | $2.01 | −$67 | $64,677 | +$54,677 | left the 500 most traded (or under $5) |
| Oct 1, 2026 | SPG | sell | 3.1% → to 0.0% | 9.887 | $200.81 | +$1,985 received | $1.99 | +$7 | $64,677 | +$54,677 | no longer in the top 30 (ranked 190) |
| Oct 1, 2026 | SNDK | trim | 3.7% → to 3.3% | 0.141 | $1,787.69 | +$253 received | $0.25 | +$132 | $64,677 | +$54,677 | rebalance to target weight |
| Oct 1, 2026 | SN | buy | 0.0% → to 3.3% | 12.001 | $179.78 | −$2,158 paid | $2.16 | $64,677 | +$54,677 | new: ranked 17 of 30, 12-1 momentum +81% | |
| Oct 1, 2026 | RY | sell | 3.1% → to 0.0% | 10.183 | $195.36 | +$1,989 received | $1.99 | −$122 | $64,677 | +$54,677 | left the 500 most traded (or under $5) |
| Oct 1, 2026 | ROST | sell | 3.3% → to 0.0% | 9.056 | $234.10 | +$2,120 received | $2.12 | +$182 | $64,677 | +$54,677 | Consumer Cyclical already has 3 stronger names |
| Oct 1, 2026 | ROKU | add | 3.1% → to 3.3% | 0.942 | $151.26 | −$142 paid | $0.14 | $64,677 | +$54,677 | rebalance to target weight | |
| Oct 1, 2026 | PBF | buy | 0.0% → to 3.3% | 26.204 | $82.34 | −$2,158 paid | $2.16 | $64,677 | +$54,677 | new: ranked 6 of 30, 12-1 momentum +142% | |
| Oct 1, 2026 | NUE | add | 3.0% → to 3.3% | 0.898 | $235.98 | −$212 paid | $0.21 | $64,677 | +$54,677 | rebalance to target weight | |
| Oct 1, 2026 | MU | trim | 3.8% → to 3.3% | 0.254 | $1,097.39 | +$278 received | $0.28 | +$68 | $64,677 | +$54,677 | rebalance to target weight |
| Oct 1, 2026 | MRK | buy | 0.0% → to 3.3% | 15.003 | $143.81 | −$2,158 paid | $2.16 | $64,677 | +$54,677 | new: ranked 14 of 30, 12-1 momentum +92% | |
| Oct 1, 2026 | MPC | sell | 3.5% → to 0.0% | 5.410 | $420.15 | +$2,273 received | $2.27 | +$614 | $64,677 | +$54,677 | Energy already has 3 stronger names |
| Oct 1, 2026 | MNST | add | 3.0% → to 3.3% | 5.146 | $42.14 | −$217 paid | $0.22 | $64,677 | +$54,677 | rebalance to target weight | |
| Oct 1, 2026 | KO | sell | 3.2% → to 0.0% | 23.686 | $86.10 | +$2,039 received | $2.04 | −$34 | $64,677 | +$54,677 | Consumer Defensive already has 3 stronger names |
| Oct 1, 2026 | JBHT | buy | 0.0% → to 3.3% | 9.496 | $227.20 | −$2,158 paid | $2.16 | $64,677 | +$54,677 | new: ranked 12 of 30, 12-1 momentum +99% | |
| Oct 1, 2026 | JAZZ | sell | 3.1% → to 0.0% | 8.502 | $233.01 | +$1,981 received | $1.98 | −$93 | $64,677 | +$54,677 | left the 500 most traded (or under $5) |
| Oct 1, 2026 | ILMN | trim | 4.1% → to 3.3% | 1.884 | $265.72 | +$501 received | $0.50 | +$110 | $64,677 | +$54,677 | rebalance to target weight |
| Oct 1, 2026 | IBKR | add | 3.0% → to 3.3% | 2.221 | $85.81 | −$191 paid | $0.19 | $64,677 | +$54,677 | rebalance to target weight | |
| Oct 1, 2026 | HL | add | 2.8% → to 3.3% | 18.492 | $17.00 | −$314 paid | $0.31 | $64,677 | +$54,677 | rebalance to target weight | |
| Oct 1, 2026 | GM | sell | 3.0% → to 0.0% | 24.247 | $79.31 | +$1,923 received | $1.92 | −$200 | $64,677 | +$54,677 | Consumer Cyclical already has 3 stronger names |
| Oct 1, 2026 | GEV | trim | 3.5% → to 3.3% | 0.121 | $987.45 | +$119 received | $0.12 | +$49 | $64,677 | +$54,677 | rebalance to target weight |
| Oct 1, 2026 | FIX | sell | 3.5% → to 0.0% | 1.333 | $1,685.29 | +$2,247 received | $2.25 | +$1,056 | $64,677 | +$54,677 | Industrials already has 3 stronger names |
| Oct 1, 2026 | FIVE | buy | 0.0% → to 3.3% | 9.755 | $221.17 | −$2,158 paid | $2.16 | $64,677 | +$54,677 | new: ranked 20 of 30, 12-1 momentum +59% | |
| Oct 1, 2026 | FCX | buy | 0.0% → to 3.3% | 31.143 | $69.28 | −$2,158 paid | $2.16 | $64,677 | +$54,677 | new: ranked 10 of 30, 12-1 momentum +106% | |
| Oct 1, 2026 | EAT | buy | 0.0% → to 3.3% | 11.103 | $194.33 | −$2,158 paid | $2.16 | $64,677 | +$54,677 | new: ranked 18 of 30, 12-1 momentum +72% | |
| Oct 1, 2026 | DINO | trim | 3.5% → to 3.3% | 0.784 | $112.70 | +$88 received | $0.09 | +$19 | $64,677 | +$54,677 | rebalance to target weight |
| Oct 1, 2026 | CRL | buy | 0.0% → to 3.3% | 7.522 | $286.83 | −$2,158 paid | $2.16 | $64,677 | +$54,677 | new: ranked 13 of 30, 12-1 momentum +96% | |
| Oct 1, 2026 | CNC | sell | 3.0% → to 0.0% | 31.765 | $60.99 | +$1,937 received | $1.94 | −$92 | $64,677 | +$54,677 | Healthcare already has 3 stronger names |
| Oct 1, 2026 | CASY | sell | 2.6% → to 0.0% | 2.702 | $619.50 | +$1,674 received | $1.67 | −$621 | $64,677 | +$54,677 | Consumer Cyclical already has 3 stronger names |
| Oct 1, 2026 | BNY | add | 2.9% → to 3.3% | 2.083 | $143.92 | −$300 paid | $0.30 | $64,677 | +$54,677 | rebalance to target weight | |
| Oct 1, 2026 | BE | trim | 4.2% → to 3.3% | 1.926 | $277.58 | +$535 received | $0.53 | +$224 | $64,677 | +$54,677 | rebalance to target weight |
| Oct 1, 2026 | AXTI | trim | 4.7% → to 3.3% | 10.555 | $81.81 | +$863 received | $0.86 | +$271 | $64,677 | +$54,677 | rebalance to target weight |
| Oct 1, 2026 | ATI | add | 3.0% → to 3.3% | 0.977 | $191.14 | −$187 paid | $0.19 | $64,677 | +$54,677 | rebalance to target weight | |
| Oct 1, 2026 | AGNC | buy | 0.0% → to 3.3% | 241.073 | $8.95 | −$2,158 paid | $2.16 | $64,677 | +$54,677 | new: ranked 30 of 30, 12-1 momentum +25% | |
| Oct 1, 2026 | ADM | buy | 0.0% → to 3.3% | 27.133 | $79.52 | −$2,158 paid | $2.16 | $64,677 | +$54,677 | new: ranked 26 of 30, 12-1 momentum +39% | |
| Live forward test starts here: Sep 29, 2026. Above: decided each day from that day’s data. Below: backtest. | |||||||||||
| Sep 1, 2026 | WELL | trim | 3.4% → to 3.3% | 0.070 | $240.42 | +$17 received | $0.02 | +$2 | $62,161 | +$52,161 | rebalance to target weight |
| Sep 1, 2026 | WDC | sell | 2.8% → to 0.0% | 3.830 | $450.44 | +$1,725 received | $1.73 | −$365 | $62,161 | +$52,161 | Technology already has 3 stronger names |
| Sep 1, 2026 | WBD | buy | 0.0% → to 3.3% | 73.222 | $28.32 | −$2,074 paid | $2.07 | $62,161 | +$52,161 | new: ranked 8 of 30, 12-1 momentum +118% | |
| Sep 1, 2026 | VLO | trim | 3.8% → to 3.3% | 0.838 | $361.99 | +$303 received | $0.30 | +$121 | $62,161 | +$52,161 | rebalance to target weight |
| Sep 1, 2026 | TWLO | trim | 3.8% → to 3.3% | 1.203 | $228.65 | +$275 received | $0.28 | +$23 | $62,161 | +$52,161 | rebalance to target weight |
| Sep 1, 2026 | TGT | buy | 0.0% → to 3.3% | 12.664 | $163.75 | −$2,074 paid | $2.07 | $62,161 | +$52,161 | new: ranked 22 of 30, 12-1 momentum +54% | |
| Sep 1, 2026 | TD | sell | 3.2% → to 0.0% | 16.669 | $119.50 | +$1,992 received | $1.99 | −$30 | $62,161 | +$52,161 | left the 500 most traded (or under $5) |
| Sep 1, 2026 | STRL | sell | 2.4% → to 0.0% | 3.303 | $456.10 | +$1,506 received | $1.51 | −$961 | $62,161 | +$52,161 | Industrials already has 3 stronger names |