All screens

Technical & Price Action

Buying Zone — 50 DMA with Quality Filter

Buying Zone — 50 DMA with Quality Filter is a Technical & Price Action screen. It checks every NSE-listed stock against 3 conditions computed from nightly data, after excluding heavily pledged promoters and very small market caps. This page explains the rule, each figure and its source. It lists no stocks and is not advice.

What it does and why

The 50-day moving average pullback is one of the most widely used technical entry frameworks in growth investing and swing trading. In a stock that is in a healthy uptrend, price typically oscillates above and below the 50 DMA, and pullbacks to or near the 50 DMA represent re-entry opportunities at lower prices without needing to time the exact trough. The quality filter separating this screen from a pure 50 DMA pullback scan is essential: pullbacks to the 50 DMA in low-quality businesses can be the beginning of a prolonged downtrend, while pullbacks in high-quality businesses (ROE >10%, ROCE >10%) are more likely to be temporary consolidations before the uptrend resumes. The 3% tolerance band (0.97 to 1.03 price-to-50DMA ratio) is deliberately tight — it captures genuine pullback zones rather than stocks that are simply below their 50 DMA. This is a shorter-horizon entry signal compared to the 200 DMA screens in our screener library.

The rule, step by step

A stock must satisfy every condition below. Conditions are grouped under the pillar they test.

Technical Entry Zone

  • |% Above 50-Day SMA| ≤ 5

Fundamental Quality Gate

  • ROE ≥ 10
  • ROCE ≥ 15

Hard excludes

  • Promoter pledge above 30% of the promoter's holding
  • Market cap below ₹500 crore
Passes the screen

Ranked by ROCE, highest first.

The figures it uses

% Above 50-Day SMA

Used in a condition
Formula
(Close − 50-day SMA) ÷ 50-day SMA × 100
Input fields
close, sma_50
Source of record
Upstox · public historical candles, NSE_EQ|{ISIN} (no auth)FinEdge · /api/v1/daily-quotes/{symbol} (fallback)
Corporate actions
Adjusted for corporate actions before use
Refresh
Recomputed nightly (06:30 IST job); rows older than 3 days are excluded from screens

ROE

Used in a condition
Formula
Latest annual PAT ÷ total equity × 100, only when equity is positive
Input fields
pat, total equity
Source of record
FinEdge · /api/v1/financials/{symbol}?statement_code=pl&period=annualFinEdge · /api/v1/financials/{symbol}?statement_code=bs&period=annual
Refresh
Recomputed nightly (06:30 IST job); rows older than 3 days are excluded from screens

ROCE

Used in a condition
Formula
Latest annual EBIT ÷ (total assets − current liabilities) × 100, only when that capital employed is positive
Input fields
ebit, total assets, current liabilities
Source of record
FinEdge · /api/v1/financials/{symbol}?statement_code=pl&period=annualFinEdge · /api/v1/financials/{symbol}?statement_code=bs&period=annual
Refresh
Recomputed nightly (06:30 IST job); rows older than 3 days are excluded from screens

Promoter Pledge

Hard exclude input
Formula
Pledged shares as a share of the promoter's own holding: pledgedSharesPct ÷ promoter holding × 100; blank when the quarter is not listed
Input fields
pledgedSharesPct, promoter holding
Source of record
FinEdge · /api/v1/shareholdings/summary/{symbol}?period=quarterlyFinEdge · /api/v1/shareholdings/pattern/{symbol}?period=quarterly
Refresh
Recomputed nightly (06:30 IST job); rows older than 3 days are excluded from screens

Market Cap

Hard exclude input
Formula
Close × paid-up equity shares ÷ 10,000,000 (₹ crore)
Input fields
close, paidUpEquityShares
Source of record
Upstox · public historical candles, NSE_EQ|{ISIN} (no auth)FinEdge · /api/v1/daily-quotes/{symbol} (fallback)FinEdge · /api/v1/shareholdings/summary/{symbol}?period=quarterly
Corporate actions
Adjusted for corporate actions before use
Refresh
Recomputed nightly (06:30 IST job); rows older than 3 days are excluded from screens

What each figure means

Price / 50 DMA Ratio

Ratio of the current closing price to the 50-day simple moving average of closing prices, computed as current_price / mean(close_price, last_50_trading_days).

High is better

ROE (%)

Return on Equity, computed as net profit attributable to shareholders / average shareholders equity * 100, using the most recently reported annual financial statements from FinEdge.

The qualifier threshold is >10%. ROE above 10% confirms the business is generating acceptable returns on equity capital and is not in fundamental distress. Combined with ROCE >10%, the two-axis quality check filters out businesses with financial leverage masking poor underlying returns (ROCE catches this case since it is leverage-neutral).

High is better

ROCE (%)

Return on Capital Employed, computed as EBIT / (total assets - current liabilities) * 100, using the most recently reported annual financial statements from FinEdge.

The qualifier threshold is >10%. ROCE is the leverage-neutral counterpart to ROE — a company with high ROE driven by high debt will fail the ROCE filter. Requiring both ROE >10% and ROCE >10% ensures the business generates genuine operating returns and is not artificially boosted by financial leverage. This combination is the minimum quality bar for this pullback screen.

High is better

Try the rule

Type hypothetical values to see which conditions they satisfy. These are not real stocks and nothing here is stored.

  • |% Above 50-Day SMA| ≤ 5—
  • ROE ≥ 10—
  • ROCE ≥ 15—

Enter values to begin

How sensitive is it?

How many stocks pass if this threshold were set differently. Counts only; no stocks are named.

A worked example

Loading the worked example…

Sign in with a completed risk profile to check any stock against this rule.

Evidence

What the harness measured

We could not measure this screen well enough to say anything yet.

This screen depends on company financials, and we can only test price-based ideas so far, so it could not be measured.

Live monitoring

Not yet testable — 5 of 6 points needed to chart a rolling information coefficient.

  • 5-day IC -0.000 · signal date 2026-10-13 · n 4477
  • 22-day IC -0.006 · signal date 2026-09-10 · n 3881

This is a historical, statistical measurement produced by FINOME TECHNOLOGIES PVT LTD's research harness on past data. It is not a prediction, and past results do not indicate future results. The universe is today's Nifty 500 constituents, so the sample is affected by survivorship bias. It describes how a screen's selections behaved in the past and does not constitute investment advice or a recommendation.

Run this screen

Run this screen

Rule version 1.0.0

Questions

How is this screen calculated?
Each stock is tested against 3 conditions using figures computed from exchange prices and company filings, adjusted for corporate actions. The rule is versioned; this page shows version 1.0.0.
How often does the screen update?
The figures are recomputed once each trading day after the nightly compute. A stock whose figures are more than three days old is left out rather than shown stale.
Is this investment advice?
No. This is educational material describing a screening method. It does not recommend any security and does not consider your circumstances.
Educational use only — GoQuant is a research tool. This page explains a screening method and is not a recommendation. Investment advice is provided by FINOME TECHNOLOGIES PVT LTD (AltQube), SEBI-registered Investment Adviser, registration no. INA000018373, under a signed advisory agreement and after a risk profile. Past performance is not indicative of future results.