How a trade gets picked here
Everything on this site is computed from end-of-day data by rules you can read below. Nothing is discretionary. A name becomes a setup card only when it passes all three gates on the same evening. Each page shows the evidence behind the number so you can disagree with it.
Hard filters on fundamentals, promoter and institutional holdings, pledges and exchange surveillance. One failure disqualifies the stock, caps its score at 4.9 and keeps it off the cards. The stock page says exactly which rule failed and by how much.
Four sub-scores, each 0 to 10, weighted: F × 0.3, T × 0.25, M × 0.2, B × 0.25. F is fundamentals quality, T is technical strength, M is macro and sentiment (not yet sourced, held neutral), B is the stock's own backtest of the trigger. Setup at ≥ 8.0, watchlist at ≥ 6.5.
The entry rule must fire on tonight's bar. Default: close above the prior 20-day high on at least 1.5× average volume. The backtest term B measures how this exact rule has done on this stock over the last 250 sessions, counting only days the shield passed.
Shield rules 14 rules · shield_rules.yaml
| Rule | Field | Test | Applies to | If missing |
|---|---|---|---|---|
| Debt-to-Equity < 0.5 for non-financials | debt_to_equity | < 0.5 | non_financial | fail |
| Capital adequacy ratio > 15% for banks/NBFCs | capital_adequacy_ratio_pct | > 15.0 | financial | fail |
| Net NPA < 1.0% for banks/NBFCs | net_npa_pct | < 1.0 | financial | fail |
| Promoter holding >= 40% (mid caps; waived for large caps per decision 2026-10-17) | promoter_holding_pct | >= 40.0 | mid | fail |
| Promoter holding >= 50% (small caps) | promoter_holding_pct | >= 50.0 | small | fail |
| Promoter pledge < 2% of promoter holding | promoter_pledge_pct | < 2.0 | all | fail |
| FII + DII > 10% (mid and small caps) | fii_dii_pct | > 10.0 | mid, small | fail |
| FII + DII not falling by more than 0.5 pp over 4 quarters | fii_dii_change_4q_pp | >= -0.5 | mid, small | skip |
| Not in any ASM / GSM stage | in_asm_gsm | == False | all | fail |
| No audit qualification or mid-term auditor resignation in last 3 FY | audit_red_flag_3y | == False | all | skip |
| 3-year average ROCE >= 12% (non-financials) | roce_3y_avg_pct | >= 12.0 | non_financial | fail |
| 3-year average ROE >= 12% | roe_3y_avg_pct | >= 12.0 | all | fail |
| US revenue share < 5% (mid and small; waived for large caps per decision 2026-10-17) | us_revenue_share_pct | < 5.0 | mid, small | skip |
| Positive revenue and PAT compounding over last 3 FY | revenue_pat_positive_cagr_3y | == True | all | skip |
Triggers triggers.yaml
close > hh20 and volume > 1.5 * vol_avg20close > ema50 and low <= ema20 and close > ema20Technical signal score signals.yaml · shown on the screener
Score sums trend (close vs 50-day average), MACD vs its signal line, RSI momentum and 20-day breakouts/breakdowns. +2 or more is bullish, -2 or less is bearish. A breakout is volume-confirmed when volume is at least 1.5x its 20-day average. Informational only, not advice.
| Check | Condition | Points |
|---|---|---|
| Price above 50-DMA | close > sma50 | +1 |
| Price below 50-DMA | close < sma50 | -1 |
| MACD above signal | macd_line > macd_signal | +1 |
| MACD below signal | macd_line < macd_signal | -1 |
| RSI momentum positive (>55) | rsi14 > 55 | +1 |
| RSI momentum negative (<45) | rsi14 < 45 | -1 |
| RSI overbought (>70) | rsi14 > 70 | +0 |
| RSI oversold (<30) | rsi14 < 30 | +0 |
| Close above 20-day high | close > hh20 | +1 |
| Close below 20-day low | close < ll20 | -1 |
| Volume above 1.5x 20-day average | volume >= 1.5 * vol_avg20 | +0 |
Fundamentals fundamentals.yaml · source Trendlyne · shown on every stock page
Fundamentals are the balance-sheet side of the picture: how profitable the business is, whether it is growing, how much it owes, and who owns it. The shield turns the worst of these into hard disqualifiers; the F sub-score rewards the best. Ratios are annual and update when results are filed; holdings update each quarter.
- ROCE 3-yr average
- Return on capital employed. Operating profit per rupee the business ties up. Above 12% clears the shield; 20%+ is excellent.
- ROE 3-yr average
- Return on equity. Profit per rupee of shareholder money. Above 12% clears the shield.
- Debt / equity (non-financial)
- Total borrowings divided by equity. Below 0.5 means the business is not leaning on lenders.
- Capital adequacy (financial)
- Capital a lender holds against its risk-weighted loans. Regulators want roughly 11%; the shield asks for 15%.
- Net NPA (financial)
- Bad loans after provisions
- Revenue growth 3-yr CAGR
- Compound annual growth in sales over three financial years. The shield wants both revenue and profit compounding.
- Profit growth 3-yr CAGR
- Compound annual growth in net profit over three financial years. The shield wants both revenue and profit compounding.
- Promoter holding
- Share held by the founders or parent. Skin in the game; the shield wants 40% for mid caps and 50% for small caps.
- Promoter pledge of their holding
- Share of the promoter stake pledged as loan collateral. Pledges above 2% can force selling when the price falls.
- Foreign institutions FII
- Foreign portfolio investors.
- Domestic institutions DII
- Mutual funds
- FII + DII
- Combined institutional ownership. Above 10% means professionals have done the diligence.
- Institutional change 4 quarters
- Change in institutional holding over the last four quarters
On the stock page each row carries the shield verdict (✓ pass, ✗ fail, – skipped) and, where the F sub-score uses it, the mapped 0–10 component score. Field coverage across the universe is on the Data page.
Glossary
- ATR
- Average true range: typical daily movement in rupees. Stops and entry zones are sized in ATRs so volatile names get wider stops.
- R, R-multiple
- One R is the rupees risked per share (entry minus stop). A +2R trade made twice its risk; expectancy is the average R per trade.
- Win rate, profit factor
- Share of backtested trades that closed positive; gross wins divided by gross losses. Both are only meaningful with enough trades (minimum 8).
- RSI (14)
- Momentum oscillator from 0 to 100. Above 70 is overbought, below 30 oversold.
- MACD (12, 26, 9)
- Difference of two exponential averages and its 9-day signal line. Line above signal is bullish; the histogram is the gap between them.
- SMA / EMA
- Simple and exponential moving averages of the close. Price above the 50-day average counts as an uptrend here.
- Volume confirmation
- Today's volume divided by its 20-day average. Breakouts on 1.5× or more are treated as confirmed.
- ASM / GSM
- NSE surveillance lists. Names on them are disqualified regardless of score.