๐Ÿ‡ฎ๐Ÿ‡ณ India Stock Screener โ† Switch market โ˜… Elite Club โšก StockGenie AI

How to Understand This Site

A guided tour of every page, screener, signal, color and column on this website โ€” what it measures, how it is computed, and how to use it without surprises.

1. Site map — what each page is for

Every page on this site is generated nightly from a local cache of market data and lives under /site/. Top navigation:

Menu itemPageUse it when…
Screens → Ready ScreensIND_Stock_Screener.htmlYou want a curated list (e.g. “low P/E”, “golden cross”).
Screens → Technical Screenertechnical.htmlYou trade short-term and want hourly Buy / Sell signals.
Screens → Swing Screenerswing.htmlYou hold 2–20 days and want daily-chart setups with R:R ≥ 3.
Screens → Custom Screenercustom.htmlYou want to combine your own rules client-side.
All Stocksstocks.htmlBrowse the full universe sorted by market cap.
Newsnews.htmlLive RSS headlines from CNBC, Reuters, Bloomberg and more.
Learnlearn.htmlFree curriculum (incl. this module).
Sectors/sectors/<slug>.htmlDrill into a single sector.
Per-stock/stocks/<TICKER>.htmlFull company profile.

2. Universe toggle (All / NIFTY50)

Top-right of every page. Switches the visible rows between:

  • All — all tracked India universe members.
  • NIFTY50 — only NIFTY 50 members.

Your choice is saved in localStorage, so it persists across pages and visits. The little colored badges next to a ticker (e.g. NIFTY50) show membership.

3. Ready Screens (22 hand-curated)

Defined in screens.py. Grouped into six families:

GroupExamplesWhat it answers
ValuationLow P/E, High P/E, High Dividend, Low P/B, Low EV/EBITDAIs it cheap or expensive?
QualityHigh ROE, High Margin, Strong FCF, Low DebtIs the business actually good?
GrowthHigh Revenue Growth, High Earnings GrowthIs it growing fast?
Price & VolumeNear 52w High/Low, Golden/Death Cross, RSI Oversold/OverboughtWhat is price doing right now?
PerformanceTop YTD, Worst YTD, 3M Momentum LeadersWho's winning lately?
SizeMega Cap, Smallest in NIFTY50Filter by company size.

Each screen card on the home page shows a live count for All / NIFTY50 based on the universe toggle.

4. Custom Screener

custom.html ships the entire stock dataset to the browser as JSON, so filters run instantly client-side. You add rules like "P/E < 25 AND ROE > 20% AND Revenue Growth > 10%". Useful when none of the 22 ready screens match exactly what you want.

5. Technical Screener (Hourly / 1H)

technical.html — intended for intraday to short-term traders. Computed from ~60 days of 1-hour candles per ticker (falls back to daily if a ticker has no intraday data).

ColumnMeaning
TrendStrong Bullish → Strong Bearish (5 buckets), based on the trend score (next chapter).
RecommendationBuy / Accumulate / Hold / Reduce / Avoid · Sell.
R:RReward ÷ risk based on Entry / Stoploss / Target.
EntryLatest hourly close price.
StoplossMost recent swing low (long) or high (short), capped at EMA21, with a 1% buffer.
TargetPattern measured-move if available, otherwise 2× risk.
PatternMurphy-style chart pattern detected on the hourly chart.
RSI14-period RSI on the hourly chart.

Filter tabs at the top: All / Bullish / Bearish / Neutral / Breakouts / Breakdowns.

6. Swing Screener (Daily / 1D, R:R ≥ 3)

swing.html — intended for 2- to 20-day holds. Computed from the daily chart with stricter rules:

  • EMAs: 20 / 50 / 200 alignment + slopes.
  • Donchian breakouts: Close above the 20-day high (long) or below the 20-day low (short) flags an automatic breakout / breakdown setup.
  • Pullback setups: In an uptrend (EMA20 > EMA50) with neutral RSI (40–55), a touch of EMA20 (±2%) or EMA50 (±3%) is flagged as a buyable pullback.
  • Stops: max(last swing pivot, 2 × ATR away from price) with a 3% buffer.
  • Targets: larger of pattern measured-move or 3R.
  • Recommendation gate: "Buy" / "Sell" only when the trend is bullish/bearish AND R:R ≥ 3. Otherwise “Watch” / “Avoid”.

Filter tabs: All / Buy · Accumulate / Sell · Reduce / Breakouts / Breakdowns / Pullbacks.

7. Trend score, recommendation & R:R color logic

Trend is a single integer score built by summing votes from EMA alignment, EMA slope, price-vs-EMA, RSI level, and any detected pattern. Bucketing:

ScoreTechnical (1H)Swing (1D)
≥ 5 / ≥ 6Strong BullishStrong Bullish
≥ 2 / ≥ 3BullishBullish
−1 to +1 / −2 to +2NeutralNeutral
≤ −2 / ≤ −3BearishBearish
≤ −5 / ≤ −6Strong BearishStrong Bearish

R:R color rule (both screeners)

  • ≥ 3.00 — high-quality setup; reward justifies risk.
  • 1.00 – 2.99 — marginal; treat as Watch.
  • < 1.00 — you risk more than you can win; skip.

Important: the Swing Screener will downgrade a "Buy" to "Watch" if R:R falls under 3. The Technical Screener does not gate the recommendation, but the R:R color tells you whether to size in.

8. Pattern detection — what we look for

Both screeners scan the last ~90 bars for fractal swing pivots (k=3, per Murphy) and then run pattern checks in priority order. Patterns supported:

  • Head & Shoulders (top & inverse) — with neckline confirmation
  • Double / Triple Top & Bottom — with neckline break
  • Ascending / Descending / Symmetrical Triangles
  • Rising / Falling Wedges
  • Bull / Bear Flags & Pennants
  • Cup & Handle
  • Rectangles
  • Up / Down Channels (HH+HL or LH+LL)

