NEYDRANSign in

How it works

Every stock in the Nifty 500 is screened once a day, after the market closes: two screens, the breakout and the trend template, and three setups. None is a prediction. Each is a set of arithmetic rules applied identically to every stock, and this page states every one of them, in plain words first and then as a formula.

The daily run

After NSE publishes the day's closing prices, one nightly run screens every stock in the Nifty 500, roughly the 500 largest listed companies. Only ordinary shares (NSE's EQ series) that closed that day are screened, so a suspended stock is left out rather than scored on an old price.

The screener's list is worked out once per trading day: that run builds the whole list, with each stock's last 60 closes and its delivery figures, and stores it, so every visit until the next close reads the same stored copy.

Every window below counts trading sessions, not calendar days. A figure that needs more history than a stock has, such as a 200-day average for a recent listing, is left blank rather than estimated. A screen for an earlier day uses only the prices and corporate actions known on that day, so running it again gives the same result.

Screen one · the breakout

Looks for a stock that traded quietly in a narrow band, then pushed decisively out of it while unusually many people were trading. All five conditions must hold.

A tight range
Over the 20 trading sessions before the move, the gap between the highest high and the lowest low was no more than 12% of the low. A stock coiling in a narrow band is one where buyers and sellers have reached a truce.
A break above it
The day's close finished above the top of that range, the breakout level. Not an intraday poke through it — the close, which is the price that had to survive the whole session.
On real volume
That day traded at least 1.5× the average volume of the quiet period before it. A breakout nobody showed up for is usually noise.
Recently
The move happened within the last 10 trading sessions, so the list is about what is happening now rather than what happened last quarter.
Still holding
Today's close is still above the breakout level. A stock that met the first four but has since closed back at or below the level is shown as fell back, in yellow, rather than dropped, so a failed move stays visible.

All five must hold: a breakout day BB in the last 10 sessions met the first four, and today's close still meets the fifth.

Tight rangemax⁡H−min⁡Lmin⁡L≤12%\displaystyle \frac{\max H - \min L}{\min L} \le 12\%
Close above itCB>ℓ\displaystyle C_B > \ell
Heavy volumeVB≥1.5×Vˉbase\displaystyle V_B \ge 1.5 \times \bar{V}_{\text{base}}
Recentt−B≤9\displaystyle t - B \le 9
Still aboveCt>ℓ\displaystyle C_t > \ell
max⁡H, min⁡L\max H,\ \min L
the highest high and lowest low of the 20 sessions before BB, the quiet range or base
ℓ\ell
the breakout level: the top of that range, max⁡H\max H
CB, VBC_B,\ V_B
the close and the volume (shares traded) on the breakout day
Vˉbase\bar{V}_{\text{base}}
the average daily volume of the 20 sessions in the base
B, tB,\ t
the breakout day and today, counted in trading sessions
CtC_t
today's close

Screen two · the trend template

Mark Minervini's eight conditions, describing what a stock in a healthy long-term uptrend looks like. Scored out of eight rather than pass/fail, because how close a stock is tells you more than whether it cleared the bar. It needs a year of prices (252 sessions) for the 52-week high and low; with less, the score is blank, not zero.

  1. 01Price above the 150- and 200-day averagesTrading above both long-term averages — the basic definition of being in an uptrend.
  2. 02150-day average above the 200-dayThe medium-term trend is stronger than the long-term one, so the uptrend is still building.
  3. 03200-day average risingThe long-term average is higher than it was about a month ago. Direction, not just position.
  4. 0450-day average above both longer averagesShort-term strength is leading — the stacking order you want in a healthy advance.
  5. 05Price above the 50-day averageThe recent trend is intact too, not only the multi-year one.
  6. 06At least 25% above the 52-week lowFilters out stocks merely bouncing off the bottom.
  7. 07Within 25% of the 52-week highLeaders trade near their highs. A stock far below its high is still repairing damage.
  8. 08Relative strength in the top 30%Over the last year it outperformed at least 70% of the other stocks screened.

Each condition met scores one point, out of eight.

