How Relative Strength works

What SHORT, MEDIUM and LONG measure, how the 0-100 value and the rank are calculated, and what the number deliberately does not tell you.

Read it in 30 seconds

  • SHORT, MEDIUM and LONG are three measurement horizons over the same stock — not three ratings of it.
  • SHORT reads 10 and 30 sessions, MEDIUM 55 and 100, LONG 100 and 200.
  • The value is a 0-100 score, not a return and not a percentage of stocks beaten — it is rescaled every session so the pool spans 0 to 100.
  • The rank is that value turned into a place in the queue, where 1 is the strongest.
  • A stock can lead SHORT and lag LONG. That disagreement is the signal, not an error — it is what an early breakout looks like.
  • Nothing in the calculation compares a stock to the NEPSE index.

How the number is calculated

These are the stages in the order they run, once per completed trading session.

  1. 1. Pick the pool

    Ranking happens inside a pool, and there are two. Ordinary shares that are active and eligible for signals form one; the NEPSE index and its sub-indexes form the other, ranked only against each other. Mutual funds, debentures and preference shares are ranked in neither — they do not move on the same drivers as equity. A rank therefore means a place among comparable instruments, not a place among everything NEPSE lists.

  2. 2. Drop anything with too little history

    Each horizon needs a minimum number of recorded trading sessions before a stock can be ranked at all: 45 for SHORT, 155 for MEDIUM, 205 for LONG. These are eligibility floors, not the measurement windows. A stock below the floor is shown as unranked rather than given a rank the data cannot support — which is why a recent listing appears as a GenZ row instead of a weak one.

  3. 3. Measure the returns

    Each horizon reads two lookback windows and asks a simple question of both: what is the price now against the price that many sessions ago? SHORT uses 10 and 30 sessions, MEDIUM 55 and 100, LONG 100 and 200. Two windows per horizon rather than one, so a single unusual week cannot define a horizon by itself.

  4. 4. Cap the outliers

    Extreme returns are clipped to a symmetric ceiling, in both directions, before they are combined. The cap does not squeeze anyone else's standing — the ranking in step 6 is ordinal, so one stock going up tenfold cannot compress the rest. What it bounds is how far a single freak window can dominate that one stock's own blended score, which would otherwise let one extraordinary month speak for a whole horizon. The cap sits far above any ordinary move.

  5. 5. Blend the two windows

    The two capped returns are combined into a single raw score for that horizon using fixed weights. The weights do not change day to day, so the method never shifts underneath you. The SCORE still can, though, even on a completely flat price — everything below this step compares the stock to a pool that is itself moving.

  6. 6. Rank within the pool

    Every eligible stock's raw score is turned into a percentile against the rest of the pool. This is the step that makes the number relative: in a week when the whole market falls, a stock that fell less can still rank near the top, because it is being compared to its peers and not to zero.

  7. 7. Apply the trend check

    The percentile is then adjusted by where the price sits against two moving averages of that horizon. A stock trading below its faster average is marked down. A stock whose faster average has fallen below its slower one is marked down again. A stock above both, with the faster average above the slower, gets a small boost. This is why a stock that rallied hard months ago but has since rolled over does not hold a top rank on strength of that old move alone.

  8. 8. Damp the illiquid

    Equities are further adjusted for how much they actually trade. A high score on a stock nobody can buy or sell at the quoted price is not a usable one, so thin names are pulled down. The index pool skips this step entirely, because liquidity is not a meaningful property of an index.

  9. 9. Rescale and rank

    Finally the adjusted scores are stretched onto a 0-100 range, so the strongest stock in the pool sits near 100 and the weakest near 0, and that ordering becomes the rank you see. Ranks are dense: stocks that tie share a number and the next stock takes the following one, so ranks never skip.

The windows, the pools and the direction of each adjustment are published above. The blend weights, the outlier cap and the exact trend and liquidity multipliers are not.

A worked example

Take a stock showing these three cells on the same row. Nothing is wrong with it — this is one stock measured three ways.