The pattern label includes its state, e.g. (forming), (confirmed), breakout, breakdown. Confirmed patterns contribute a measured-move target used as the screener Target.

9. Stock detail page — section by section

Visit any ticker (e.g. RELIANCE) and you get:

  1. Header — name, sector, index badges, latest price and 1Y return.
  2. Key Ratios tile — Mkt Cap, P/E, P/B, EV/EBITDA, ROCE, ROE, Op Margin, Debt/Equity, Beta.
  3. Pros / Cons — auto-generated (see chapter 11).
  4. Price Chart (1Y) — daily closes; a "Technical Trend" toggle shows hourly, daily & weekly verdicts side-by-side.
  5. Fundamental Growth chart — pick any metric to see its trajectory + CAGR.
  6. Peer comparison — same-sector names with side-by-side ratios.
  7. Quarterly Results, P&L, Balance Sheet, Cash Flows, Ratios — full annual / quarterly tables.
  8. Compounded Growth tiles — 5Y & 1Y for revenue and profit.
  9. Shareholding — insider / institutional / float plus top 10 institutional holders.
  10. Analyst View — mean target, recommendation key and implied upside.

10. Fundamental Growth chart & CAGR coloring

On every stock page below the price chart. Pick a metric from the dropdown; the legend shows the compound annual growth rate (CAGR) across the visible window.

  • Green line/bars — positive CAGR (the metric is compounding upward).
  • Red line/bars — negative CAGR (the metric is shrinking).
  • Blue — CAGR cannot be computed (e.g. negative starting value).

Available metrics: Revenue, Gross Profit, Operating Income, EBITDA, Net Income, Operating Cash Flow, Free Cash Flow, CapEx, Total Assets / Equity / Debt, Cash, Diluted EPS, and ratio metrics (Gross / Operating / Net Margin %, ROE %, ROCE %).

Caveat: the chart automatically extends to whatever history is available from the underlying data source.

11. Pros & Cons auto-generation

Generated by make_pros_cons() in build.py. Thresholds:

FlagPro if…Con if…
ROE> 20%
ROCE> 20%
Profit Margin> 20%
Revenue 5Y CAGR> 10%< 0%
Profit 5Y CAGR> 10%< 0%
Dividend Yield> 2.5%
Free Cash Flow> 0
50DMA vs 200DMA50 > 200 (uptrend)50 < 200 (downtrend)
P/E> 50
Debt / Equity> 200
Distance from 52w high< −25%
RSI> 75 (overbought) or < 25 (oversold)

Up to 6 entries are shown per side.

12. Sector pages & peer comparison

Each sector has its own page (linked from the home page sector list). The peer table on a stock page shows the top sector siblings sorted by market cap, plus the stock itself highlighted at the top.

13. News, Learn and the chart icons

  • News page pulls live RSS feeds from India-focused publishers entirely client-side — no server.
  • Learn is the curriculum you are reading now.
  • The two small icons next to every ticker open the live chart on Robinhood and TradingView (1H or 1D depending on the page).

14. Data sources, refresh and known limits

AspectDetail
SourceCached market data via the yfinance Python library.
UniverseNIFTY 50 (expandable with more India universes).
Daily history1 year of daily closes per ticker.
Hourly history~60 trading days of 1-hour candles per ticker (~414 bars).
Annual statementsTypically 4 years, sometimes 3.
Cachedata/cache/<TICKER>.json; refresh window 24h.
Refresh scheduleRun update.ps1 or the registered Windows task; calls fetch_data.py + build.py.
Force refreshpython fetch_data.py --force

Known limits:

  • Free yfinance gives only 4y of annual statements — the Fundamental Growth chart cannot show 10y today.
  • Only 60d of intraday is available for free — the Technical Screener uses what is available.
  • If the data feed rate-limits, run with the curl_cffi session (already enabled).
  • This site is informational. Not investment advice. Confirm signals on a real charting platform before trading.

15. Glossary & FAQ

EMA(n)
Exponential moving average over n bars; weights recent prices more than SMA.
RSI(14)
Relative Strength Index over 14 bars (Wilder); 0–100 momentum oscillator.
ATR(14)
Average True Range over 14 bars; a volatility measure used to size stops on the swing screener.
Donchian(20)
Highest high / lowest low of the last 20 bars; a classic breakout boundary.
Swing pivot
A bar whose high (or low) is strictly more extreme than the k bars on each side.
Measured move
The pattern's height projected from the breakout point as a price target.
R
One unit of risk = entry − stoploss (long). 3R target = three times that distance.
R:R
Reward ÷ risk. We require ≥ 3 for the swing screener Buy/Sell rating.
NIFTY50
NIFTY 50 membership badge.
CAGR
Compound Annual Growth Rate. (end/start)^(1/years) − 1.
Free Cash Flow
Operating cash flow minus capital expenditure; what's left for shareholders.
ROCE
Return on Capital Employed = EBIT / (Total Assets − Current Liabilities).

FAQ

Q. Why does my favorite small-cap not appear?
The default universe is currently NIFTY50. Add it to tickers.py and re-run fetch_data.py.

Q. The screener says “Buy” — should I just buy?
No. Always confirm the signal on a real chart, check earnings dates, and respect position-sizing (see the Risk Management module).

Q. The Fundamental Growth chart only shows 4 bars. Where's 10 years?
The free feed only returns 4y of annuals. The chart auto-extends if you supply a longer-history source.

Q. Why are some tickers missing from the Technical Screener?
If a ticker has fewer than 40 bars of history (recent IPOs), the technical scoring returns None and the row is dropped.