1C>MA150 and C>MA200\displaystyle C > \text{MA}_{150} \text{ and } C > \text{MA}_{200}
2MA150>MA200\displaystyle \text{MA}_{150} > \text{MA}_{200}
3MA200(t)>MA200(t−20)\displaystyle \text{MA}_{200}(t) > \text{MA}_{200}(t - 20)
4MA50>MA150 and MA50>MA200\displaystyle \text{MA}_{50} > \text{MA}_{150} \text{ and } \text{MA}_{50} > \text{MA}_{200}
5C>MA50\displaystyle C > \text{MA}_{50}
6C≥1.25×L52\displaystyle C \ge 1.25 \times L_{52}
7C≥0.75×H52\displaystyle C \ge 0.75 \times H_{52}
8RS≥70\displaystyle \text{RS} \ge 70
CC
today's close
MAN\text{MA}_{N}
the average close of the last NN sessions; MA200(t)\text{MA}_{200}(t) is today's 200-day average and MA200(t−20)\text{MA}_{200}(t-20) its value 20 sessions ago, about a month
H52, L52H_{52},\ L_{52}
the 52-week high and low
RS\text{RS}
the relative-strength percentile, 0 to 100

Three setups

Three patterns, stored for every stock every day so the screener can filter by them. Like the breakout's numbers, 25%, 30 sessions and 10 sessions are reasoned starting points checked by eye on real examples, not values tested against what happened next.

Near the 52-week high
The close is within 25% of the year's highest price: stocks that lead tend to trade near their highs. It is the same test as condition 7 of the trend template, stored on its own so it can be a filter without the other seven, and it is blank until a stock has a year of prices.

Compare today's close with three quarters of the 52-week high.

Ct≥0.75×H52\displaystyle C_t \ge 0.75 \times H_{52}
CtC_t
today's close
H52H_{52}
the 52-week high: the highest price traded in the last 252 sessions
Retest
A breakout that slipped back to the level it broke, then closed above the breakout day's own high: buyers stepped back in where the move started. Falling back is judged at the top of the old range; the retest has to clear the breakout day's high, a higher bar. When several breakouts qualify, the most recent one that fell back decides, and how deep the dip went is not limited.

Counting sessions back from today: the breakout is under 30 sessions old, a later close fell to its level, a close in the last 10 sessions topped the breakout day's high, and none has fallen back since; more volume that day than on the dip makes it stronger.

Breakout1≤t−B≤29\displaystyle 1 \le t - B \le 29
Fell backCs≤ℓ for some s>B\displaystyle C_s \le \ell \text{ for some } s > B
RetestCR>HB\displaystyle C_R > H_B
Recentt−R≤9\displaystyle t - R \le 9
HeldCs>ℓ for R≤s≤t\displaystyle C_s > \ell \text{ for } R \le s \le t
Stronger ifVR>Vˉdip\displaystyle V_R > \bar{V}_{\text{dip}}
tt
today
BB
a day that met the first three breakout conditions on its own day
ℓ\ell
its breakout level, the top of the range it broke
HBH_B
the breakout day's own high, the line a retest must close above
RR
the retest day: the first close above HBH_B after the last close at or below ℓ\ell
CsC_s
the close on session ss
VR, VˉdipV_R,\ \bar{V}_{\text{dip}}
volume on the retest day, and the average volume of the sessions between BB and RR that closed at or below ℓ\ell
Contraction
A stock that rose, then went quiet: the calm that often comes before a breakout. The last check is there because a steady slide is calm too, and it is not a contraction. It does not check that the stock is still near its high (combine it with the filter above), volume drying up on down days, or volatility against the stock's own past.

Compare the 20-session and 60-session volatility, then check the rise before the quiet stretch and the price since it began.

QuietHV20<HV60\displaystyle \text{HV}_{20} < \text{HV}_{60}
After a riseCt−20≥1.25×min⁡(Ct−80,…,Ct−21)\displaystyle C_{t-20} \ge 1.25 \times \min(C_{t-80}, \dots, C_{t-21})
Held upCt≥0.9×Ct−20\displaystyle C_t \ge 0.9 \times C_{t-20}
HVN\text{HV}_{N}
historical volatility over the last NN sessions: how widely the daily moves swing
Ct−20C_{t-20}
the close when the quiet 20 sessions began
min⁡(Ct−80,…,Ct−21)\min(C_{t-80}, \dots, C_{t-21})
the lowest close of the 60 sessions, about three months, before that
CtC_t
today's close

The measures behind them

The building blocks the screens and charts are made of.

Moving averages
A moving average smooths out daily noise so the direction shows. Windows offered: 9, 10 and 20 sessions for short-term entries and exits; 50, 150 and 200, the only ones the trend template uses; and 100, because it is widely watched. Every average here is simple, not exponential.

Add up the last NN closes and divide by NN; each new session pushes the oldest close out.