HorizonValueRank
SHORT9214
MEDIUM6196
LONG34171
  • SHORT: Over the last 10 and 30 sessions it ranks 14th of roughly 200 eligible stocks — near the top of the pool. Read the rank here, not the value as a percentage: 92 is a position on a rescaled 0-100 range, not 92% of stocks beaten.
  • MEDIUM: Across 55 and 100 sessions it sits mid-pack at 96th — the recent strength has not been running long enough to lift this window much.
  • LONG: Over 100 and 200 sessions it is 171st — the lower half. Whatever it is doing now, it spent most of the year going nowhere or down.

Cross-tf reads mixed, because the three values are not all at or above 75 nor all at or below 50. That is the point: this is the shape of a stock early in a move, and it is the shape the Breakouts preset sorts to the top. Note what that preset does and does not do — it sorts by SHORT and filters to mixed, but sets no minimum, so read down the list rather than trusting every row in it. The same row a month from now tells you whether the move held: if MEDIUM climbs while SHORT stays high, the strength is spreading into the longer window. If SHORT falls back to meet MEDIUM, it did not.

What it does not tell you

  • It does not compare the stock to the NEPSE index. No index price enters the calculation at any step. The 'vs NEPSE' figure on the GenZ strip is a separate display metric for new listings and has no effect on any rank.
  • It does not read fundamentals. Earnings, book value, dividends, management and sector news are absent from the computation.
  • It does not read order flow. Broker activity and floorsheet data feed other parts of Dharke, not this ranking.
  • It does not forecast. A rank describes strength that has already happened. It carries no claim about tomorrow.
  • It does not mean the price rose. In a falling market the top-ranked stock may still be down — it simply fell less than its pool.
  • It does not compare across pools. An index ranked 1 and a stock ranked 1 are the strongest of two different populations, not equals.
  • It is not advice. Dharke publishes research, and the decision to buy or sell is yours.

Every term on the board

These are the same definitions the board itself shows when you tap a term.

