Lineage: The first stock-selection study in the series, moving from index bank-timing to cross-sectional momentum on Nifty 500, with a new benchmark and a tax model.
The premise
Every study before this one timed a single index. This one changes the subject: rather than deciding when to buy Nifty, it decides which stocks to hold. That is a structural break, and it brings a different benchmark, a different capital structure and, for the first time in the series, a capital gains tax, because a rotating book realises gains where a permanently held index position does not.
The idea under test is the oldest in the factor literature. Stocks that have risen over several months tend to keep rising relative to those that have not. Eligible stocks are ranked by trailing return, the top names are bought and held, and the book rotates at a fixed interval. No fundamental filter, no volatility adjustment, nothing but price.
How the strategy works
Four parameters decide the outcome. Lookback length sets how far back the trailing return is measured. Portfolio size sets how many names are held. Rebalancing frequency sets how often the ranking is recomputed and the book rotated. A trailing stop, where one is used, can close a position between scheduled rebalances.
The grid crosses five portfolio sizes of 10, 20, 30, 40 and 50 stocks, four lookbacks of 3, 6, 9 and 12 months, five rebalancing frequencies of weekly, monthly, three-monthly, six-monthly and annual, and four stop settings of none, 15%, 20% and 25%: 400 raw-signal combinations.
The setup
The surviving file is a pre-catalogue spreadsheet with no producing script anywhere in the tree, and it is the only record of this test. It carries no single full-period return per combination. What it holds instead is a fifteen-year in-sample window running from inception to roughly March 2021, and a five-year out-of-sample window after it.
Selection follows that split honestly. Combinations are ranked on the fifteen-year Calmar, and the five-year result is then reported as the test the ranking has to survive, rather than picking whichever row happens to score best on the holdout itself. That distinction is the whole method here, and the section below shows what it is worth.
The benchmark the original article cited, 11.8% CAGR at a −70.3% maximum drawdown for a Calmar of 0.167, appears nowhere in this grid. It is carried from the published article only, as is its claim that 130 of 400 combinations beat it, which has no full-period figure here to test against.
The best combinations
Ranked by fifteen-year in-sample Calmar, with the following five years shown as the holdout:
| Setup | In-sample Calmar | Holdout CAGR | Holdout max DD | Holdout Calmar |
|---|---|---|---|---|
| 40 stocks, 9-month, annual rebalance, 20% stop | 1.001 | 15.29% | −18.76% | 0.815 |
| 50 stocks, 6-month, annual rebalance, 20% stop | 0.979 | 15.51% | −22.71% | 0.683 |
| 30 stocks, 9-month, annual rebalance, 20% stop | 0.971 | 14.96% | −19.94% | 0.75 |
| 50 stocks, 6-month, annual rebalance, 15% stop | 0.922 | 11.68% | −16.91% | 0.691 |
| 50 stocks, 9-month, annual rebalance, 20% stop | 0.92 | 14.47% | −18.39% | 0.787 |
Rank 1 is exactly the combination the published article named, which is the reassuring half of this rebuild. Its out-of-sample drawdown of −18.76% matches the published figure exactly. Neither of the other two published numbers survives: no row anywhere in the grid produces the published 14.76% CAGR, and the published Calmar of 0.787 belongs to rank 5, a different 50-stock row sharing the same lookback, rebalance and stop. The combination holds; two of its three quoted figures were wrong.
All five leaders rebalance annually and four of the five use a 20% stop, which is the pattern that matters more than any individual row.
What the key parameters do
Rebalancing frequency dominates, and it is the finding that survives the rebuild intact.
| Rebalancing | Average holdout CAGR | Average holdout Calmar |
|---|---|---|
| Weekly | −0.36% | 0 |
| Monthly | 10.19% | 0.218 |
| Three-monthly | 14.27% | 0.379 |
| Six-monthly | 16.12% | 0.537 |
| Annual | 14.45% | 0.560 |
Weekly rebalancing loses money on average across every stop and lookback paired with it. Only the six-monthly and annual settings clear double-digit returns, and annual wins on Calmar with one turnover a year against two.
Stop-loss level does not move in a straight line.
| Stop | Average holdout CAGR | Average holdout max DD | Average holdout Calmar |
|---|---|---|---|
| None | 12.63% | −52.17% | 0.262 |
| 15% | 8.36% | −35.32% | 0.366 |
| 20% | 10.73% | −38.49% | 0.382 |
| 25% | 12.03% | −42.10% | 0.346 |
Running no stop leaves the average drawdown worse than any stopped variant, which is expected. What is less obvious is that the tightest stop is not the best one: a 15% stop cuts drawdown furthest but gives up the most return, and the 20% setting produces the best average Calmar of the four.
Does the ranking survive
This is the question the fifteen-year and five-year split exists to answer, and here the answer is yes, unusually for this series.
Rank 1's in-sample Calmar of 1.001 and holdout Calmar of 0.815 sit in a similar range: no collapse, and no lucky spike either. Ranks 2 through 5 behave the same way, 0.92 to 0.979 in sample against 0.683 to 0.787 out of it.
Running the comparison the other way shows what the method avoids. The best holdout Calmar anywhere in the 400 rows, 1.15, belongs to a 10-stock, 12-month, annually rebalanced combination with a 15% stop, and beats everything in the table above. Its own in-sample Calmar was 0.467, joint 58th of 400. One strong stretch inflated a mediocre combination into the best-looking result in the grid. Selecting on the holdout would have picked it.
Where it fails
Weekly rebalancing fails outright at every stop and lookback tested, averaging a loss across both windows. At 0.03% per side, weekly rotation compounds into meaningful drag long before any momentum edge can accumulate, and the tax on each realised gain compounds the problem.
The second failure mode is concealed inside the top of the CAGR ranking. The three best holdout-CAGR combinations, all of them small and unstopped, each carried a fifteen-year drawdown worse than −70%, close to the benchmark's own −70.3%. Those are concentrated bets that held the right names for five years rather than risk-controlled strategies, and ranking on return alone would have surfaced them.
The largest caveat is the source. One pre-catalogue spreadsheet with no producing script, no recorded date range and no full-period return per combination is a thin basis for a published result, and nothing here can be re-run.
Verdict
The combination the published article picked is the one this rebuild picks, and it survived its holdout at 15.29% CAGR against an 18.76% drawdown, following an in-sample Calmar of 1.001. Two of the three figures quoted alongside it were wrong, and correcting them is the main contribution of this rebuild. The parameter finding is unchanged and is the part worth carrying forward: rebalancing frequency separates winners from losers, weekly loses money, and six-monthly and annual do not. The combination that looks best on the holdout alone ranked joint 58th in sample and should not be trusted the same way.
Appendix: assumptions and methodology
- Strategy. Strategy 3, described in the output folder's README as the Nifty 500 momentum grid sweep. No script in the tree produces these results; the file predates the catalogue.
- Data and period. Nifty 500 universe, daily open, high, low and close, roughly 2006 to 2026. Exact dates are not recorded in the surviving file and are carried as a gap.
- Source.
Strategy 3/grid_v5_all_results.csv, raw-signal rows only. - Selection method. Rank on the fifteen-year in-sample Calmar, then report the five-year out-of-sample result as the test.
- Windows. One fifteen-year and one five-year window per combination, not a single full-period figure.
- Benchmark. 11.8% CAGR, −70.3% maximum drawdown, Calmar 0.167, as quoted in the original article. No surviving file reproduces this, or its claim that 130 of 400 combinations beat it. Both are carried from the published snapshot only.
- Signal. Total return over the prior 63, 126, 189 or 252 trading days, ranked cross-sectionally, top N selected.
- Grid. Five portfolio sizes, four lookbacks, five rebalancing frequencies, four stop settings: 400 combinations.
- Cost and tax. 0.03% per side, per the original article. 10% flat tax on each realised gain with losses untaxed, the project's default per
docs/METHODOLOGY.md. This is the first study in the series where tax applies at all, because the book rotates. - Not modelled. A full-period return per combination, a year-by-year win rate, brokerage beyond 0.03%, securities transaction tax, stamp duty, slippage, dividend reinvestment, survivorship.
- Withheld. Nothing, and deliberately so here. This study exists to correct figures already published against a named combination, which cannot be done without naming it. The Nifty 500 fundamental-blend studies withhold their winning parameter strings, because those grids carry configuration worth protecting and this one, four standard momentum knobs on a public signal, does not.
Comments
Questions and notes