MAN=Ct+Ct−1+⋯+Ct−N+1N\displaystyle \text{MA}_{N} = \frac{C_t + C_{t-1} + \dots + C_{t-N+1}}{N}
NN
the number of sessions: 9, 10, 20, 50, 100, 150 or 200
Ct, Ct−1C_t,\ C_{t-1}
today's close, the session before's, and so on back
52-week high and low
Taken from each day's intraday high and low rather than its close, so the 52-week high is the highest price anyone actually paid in about a year.

Scan the highs and lows of the last 252 sessions, today included; the distance from the high compares today's close with it.

HighH52=max⁡(Ht−251,…,Ht)\displaystyle H_{52} = \max(H_{t-251}, \dots, H_t)
LowL52=min⁡(Lt−251,…,Lt)\displaystyle L_{52} = \min(L_{t-251}, \dots, L_t)
From the highCtH52−1\displaystyle \frac{C_t}{H_{52}} - 1
Ht, LtH_t,\ L_t
the highest and lowest prices traded during session tt, not its close
CtC_t
today's close
Relative strength
Two different measures. The RS percentile ranks a stock's one-year return against every other stock screened that day: 92 means it beat about 92% of them, and it can move without the price moving, because the others move too. It is not IBD's RS Rating, whose formula is not published. The RS line compares the stock with the Nifty 500 day by day: rising means it is beating the market, even on a day both fall. It is at a high when it is above every value of the past year.

Work out each stock's return over the past year, line the day's stocks up from weakest to strongest, and turn a stock's place in that line into a score out of 100.

One-year returnr=CtCt−251−1\displaystyle r = \frac{C_t}{C_{t-251}} - 1
PercentileRS=100×rank⁡(r)n\displaystyle \text{RS} = 100 \times \frac{\operatorname{rank}(r)}{n}
Ct, Ct−251C_t,\ C_{t-251}
today's close, and the close 251 sessions ago, the first of the last 252
rank⁡(r)\operatorname{rank}(r)
the stock's place when the day's returns are sorted from lowest (1) to highest (nn); equal returns share the average of their places
nn
the number of stocks screened that day that have a one-year return

Divide the stock's close by the Nifty 500's close each day; the chart rescales the line so its first day is 100.

RS lineRSt=CtIt\displaystyle \text{RS}_t = \frac{C_t}{I_t}
On the chart100×RStRSt0\displaystyle 100 \times \frac{\text{RS}_t}{\text{RS}_{t_0}}
Ct, ItC_t,\ I_t
the stock's close and the Nifty 500's close on day tt
t0t_0
the first day shown on the chart

Today's RS line is at least as high as on every one of the previous 251 sessions.

RSt≥max⁡(RSt−251,…,RSt−1)\displaystyle \text{RS}_t \ge \max(\text{RS}_{t-251}, \dots, \text{RS}_{t-1})
RSt\text{RS}_t
the RS line today: the stock's close divided by the Nifty 500's
Volume trend
Whether a stock is trading more than it usually does. The main figure compares the last two weeks with the past year; the faster one, the last week with the last ten. 1.4× means 40% more shares changing hands than normal. Heavy selling raises it too, so it says more activity, not that buyers are winning.

Divide the average volume of the last few sessions by the average over a longer stretch; above 1 means busier than usual.

Main figureVˉ10Vˉ252\displaystyle \frac{\bar{V}_{10}}{\bar{V}_{252}}
Faster oneVˉ5Vˉ50\displaystyle \frac{\bar{V}_{5}}{\bar{V}_{50}}
Vˉn\bar{V}_{n}
the average number of shares traded a day over the last nn sessions, today included
ATR and volatility
How much a stock normally moves, which sizes a position rather than deciding a trade; neither feeds the trend score. ATR is in rupees, gaps included, and ATR % makes a high-priced and a low-priced stock comparable. For volatility, about 20% is a calm large company and 60% or more is genuinely volatile. ATR uses a simple average, where Wilder's original smooths it.

Take each session's largest move, gaps included, average the last 14, and divide by the close for ATR %.

True rangeTRt=max⁡(Ht−Lt, ∣Ht−Ct−1∣, ∣Lt−Ct−1∣)\displaystyle \text{TR}_t = \max({H_t - L_t},\ \allowbreak {|H_t - C_{t-1}|},\ \allowbreak {|L_t - C_{t-1}|})
ATRATR14=TRt+⋯+TRt−1314\displaystyle \text{ATR}_{14} = \frac{\text{TR}_t + \dots + \text{TR}_{t-13}}{14}
ATR %ATR14Ct×100\displaystyle \frac{\text{ATR}_{14}}{C_t} \times 100
Ht, LtH_t,\ L_t
the session's high and low
Ct, Ct−1C_t,\ C_{t-1}
today's close and the previous session's
∣x∣|x|
the size of xx, ignoring its sign