SHORT
Recent strength, measured over 10 and 30 sessions. Windows count trading sessions, not calendar days — weekends and NEPSE holidays do not advance the count.A stock needs 45 recorded trading sessions before it gets a SHORT rank, because the trend check behind the score reads 20- and 40-session moving averages and neither is meaningful before its span fills.
MEDIUM
The multi-month picture, measured over 55 and 100 sessions. Windows count trading sessions, not calendar days — weekends and NEPSE holidays do not advance the count.MEDIUM is the default sort on the board because it is the horizon least driven by a single week and least anchored to a year-old price. It needs 155 recorded trading sessions, behind 100- and 150-session averages.
LONG
The full-cycle picture, measured over 100 and 200 sessions. Windows count trading sessions, not calendar days — weekends and NEPSE holidays do not advance the count.LONG needs 205 recorded trading sessions — roughly a NEPSE trading year — behind 150- and 200-session moving averages. A stock past the SHORT floor but short of this one is an ordinary ranked row with a blank LONG cell, not a GenZ row: the GenZ cohort is stocks too new to have any rank at all.
Rank
Position among the instruments ranked alongside it for that duration — equities against equities, indexes against indexes. 1 is the strongest. A rank only means something next to other ranks from the same column and the same pool.Rank is dense: two stocks that tie share a number and the next stock takes the following one, so ranks never skip.
Value
The 0-100 score the rank is derived from. It starts as the stock's standing in its pool, then the trend adjustment moves it (and, for equities only, liquidity), and the result is rescaled so the pool spans 0 to 100. It is not a return.A value is NOT the percentage of stocks beaten. That percentage is only the first step; the trend adjustment then moves the number — plus a liquidity adjustment for equities, which indexes never get — and the final rescale stretches whatever survives across 0 to 100 on every recompute. So 90 means near the top of the adjusted range, not '90% beaten'. A value says where a stock stands today, not whether the whole market rose or fell.
Move
Change in rank since the previous recorded ranking. A positive move means the stock climbed past others; it does not mean the price rose.A stock with no previous rank has no move, which is why the Movers preset excludes newly ranked stocks rather than showing them as enormous climbers.
Cross-tf
Whether the three horizons agree. Strong means all three values are 75 or above, weak means all three are 50 or below, and mixed is everything else. Blank when any horizon has no value.Mixed is not only the disagreement case — a stock whose three values all sit between the two thresholds is mixed as well, because it is not decisively anything. The disagreements are the interesting ones: short strong with long weak is what a breakout looks like early, and long strong with short weak is what a leader losing steam looks like.
Leaders
Strong in all three timeframes — durable leadership, ranked by MEDIUM. Tighten with the Min rank (all) filter for a top-N cut.
Breakouts
Short-term strong while the bigger picture is still mixed — the classic breakout pattern. Clear the coherence filter for pure short-term momentum.
Faded
Long-term strong but short-term weak — leaders losing steam (a distribution pattern).
Movers
Largest change in MEDIUM rank since the last recorded ranking — up or down. Stocks with no previous rank are excluded.
Avoid
Weak in all three timeframes — the opposite of Leaders.
GenZ · S{n}/{n}
Too new to rank. The counter reads recorded trading sessions so far against the number this stock needs before it earns a rank.The stock is trading normally — it simply has no history to measure against. It joins the board on its own the first recompute after the counter fills.
GenZ · unranked
A new listing with enough sessions to be considered, but no rank recorded yet. It appears at the next recompute.
Not ranked · non-equity
Mutual funds, debentures and preference shares are not ranked. They do not move on the same drivers as equity, so scoring them against equities would rank unlike things together.
Delisted
No longer trading on NEPSE, so it is not ranked and does not appear on the default board. Search the exact symbol to see its last recorded state instead of silence.
New to board
The stock earned its first rank for this duration in the latest recompute. The badge clears itself the next session, once there is a previous rank to compare against.It marks arrival, not quality — a stock can arrive anywhere in the pool. Because it means 'no previous rank', such a stock also has no Move, which is why the Movers preset skips it.
GenZ stocks
Listings too new to carry a Relative Strength rank. They are shown separately so a new listing reads as unmeasured rather than as weak.
off peak
How far the stock trades below its highest close since listing. It describes the drawdown so far; it is not a forecast of recovery.
vs NEPSE
The stock's move against the NEPSE index over the same span, shown for context on new listings only. It feeds no rank — Relative Strength takes no index input at all.This is a display metric on the GenZ strip and nothing more. Relative Strength takes no index input at all — a stock's rank is set by its own returns against the other stocks in the pool, never against NEPSE.
thin
Either turnover is too low to enter or exit at the quoted price with confidence, or too few of the recent sessions traded at all. Both make the quoted price unreliable.
circuit-locked
Three sessions in a row closed at or near the daily price band, each on turnover under the liquidity floor. Orders are stacked at the limit and almost nothing is changing hands, so the quoted price is not one you can trade at.
stale
The last data for this stock is older than the most recent NEPSE session. The row is dimmed because the numbers have not refreshed.

Questions people ask

Why does one stock lead SHORT but lag LONG?
Because the two horizons measure different stretches of time and nothing forces them to agree. Short-term strength with long-term weakness is the normal shape of a stock early in a move — it has not been strong long enough for the longer windows to register it yet. The Cross-tf column exists to make that disagreement visible instead of leaving it buried in three numbers.
Is a rank of 1 a recommendation to buy?
No. It says the stock is the strongest in its pool over that horizon, on the measurements above. Strength is one input to a decision, and a stock can be the strongest thing in a falling market.
Why does a stock I follow show no rank at all?
One of four things: it is short of the session floor for that horizon, it has the history but no rank recorded yet and joins at the next recompute, it is not equity, or it has been delisted. The row shows which of those applies rather than a bare dash, and a stock waiting on history shows how many sessions it still needs.
How often do the numbers change?
Once per completed trading session. The Move column compares against the previous recorded ranking, so it shows how far a stock travelled in the queue since then, not how far its price moved.
Why did a rank move when the price barely did?
Rank is relative. A stock can slide several places without moving much itself, simply because other stocks in the pool moved more. This is also why the value and the rank can drift apart: the value is a position on a 0-100 scale, and the rank is a place in a queue.

Not financial advice. For research and education only.

Methodology last verified against the ranking code on .