Asset panel, trend, momentum and the portfolio lab
Code:
pipeline/tipsheet/compute/assets.pytrend.py,momentum.pyportfolio_lab.py,aftertax.pypublish/models.py,publish/lab.py
Bundles: models/* and lab/*.
Rules and results: the rules are pre-registered, so results can’t be fitted after the fact:
docs/research/trend_momentum_spec.mddocs/research/portfolio_lab_spec.md
Each spec logs its results, including the null ones.
The asset panel
Daily growth-of-₹1 series for each asset class:
| Asset | Source | Notes |
|---|---|---|
| Equity | NSE total-return indices: Nifty 50, Next 50, 100, 500, Midcap 150, Smallcap 250 and others | Bad prints repaired (see indices.md) |
| Gold | World Gold Council INR price, from 2005 | The domestic price including import duty, which is what Indian gold ETFs track. Before 2005, it is ratio-linked to the USD price × USD/INR. The duty premium is 1–2% before 2012, 8–15% after the 2012–13 hikes and about 5% after the 2024 cut |
| G-sec | NSE 5-year benchmark G-sec index (total return), from 2001 | A 5-year bond, not a broad bond index |
| Cash | Accrues the 91-day T-bill yield, using only yields already published | 2012–2025 CAGR 6.66%, against 6.26% for NSE’s 1-day rate index |
Backtest rules common to all models
-
No look-ahead. Signals use the close of day t, and trades happen at the close of day t+1.
-
Trading cost: 0.10% of value traded, each way.
-
Annual running costs while invested:
Equity Gold G-sec Cash 0.15% 0.50% 0.20% 0.20% -
Multiple testing: the deflated Sharpe ratio (Bailey and López de Prado, 2014), counting every trial honestly.
-
Periods reported: full sample, each half, and 2012 onward.
After-tax results (aftertax.py)
- Capital gains are taxed by sale date and holding period. Lots are matched first in, first out.
- Equity:
- STCG at 30%, then 10%, 15% and 20%
- LTCG at 10%, then 0%, 10% and 12.5%
- The rates step at the 2004, 2008, 2018 and 2024 changes.
- January 2018 prices are grandfathered.
- Debt, gold and liquid funds:
- short-term gains at the 30% slab
- long-term gains at 20%, with no indexation
- the 2023 “specified fund” rule
- gold LTCG at 12.5% from 2024-07-23
- Simplifications: everything is sold at the end. Cess, the annual exemption and loss set-off are ignored.
Headline results
These were logged on 2026-10-01, with data to 2026-09-25.
Trend rules:
- They roughly halve large-cap drawdowns.
- None is significant after deflation.
- After tax, they trail buy-and-hold on every large-cap index, by 1.9–6.1 points a year.
Sector momentum: not significant.
Portfolio lab (2002-10 to 2026-09):
- 60/20/20 beat 60/40 (16.4% vs 14.7% CAGR), and did so in 76% of rolling 5-year windows.
- The permanent and equal-three mixes had the best Sharpe (0.89).
- Tactical portfolios lost 1.6–2.8 points a year to tax.