Turn each day's move into a log return, measure how widely those returns spread, and scale the daily figure up to a year.

Daily returnxi=ln⁡CiCi−1\displaystyle x_i = \ln \frac{C_i}{C_{i-1}}
VolatilityHVN=sd⁡(xt−N+1,…,xt)×252×100\displaystyle \text{HV}_{N} = \operatorname{sd}(x_{t-N+1}, \dots, x_t) \times \sqrt{252} \times 100
CiC_i
the close on session ii; tt is today
ln⁡\ln
the natural logarithm; for small moves xix_i is close to the day's percentage change divided by 100
sd⁡\operatorname{sd}
the standard deviation: how far the returns typically sit from their average
NN
30 or 252 sessions (20 and 60 for a contraction)
252\sqrt{252}
about 252 sessions make a year; weekly candles use weekly returns and 52\sqrt{52}
Weekly candles
One candle per week instead of one per session. Weeks run Sunday to Saturday, so a rare Saturday session closes its week and a Sunday session opens the next; a holiday week is one candle from fewer sessions, and the current week is a candle of the sessions so far. On weekly candles the averages count weeks: 10, 20, 30 and 40 weeks stand in for the 50, 100, 150 and 200-day lines, ATR uses 14 weeks and volatility 30. The trend score always uses the daily averages.

A week's candle is built from the daily candles of that week's sessions.

Open, closeOw=Os1,Cw=Csk\displaystyle O_w = O_{s_1}, \quad C_w = C_{s_k}
High, lowHw=max⁡iHsi,Lw=min⁡iLsi\displaystyle H_w = \max_i H_{s_i}, \quad L_w = \min_i L_{s_i}
VolumeVw=Vs1+⋯+Vsk\displaystyle V_w = V_{s_1} + \dots + V_{s_k}
s1,…,sks_1, \dots, s_k
the week's sessions in order, Sunday to Saturday; kk is usually 5, fewer in a holiday week
O,H,L,C,VO, H, L, C, V
open, high, low, close and volume; the subscript ww marks the week's own candle

Delivery and trading activity

From NSE's daily security-wise file with delivery, read alongside the prices. Shown on the stock chart and in the screener; none of it changes the screens' rules.

Delivery %
On any day some shares are bought and sold again within the same day (squared off); the rest change hands for real and land in the buyer's demat account at settlement. That second part is the delivery. A high delivery share says buyers kept the shares; a low one says the day was mostly intraday trading. The daily figure is NSE's own published percentage.

Divide the shares delivered by the shares traded.

Dt=QtVt×100\displaystyle D_t = \frac{Q_t}{V_t} \times 100
QtQ_t
shares delivered in session tt
VtV_t
shares traded in session tt
The 20-bar average
The screener and the chart also show delivery over the last 20 bars, and a weekly candle shows its week's. Busy days count for more than quiet ones: a week of 100%, 0% and 10% on 10, 20 and 70 shares is 17 of 100 shares delivered — 17%, not the 36.7% an average of the three percentages gives. Twenty bars is 20 sessions on daily candles and 20 weeks on weekly ones.

Add up the shares delivered over the bars, and divide by the shares traded in them.

