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:
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:
in_trend = adx(close, 14) > 25
entry = ema(close, 20) > ema(close, 50) and in_trendThis 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
| Metric | Baseline | Final |
|---|---|---|
| CAGR | 14.2% | 21.8% |
| Sharpe | 0.9 | 1.6 |
| Max DD | -18% | -11% |
| Win rate | 54% | 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.