Multi-Factor Blend: Momentum + Quality + Low Vol
Three independent sleeves — momentum, quality and low volatility — each selecting and weighting its own 20 names, blended 40/35/25 into a single book. A name picked by two sleeves gets both weights, so conviction compounds where the factors agree.
Why this is expected to work
Every single-factor strategy in this catalog has multi-year stretches of underperformance, and those stretches do not line up. Momentum crashes hardest at market inflections (Daniel and Moskowitz, 2016, documented momentum crashes following bear-market bottoms), value underperformed globally for most of 2015-2020, and low volatility lags badly in a violent recovery. Because the drawdowns are imperfectly correlated, the blend has historically had a materially higher risk-adjusted return than any single leg, and — the part that actually matters — a shallower worst-case drawdown, which is what determines whether a real person is still holding the strategy when it recovers. This is the same argument behind NSE's multi-factor indices. If you only deploy one template from this catalog, the case for it being this one is behavioural, not statistical.
How the pipeline works
NIFTY200 constituent
Keeps rows where nifty200_member == 1
nifty200_member == 1 Liquid: traded > Rs 5 cr/day
Keeps rows where turnover > 50000000
turnover > 50000000 Price 1 month ago
Computes price_1m_ago = @shift(close, 21)
@shift(close, 21) Price 12 months ago
Computes price_12m_ago = @shift(close, 252)
@shift(close, 252) 12-1 momentum
Computes momentum_12_1 = price_1m_ago / price_12m_ago
price_1m_ago / price_12m_ago Top 20 momentum
Selects the top 20 by momentum_12_1
Momentum sleeve sizing
Sizes positions: Equal weighted
NIFTY200 constituent
Keeps rows where nifty200_member == 1
nifty200_member == 1 Liquid: traded > Rs 5 cr/day
Keeps rows where turnover > 50000000
turnover > 50000000 Return on equity
Computes roe = net_profit_annual_consolidated / total_equity_annual_consolidated
net_profit_annual_consolidated / total_equity_annual_consolidated Profitable
Keeps rows where roe > 0
roe > 0 Top 20 quality
Selects the top 20 by roe
Quality sleeve sizing
Sizes positions: Equal weighted
NIFTY200 constituent
Keeps rows where nifty200_member == 1
nifty200_member == 1 Liquid: traded > Rs 5 cr/day
Keeps rows where turnover > 50000000
turnover > 50000000 Has a volatility reading
Keeps rows where annualised_volatility > 0
annualised_volatility > 0 20 calmest
Selects the bottom 20 by annualised_volatility
Low-vol sleeve sizing
Sizes positions: Inverse volatility
What this template teaches
- AllocatorNode — portfolio of strategies in one graph
- Per-sleeve weighting before blending
- Explicit allocation weights across sleeves
- Overlapping selections summing their weights
Why Blending Factors Beats Picking One
Momentum, quality and low volatility all have multi-year droughts, and the droughts do not line up. Combining them produces a shallower worst drawdown — which is what determines whether you are still holding when it recovers.
Related strategy templates
Find the right starting point for your next trading thesis.
Blank Canvas
An empty pipeline on the NSE equity universe with monthly rebalancing and equal weighting. Nothing is screened or ranked — start here when you want to build the whole thesis yourself.
View detailsLow Volatility 30
Holds the 30 calmest large- and mid-caps by realised annualised volatility, sized inversely to that volatility so the quietest names carry the most capital. The construction NSE uses for its Nifty100 Low Volatility 30 index, on the exchange's own published volatility series.
View detailsWatchlist: Select Monthly, Re-Risk Weekly
Two schedules on one canvas. Once a month it picks the eight strongest names from a fixed twelve-stock watchlist; every week it re-sizes what it already holds to equal risk contribution without changing the constituents. Costed against Zerodha's real charge stack, with an in-app alert on every order.
View details