Nifty 50 momentum: a case study in iterative refinement

How a vague hunch about momentum on Nifty 50 turned into a strategy with a 1.6 Sharpe — in under a dozen chat iterations.

April 15, 2026 alphabench team
case-studynifty-50momentum

The starting point

We began with a deliberately vague prompt:

"Build a momentum strategy on Nifty 50."

The planner came back with a baseline: 20-day vs 50-day EMA crossover, equal-weight across constituents, monthly rebalance. The first backtest looked like this:

StrategyNifty 50

Sharpe of 0.9 — better than buy-and-hold, but not exciting.

Iteration 1: filter on regime

We asked for an ADX-based regime filter:

python
in_trend = adx(close, 14) > 25
entry    = ema(close, 20) > ema(close, 50) and in_trend

This trimmed whipsaw trades during sideways markets. Sharpe moved to 1.2.

Iteration 2: rank by relative strength

Instead of equal-weighting, we ranked Nifty 50 names by 90-day relative strength and held the top 10. The platform ran a constituent sweep automatically.

The final result

MetricBaselineFinal
CAGR14.2%21.8%
Sharpe0.91.6
Max DD-18%-11%
Win rate54%61%

Takeaway

The interesting finding wasn't the indicator combination — it was the workflow. The same analyst would have spent days writing scaffolding code. With alphabench it took an afternoon of conversation. The bottleneck shifts from implementation to ideation.