Indian ETF setup scanner

Analyses every NSE-listed ETF it can retrieve and ranks the ten with the strongest combined evidence for a +5% move within 5–10 trading days. A research tool built on historical statistics — not investment advice.

Not yet analysed. Press Refresh & reanalyze to retrieve data.

Four separate measures

Every ETF gets all four. They answer different questions and are never combined into one claim.

Probability

How often comparable past setups in this ETF touched +5% within the window, adjusted toward its long-run base rate.

Confidence

How robust that probability is: sample size, data quality, indicator agreement, stability over time, liquidity.

Risk

How severe adverse movement could be: volatility, drawdowns, worst historical outcomes. Higher means riskier.

Overall score

How strongly the ETF aligns with the full weighted multi-factor model. Weights are editable assumptions.

Market regime

Positive when NIFTY 50 closes above its 50-day average, the 50-day is above the 200-day, and the 20-day return is positive. Negative when at most one holds.

No data yet

TOP 10 HIGH-CONFIDENCE ETF SETUPS

The ranked list appears here after the first analysis run.

Comparison matrix

The raw evidence behind the ranking, side by side, so you can inspect it rather than trust the order.

Waiting for analysis.

Research summary

Waiting for analysis.

Full universe

Every ETF the run attempted, with its status and the reason for any exclusion.

Waiting for analysis.

Methodology

Data. Daily OHLCV (split/dividend adjusted) from Yahoo Finance via api.php. Universe, category, underlying index, iNAV and LTP from the uploaded NSE ETF market-watch file (NSE website → ETFs → download CSV); without a file, NSE's live API when reachable, else the list in etf_meta.json. A first pass skips debt/liquid ETFs and ETFs whose traded value in the file is below the cutoff, before any history is fetched; they are listed in the Full universe table. Each ETF's last Yahoo close is cross-checked against the file's price. Premium/discount uses iNAV vs LTP from the file or NSE API, or AMFI's published NAV against the same day's close when an ISIN is known. AUM, expense ratio, tracking difference and inception date come only from etf_meta.json or Settings — they are never estimated. Expense ratio carries zero weight by default: over a 5–10 day hold it costs roughly 0.02%.

Tracking error. An official figure entered in etf_meta.json is used when present. Otherwise the app calculates a price-based tracking error: the annualised standard deviation of the gap between the ETF's daily close-to-close return and its underlying index's daily return over the last ~250 sessions (minimum 120). This uses market price, not NAV, so it also captures premium swings and stale prices, and reads higher than official NAV-based figures. Where Yahoo has no series for the index (gold, silver, many thematic indices) and at least three ETFs share the underlying, each is measured against the median daily return of that peer group. Each ETF is then ranked against peers measured the same way; the tracking score blends the absolute level (0.2% → 100, 3% → 0) with that rank. Tracking difference is not calculated because Yahoo index series exclude dividends.

Probabilities. For each past day, the 5D and 10D windows record whether the intraday high touched +5% (target-hit) and whether the close finished at least +5% (terminal). Historical analogs are past days whose 12-feature setup (RSI14, MACD histogram, 5D and 20D returns, distance from SMA20/SMA50, SMA50/SMA200, volume ratio, 20D volatility, ATR%, Bollinger %B, distance from prior 20D high) lies within a root-mean-square z-distance of the current day. Overlapping days are collapsed into non-overlapping episodes (Neff). Shown probability = (analog rate × Neff + base rate × k) / (Neff + k), with k set in Settings.

Expected move. One standard deviation of log returns over H days, using the average of 20D and 60D realised daily volatility. z = ln(1.05) / expected move. Highly plausible ≤ 0.75, plausible ≤ 1.25, challenging ≤ 2, historically unusual > 2.

Cross-sectional scores. Momentum, relative strength and part of liquidity and historical behaviour are percentiles within the analysed universe, so they describe standing relative to other ETFs today. Missing factor inputs are scored as a neutral 50 and listed on the card.

Selection. Ineligible ETFs (too little history, insufficient traded value, too many zero-volume days, low data quality, stale data) are removed. Remaining ETFs are ordered by a blend of overall score, confidence and 10D probability percentile. ETFs tracking the same underlying index, or whose last-120-day daily returns correlate above the threshold, form exposure clusters; by default only one ETF per cluster enters the Top 10.

Settings

Saved in this browser. Changes apply on the next analysis run.

Overall score weights (%)

Top 10 selection blend

Eligibility and model

NSE ETF file

Extra ETF symbols

NSE symbols, space or comma separated. Added to the universe on every run.

Fund data overrides (JSON)

Same shape as funds in etf_meta.json, for example {"NIFTYBEES":{"ter_pct":0.04,"aum_cr":45000}}. Enter only verified figures.