D=Q1+Q2+⋯+QnV1+V2+⋯+Vn×100\displaystyle D = \frac{Q_1 + Q_2 + \dots + Q_n}{V_1 + V_2 + \dots + V_n} \times 100
Qi, ViQ_i,\ V_i
shares delivered and shares traded in each bar
nn
the week's sessions, or 20 bars for the average: 20 sessions on daily candles, 20 weeks on weekly ones
When there is no figure
On trade-for-trade days (NSE's BE and BZ series), where nothing can be squared off within the day, so everything traded is delivered and NSE prints no separate number; before the delivery data was loaded; and for a week or a 20-bar stretch with any bar missing, since adding up only the days that have one would read as low delivery. Delivered shares are adjusted for splits and bonuses, like volume.
Delivery value
NSE does not publish one, so it is worked out from the two figures it does publish.

Multiply the shares delivered by the day's average price.

Delivery value=Qt×pˉt\displaystyle \text{Delivery value} = Q_t \times \bar{p}_t
QtQ_t
shares delivered
pˉt\bar{p}_t
NSE's average price for the day, weighted by the shares in each trade
Traded value and trades
Traded value is the rupees that changed hands in the session; trades is how many separate trades made it up. Both come straight from NSE's daily price file, and a weekly candle adds up its sessions'. Value shows how much money is behind a move, which a share count alone does not.

Traded value adds up every trade's price times its shares; divided by the shares traded, it gives the day's average price.

Traded valueTVt=p1q1+p2q2+⋯+pmqm\displaystyle \text{TV}_t = p_1 q_1 + p_2 q_2 + \dots + p_m q_m
Average pricepˉt=TVtVt\displaystyle \bar{p}_t = \frac{\text{TV}_t}{V_t}
pk, qkp_k,\ q_k
the price and the number of shares of trade kk in session tt
mm
the number of trades, the figure shown as trades
VtV_t
shares traded, q1+⋯+qmq_1 + \dots + q_m

Who owns the company

Every quarter each listed company files who owns it. Neydran reads the file the company submitted through NSE, stores share and holder counts, and works out the percentages itself, because the filed percentages changed scale in 2025. History starts in September 2022, the first quarter with foreign and Indian institutions reported separately.

The groups
Promoters are the founders, family or parent company that control the company. Foreign institutions (FII) are foreign portfolio investors plus foreign direct investment. Indian institutions (DII) are mutual funds, insurers, banks and others such as pension funds. Everyone else is the public.

A group's holding is its shares as a percentage of all shares except those behind receipts traded abroad, the exchange's own basis.

Holding %=SgS−SDR×100\displaystyle \text{Holding \%} = \frac{S_g}{S - S_{\text{DR}}} \times 100
SgS_g
shares the group holds at the quarter's end
SS
all the company's shares
SDRS_{\text{DR}}
shares behind ADRs and GDRs, depositary receipts traded on foreign exchanges

Add up the four non-institutional groups; with the promoters and the institutions, the total is 100%.

PublicGovt+Retail+Other public+Employee trusts\displaystyle \text{Govt} + \text{Retail} + \text{Other public} + \text{Employee trusts}
The wholePromoter+FII+DII+Public=100%\displaystyle \text{Promoter} + \text{FII} + \text{DII} + \text{Public} = 100\%
Govt\text{Govt}
central and state governments
Retail\text{Retail}
resident individuals, in both holding bands (up to and above 2 lakh rupees)
Other public\text{Other public}
companies, NRIs, trusts, clearing members and other non-institutions
Employee trusts\text{Employee trusts}
a separate category in the filing, counted with the public so the four groups add to 100
Pledged and encumbered
Pledged shares are promoter shares put up as security for a loan; if the loan goes bad, the lender can sell them. Encumbered covers every lock on the promoters' shares, pledges included, so it is never below pledged. Filings before June 2025 give only the combined figure, so pledged alone is blank before then; a company with no promoters has neither.

Divide the pledged shares by all the shares the promoters hold.

Pledged %=PSprom×100\displaystyle \text{Pledged \%} = \frac{P}{S_{\text{prom}}} \times 100
PP
promoter shares pledged as security for a loan
SpromS_{\text{prom}}
all the shares the promoters hold
Well above pledged
The flag means most of the promoters' locked shares are held by a loan agreement or another promise rather than a pledge. It is not raised before June 2025, when there is no separate pledge figure to compare.

Divide the encumbered shares the same way; the flag compares the two percentages.

EncumberedEncumbered %=ESprom×100\displaystyle \text{Encumbered \%} = \frac{E}{S_{\text{prom}}} \times 100
FlagEncumbered %−Pledged %≥5\displaystyle \text{Encumbered \%} - \text{Pledged \%} \ge 5
EE
promoter shares pledged or locked in any other way, so never fewer than the pledged ones
Pledged %\text{Pledged \%}
the pledged shares as a percentage of the promoters' holding
SpromS_{\text{prom}}
all the shares the promoters hold
Shareholder counts
How many holders the company had at the quarter's end: in total, and the foreign institutions, Indian institutions and retail investors among them.

Holder counts are taken as filed; institutional holders are the foreign ones plus the Indian ones.

Institutional holders=FII holders+DII holders\displaystyle \text{Institutional holders} = \text{FII holders} + \text{DII holders}
FII holders, DII holders\text{FII holders},\ \text{DII holders}
the number of foreign and Indian institutions on the register
Checks on each filing
Its groups must add up to its total, and the percentages worked out here must match the filed ones within 0.02 points. A filing that fails is still shown, and marked. When a company revises a filing, the latest version replaces it.

Point & Figure

A chart with no time axis: a column of X boxes while the price rises, a column of O boxes while it falls, and a new column only when the price turns by a set number of boxes, so sideways days add nothing. Built from daily closes only, adjusted for splits and bonuses.

Boxes
Each box is a fixed price on a ladder where every rung is the box size, a percentage, above the one below. Anchoring the ladder at 1 rupee keeps a stock's box prices the same whatever dates you look at; at 1%, the rungs near 100 are 99.19, 100.18 and 101.19.

Box kk is the box size compounded kk times from 1 rupee; a close is rounded down to a box in an X column and up in an O column.

Box kPk=(1+b100)k\displaystyle P_k = \left(1 + \tfrac{b}{100}\right)^{k}
X column fills tok↓=⌊ln⁡Cln⁡(1+b/100)⌋\displaystyle k^{\downarrow} = \left\lfloor \frac{\ln C}{\ln(1 + b/100)} \right\rfloor
O column fills tok↑=⌈ln⁡Cln⁡(1+b/100)⌉\displaystyle k^{\uparrow} = \left\lceil \frac{\ln C}{\ln(1 + b/100)} \right\rceil
bb
the box size in percent: 0.1, 0.25, 1 or 3, or any value from 0.001 to 100
kk
a whole number; negative below 1 rupee
CC
the close being plotted
ln⁡\ln
the natural logarithm
⌊ ⌋, ⌈ ⌉\lfloor\,\rfloor,\ \lceil\,\rceil
round down, round up: the highest box at or below the close, the lowest box at or above it
Reversal
A column keeps growing while closes go its way, several boxes at once on a big move, and turns only on a set number of boxes the other way: exactly that many turns it, one fewer never does. The reversal is 3 boxes by default, and 2 to 10 are allowed; a one-box reversal is not offered. The first column is X if the price first moves up a box from the first close, O if it first moves down one.

Compare the close's box with the column's end box: a gap of rr boxes or more against the column starts a new one.

X growsk↓>T\displaystyle k^{\downarrow} > T
X turns to Ok↑≤T−r\displaystyle k^{\uparrow} \le T - r
O growsk↑<U\displaystyle k^{\uparrow} < U
O turns to Xk↓≥U+r\displaystyle k^{\downarrow} \ge U + r
TT
the top box of the current X column
UU
the bottom box of the current O column
k↓, k↑k^{\downarrow},\ k^{\uparrow}
the box at or below and the box at or above today's close
rr
the reversal in boxes: 3 by default, 2 to 10 allowed
End of day only
Point & Figure traders use 0.1% and 0.25% boxes on intraday prices, where the chart follows every move within the day. Here it sees one price a day. A typical day's close moves 1 to 2%, which is 10 to 20 boxes at 0.1%, and a 3-box reversal is a 0.3% dip, so at 0.1% a new column starts every two or three sessions, and anything that happened between two closes is invisible.
Limits
At most 1,000 columns and 20,000 boxes are drawn; past either, the newest that fit are shown and the chart says so.

Company events

The stock page marks company events on its chart and lists them as a timeline: NSE's headline and a link to the filing, never the article itself. They come from NSE's announcements, board meetings and corporate actions, plus pledge changes worked out from the quarterly shareholding filings, for Nifty 500 companies over the last three years. Each event gets one type, by fixed rules, not by AI.

Results
Quarterly or yearly financial results, marked on the day of the board meeting that approves them, which is also how upcoming results dates appear.
Order
The company won an order or contract. Tax demands and orders from courts or regulators are not orders here, whatever the filing calls them.
Board meeting
A board meeting held for anything other than results.
Dividend
A dividend declared, and its ex-date: the day the shares start trading without it and the price adjusts.
Split / bonus
A split, bonus issue or consolidation, when it is announced and on its ex-date.
Pledge
A promoter pledge disclosure, or a change in the promoters' pledged share between two quarterly filings, dated when the market first saw it.

Between two quarterly filings, the promoters' pledged share moved by a point or more, or a pledge started or ended.

∣ Pledged %now−Pledged %before ∣≥1\displaystyle |\,\text{Pledged \%}_{\text{now}} - \text{Pledged \%}_{\text{before}}\,| \ge 1
Pledged %\text{Pledged \%}
pledged shares as a percentage of the promoters' holding, in this quarter's filing (now) and the one before; before June 2025 the combined encumbered figure is compared instead
News
Press releases, and the company's answers when NSE asks about a price move, a jump in volume or a rumour.
Other
Anything else kept, such as buybacks, rights issues, demergers, litigation or a regulator's order.

How a filing is typed

  1. 01Routine paperwork is not kept at all: newspaper copies, lost share certificates, analyst-meeting schedules, trading-window closures, and notices of record dates and of upcoming board meetings, since the meeting itself is kept on the day it is held.
  2. 02Where NSE's category already says what a filing is (an order win, a dividend, a stock split, financial results), that decides. Categories for tax demands or court and regulator orders are typed other, never order.
  3. 03Otherwise the category and NSE's one-line description are read with word rules, first match winning: results, then order, split or bonus, dividend, pledge.
  4. 04Otherwise the category's usual type applies (the outcome of a board meeting is a board meeting, a press release is news), and anything left is other.

Upcoming board meetings and ex-dates in the next 90 days are included. Two sources often mark the same day, such as a results filing and its board meeting; they stay separate events, each with its own link.

Prices and watchlist returns

How prices are made comparable across corporate actions, and how a watchlist's performance is calculated.

Splits and bonuses
The exchange publishes raw prices, so a five-way split looks like an 80% crash overnight. Using NSE's own list of splits, bonuses and consolidations, every price before the change is divided by its ratio (a 1:1 bonus halves it, a split from a face value of 10 to 2 divides it by five) and volume is scaled the other way. Charts, averages, 52-week highs and returns all read these adjusted prices.

Work out each action's factor, then divide every earlier price by the factors of all the actions after it, and multiply the volume by them.

Bonus a:bF=a+bb\displaystyle F = \frac{a + b}{b}
Split, consolidationF=XY\displaystyle F = \frac{X}{Y}
Adjusted pricePt′=PtF1×F2×⋯\displaystyle P'_t = \frac{P_t}{F_1 \times F_2 \times \cdots}
Adjusted volumeVt′=Vt×F1×F2×⋯\displaystyle V'_t = V_t \times F_1 \times F_2 \times \cdots
a,ba, b
aa new shares for every bb held: a 1:1 bonus gives F=2F = 2
X,YX, Y
the face value before and after: 10 to 2 gives F=5F = 5; a consolidation gives FF below 1
F1,F2,…F_1, F_2, \dots
the factors of every action whose ex-date is after day tt, up to the latest data
Pt, VtP_t,\ V_t
the exchange's raw price (open, high, low or close) and volume on day tt
Unexplained breaks
Circuit limits keep ordinary daily moves within 20%. A one-session fall of 40% or more, or a rise of about 67% or more, that no split or bonus explains — usually a demerger — is named as a price break and left out of a list's return rather than counted as a loss.

Compare each adjusted close with the one before it.

Fall of 40% or moreCtCt−1<0.6\displaystyle \frac{C_t}{C_{t-1}} < 0.6
Rise of about 67% or moreCtCt−1>10.6\displaystyle \frac{C_t}{C_{t-1}} > \frac{1}{0.6}
Ct, Ct−1C_t,\ C_{t-1}
the adjusted close and the one before it
A list's return
The same amount put into every stock currently in the list on the first day of the range and held without rebalancing: the average of each stock's close divided by its first close. Compared with the Nifty 500 over the same sessions. Price only, before dividends, fees and taxes, so it is a hypothetical return, not anyone's profit or loss.

Average each stock's close divided by its first close, times 100: the list's index, which starts at 100.

IndexIndex(d)=100n∑i=1nCi(d)Ci(d0)\displaystyle \text{Index}(d) = \frac{100}{n} \sum_{i=1}^{n} \frac{C_i(d)}{C_i(d_0)}
List returnIndex(dlast)−100\displaystyle \text{Index}(d_{\text{last}}) - 100
nn
the stocks included in the range
Ci(d)C_i(d)
the close of stock ii on day dd
d0, dlastd_0,\ d_{\text{last}}
the range's first and last sessions
∑\textstyle\sum
add up the terms for every stock, i=1i = 1 to nn

The list's return minus the Nifty 500's over the same sessions, in percentage points.

List return−100×(IlastIfirst−1)\displaystyle \text{List return} - 100 \times \left(\frac{I_{\text{last}}}{I_{\text{first}}} - 1\right)
Ifirst, IlastI_{\text{first}},\ I_{\text{last}}
the Nifty 500's close on the range's first and last sessions
Ranges
1W, 1M, 3M, 6M and 1Y are the last 6, 22, 63, 126 and 252 trading sessions; 5Y starts at the first session on or after the same date five years ago. A stock without a close on every session of a range (listed later, or a missing day) is named and left out of that range's return rather than estimated.
Trend in plain words
Uptrend: the close is above its 50-day average, which is above its 200-day. Downtrend: the reverse. Holding up: above the 200-day but not stacked. Weak: below the 200-day.

Where today's close sits against its 50- and 200-day averages, tested in this order.

UptrendC>MA50>MA200\displaystyle C > \text{MA}_{50} > \text{MA}_{200}
DowntrendC<MA50<MA200\displaystyle C < \text{MA}_{50} < \text{MA}_{200}
Holding upC>MA200\displaystyle C > \text{MA}_{200}
WeakC≤MA200\displaystyle C \le \text{MA}_{200}
CC
today's close
MA50, MA200\text{MA}_{50},\ \text{MA}_{200}
the 50- and 200-session averages
Industry performance
Each industry's change over a range is the plain average of its stocks' changes, the same calculation as a list's return applied to that industry's stocks alone.

Add up the stocks' changes and divide by how many there are.

Industry change=Δ1+Δ2+⋯+Δmm\displaystyle \text{Industry change} = \frac{\Delta_1 + \Delta_2 + \dots + \Delta_m}{m}
Δi\Delta_i
the change of stock ii over the range
mm
the industry's stocks that have a change for the range

The market map

Market health
Broad when at least 60% of Nifty 500 stocks close above their 200-day average, narrow below 40%, mixed in between. Improving or weakening when that share moved 5 points or more over the last 21 sessions. Round thresholds chosen for readability; a description of participation, not a forecast.
Industries
Stocks grouped by NSE industry, ordered by the average 1-month change of their stocks. Each tile also shows the share above the 200-day average and the median distance from the 52-week high.
Breadth lines
For each stored day, the share of stocks above their 200-day average, within 25% of their 52-week high, and meeting all eight trend conditions, shown under the Nifty 500 in a separate pane.

Count the stocks that pass each test, and divide by the stocks that could be tested.

Above 200-daycount(C>MA200)count(has an MA200)\displaystyle \frac{\text{count}(C > \text{MA}_{200})}{\text{count}(\text{has an } \text{MA}_{200})}
Near the highcount(C≥0.75 H52)count(has an H52)\displaystyle \frac{\text{count}(C \ge 0.75\, H_{52})}{\text{count}(\text{has an } H_{52})}
All eightcount(trend score=8)stocks screened\displaystyle \frac{\text{count}(\text{trend score} = 8)}{\text{stocks screened}}
count(…)\text{count}(\ldots)
how many of that day's screened stocks pass the test in brackets
C, MA200, H52C,\ \text{MA}_{200},\ H_{52}
each stock's close, 200-day average and 52-week high

What it does not account for

Every screen has blind spots. Listing ours is more useful than pretending they are not there.

Only splits, bonuses and consolidations are adjusted

Dividends, rights issues and demergers are not, so returns are price-only and a demerger still appears as a one-day drop. A handful of older actions are missing from the exchange's own list. Screen results stored before this adjustment was introduced were calculated on raw prices.

Only half of Minervini's method is implemented

His full approach also requires accelerating earnings. We hold price and volume, not company financials, so the eight conditions here are the price half. A stock passing all eight has not been checked against its earnings at all.

The thresholds are untested

12%, 1.5× and 20 sessions for breakouts, and 25%, 30 and 10 sessions for the setups, are reasoned starting points. Whether they pick good candidates has not yet been measured against what happened next.

Relative strength is an approximation

IBD's RS Rating is proprietary and has no published formula. Ours ranks each stock's one-year price return against every other stock screened that day, as a percentile. Similar in spirit, not identical in construction.

Averages are simple, not exponential

Short averages (9, 10 and 20 sessions) are usually exponential elsewhere, weighting recent days more. Ours are simple, so at those windows they differ slightly from most charting tools.

End of day only

No intraday prices, no futures and options open interest, no daily institutional buying and selling. Delivery is the day's total, and ownership comes once a quarter, so it can be up to four months old. The screens themselves read closing prices and volumes, and nothing else.

NSE's delivery percentage can use a smaller quantity

On at least one day NSE worked out its delivery percentage on only part of the day's volume, so its figure read higher than delivered ÷ traded. The daily figure shown is NSE's; weekly and 20-bar figures divide by the full volume, so they can read lower than the daily ones suggest.

The universe is the Nifty 500

Roughly the 500 largest listed companies. Anything outside that index is not screened, so the absence of a stock from these lists means nothing about that stock. Industry labels likewise cover the Nifty 500 only, as they stand today rather than as they were.

Chart rendering & data

Neydran serves its market data from its own database. The chart-rendering library is separate from that data source.

TradingView Lightweight Charts™
Copyright (с) 2025 TradingView, Inc. TradingView.

Formulas are typeset with KaTeX, used under the MIT licence.

Neydran reports the output of these rules. It does not tell you what to buy, and nothing on it is financial advice.