Default sort = Q (Quality, highest first). Click any header to re-sort; click Signal to group Breakout → Coiling → Pullback → rest.
Q (Quality 0–100): a glass-box blend — money-flow direction .25, liquidity .25, freshness (penalises names already run >30% over 60/90D) .20, volume-confirmation .15, RVOL intensity .10, relative strength .05. Hover any score for its breakdown. Higher = a cleaner, earlier, better-funded setup — explicitly not a buy rating. The weights live in one object in the source; tune freely.
60d: sparkline of the last ~60 sessions (green = net up). RVOL: 5-day avg volume ÷ ~3-month; ≥1.5× (teal) elevated, ≥2× (amber) heavy; ▲/▼ = building/fading vs the prior week. Flow: Chaikin Money Flow (~20d) — + = buying into the move (accumulation), − = selling (distribution). RVOL says the volume is loud; Flow says which side it's on. RM'm: money traded today (price × volume), the liquidity gate. Rng: 5-day range ÷ 3-month; <1 tightening, >1 whippy. RS: 1-week move minus the cohort median.
Signal — a flow-aware state machine. Money-flow direction now gates the constructive tags, so a quiet name with money leaving can no longer pose as accumulation. Solid pill = confirmed; hollow/dashed = warning variant:
Breakout up + money not leaving ·
Extended up but already run >80% (60/90D) — late ·
Bounce price up but Flow negative = rally money is leaving into (suspect) ·
Coiling quiet price + positive Flow = real accumulation tell ·
Churn quiet price but negative Flow = distribution in disguise ·
Topping quiet pause on top of a big run ·
Pullback down on the week but inside a live uptrend = dip in a leader ·
Distribution down in a downtrend / off a top ·
· nothing clean · — no price.
2×? magnitude flag — a constructive, money-flowing setup that hasn't run yet, in a name whose real market cap is small enough that a large move is mechanically possible (default ≤ RM1.5bn; the one knob, SIG.moverCap). Market cap is fetched live from klsescreener — only for the few names that already pass the cheap checks, so it stays fast. A POSSIBILITY, not a prediction or target. A small cap can carry both 2×? and ⚠ at once — that's a name with room to run and the liquidity/quality risk that usually comes with it. The flag never hides the risk; it leaves the call to you.
⚠ thin (< RM20m/day): volume less trustworthy, pump-prone — a Breakout/Coiling carrying ⚠ is the one to distrust, and thin names drop out of the top tier in grouped view. A high Q still isn't a buy: a clean liquid Coiling can resolve down. Q says "worth your homework," not "long."
Bursa is thin and heavily ramped. RVOL confirms money is moving, NOT that it's safe. The RM/day and Min-price filters are your first defence — raise them when the table looks like a casino. EOD, not intraday; near month/quarter-end the tool will warn you the top of the board is partly mechanical.
Sources: klsescreener (live universe) · Yahoo Finance (adjusted history), via your Cloudflare Worker. Discovery list, not advice. Blank = no Yahoo data; untick "hide unpriced" to see them.