A structured engine for identifying stocks and themes under sustained relative strength during market weakness, tracking leadership across timeframes, and isolating the spring-load moment before expansion.
Regime detection across QQQ, SPY and SMH with watchlist breadth. RS scanning activates only under qualifying market conditions to ensure strength readings reflect true accumulation rather than market drift.
The five strongest names in the universe by RS Score with persistence flag. Full table is in the Leaderboard tab.
| Ticker | RS Score | Daily % | RS Spread | Vol Z | RSI | Persist |
|---|---|---|---|---|---|---|
| Run a scan to populate | ||||||
Stocks ranked by composite RS Score. Sortable by every metric. The score blends excess return over QQQ, RS line slope, volume confirmation and short-term momentum.
| RS Score | Ticker | Daily % | RS Spread | Vol Z | 5d ROC | RS Slope | RSI(14) | Persist |
|---|---|---|---|---|---|---|---|---|
| Run a scan to populate | ||||||||
A Leadership Score combining average RS across 20 days, consistency of outperformance, trend slope, acceleration and volume confirmation. Tier 1 names are persistent institutional leaders. Tier 2 are emerging.
| Tier | Leadership Score | Ticker | Avg RS Score (20d) | Consistency 20d | Trend Slope | Acceleration | Vol Confirm | 5d | 60d |
|---|---|---|---|---|---|---|---|---|---|
| Run a scan to populate | |||||||||
Themes ranked by composite Theme Score. Low dispersion plus high median RS plus high participation indicates coordinated accumulation. High dispersion with mixed signal suggests rotation rather than thematic strength.
Full theme breakdown with all constituent metrics.
| Theme Score | Theme | Members | Median RS | Avg Return | Participation | Dispersion | Avg RS 5d | Avg RS 20d |
|---|---|---|---|---|---|---|---|---|
| Define themes and run a scan | ||||||||
Day-over-day change in theme ranking, participation and trend. Themes with rapid rank improvements and rising participation are candidate emerging-leadership rotations.
| Theme | Current Rank | Previous Rank | Δ Rank | Δ Participation | Δ Trend | Signal |
|---|---|---|---|---|---|---|
| Run two scans on different days to observe rotation | ||||||
A three-phase model. Setup requires confirmed RS leadership. Compression requires ATR contraction (volatility in lowest 30th percentile of the last 60 days) and price held above its 10-day moving average. Trigger requires QQQ green, a 20-day high break or 5-day ROC acceleration, and volume expansion.
QQQ, SPY and SMH compared across returns, volatility and short-term trend. Stock-vs-benchmark RS is computed against all three for each name in the leaderboard.
| Benchmark | Price | Daily % | 5d Return | 20d Return | Volatility 20d | RSI |
|---|---|---|---|---|---|---|
| Run a scan to populate | ||||||
For each top-ranked stock, spread against each benchmark.
| Ticker | Stock Return | vs QQQ | vs SPY | vs SMH |
|---|---|---|---|---|
| Run a scan to populate | ||||
Universe of stocks the engine tracks. Benchmarks (QQQ, SPY, SMH) are always included automatically. Recommended 30-50 names for free-tier API limits.
The engine talks to a Cloudflare Worker you deploy in 2 minutes. Full setup walkthrough is in the Methodology tab. Once you paste the URL here and click Save, the engine fetches Yahoo Finance OHLCV through your own Worker — no CORS, no rate limits, no third-party proxies.
Why this is the only path that works: in 2026, every browser-callable free OHLCV API either blocks CORS (Yahoo, Twelve Data), requires a paid plan (FMP, Finnhub), or has a useless free quota (Alpha Vantage at 25/day). Running a tiny Worker on your own Cloudflare account routes around all of this.
Worker free tier: 100,000 requests/day. A full scan uses ~40 of those.
Every metric the engine computes, exactly as it computes it.
Run Scan. There is no continuous polling — by design, since intraday RS noise is unhelpful for this signal. For end-of-day refresh, run once after US market close (~22:00 Lisbon time).lai-yahoo-proxy → Deploy.lai-yahoo-proxy.js (delivered alongside this engine)..workers.dev.?symbol=QQQ. Range defaults to 4 months (about 84 trading days, enough for all engine calculations).