Tech, AI, cybersecurity, software, and ETF monitor

Basket Command Center 3

End-of-day quotes, performance, and benchmark comparison.
↓ TAKE (2+ panels) ↓ Weekly Picks (top 2) ↓ Charts ↓ Golden cross · #1 ↓ RS Leaders · #2 ↓ Bull Flag Watch · #3 ↓ Base & Breakout · #4 (test) ↓ Intraday Breakout · #5 ↓ Trade plans ↓ Options flow (test) ↓ Forward test ↓ Rotation candidates ↓ Death cross ↓ Performance ↓ Ticker cards
Panels are ordered by BACKTESTED hit rate (entry next open, target = entry + 1.5×ATR14, no stop, 20-session max hold, Jan–Aug 2026). Buying on a RANDOM day hits that same target 62.3% of the time (n=799) — that is the number every panel below must be read against. A 78% hit rate is roughly +16 points of edge, not 78 points of skill. One regime only: an 8-month tech bull market. In a flat or falling market these converge toward each other and the order may not hold. Bull Flag and Intraday Breakout now use CMF(20) > 0.20 in place of their original raw-volume rules; their numbers above are post-swap. The top three (79.2 / 78.3 / 77.9) are within noise of each other on samples of 53–95 — read the panels as two tiers, not four ranks, and note that these figures come from a single 8-month sample that has now been searched many times over.

TAKE · 2+ PANELSToday's trades — names flagged by two or more panels

The one rule that held for four years. Replayed day by day over Sep 2022 – Aug 2026 (4,075 signals), names in 2+ panels beat random entries in the same stocks every year: hit rate 71% / 74% / 78% / 82% vs random 66% / 67% / 72% / 65%. As a 2-slot book (buy next open, sell at the target or after 20 sessions, no stop, half size above 8% stretch) it returned ×1.21 / ×1.24 / ×1.71 / ×2.39 by year, against random picks ×0.93 / ×1.05 / ×1.31 / ×1.74 and SPY ×1.11 / ×1.25 / ×1.16 / ×1.20.

Expected drawdown: the 2-slot book's worst fall in each year was −24%, −25%, −34% and −15% (SPY: −13%, −9%, −19%, −9%). Size the book so a 35% fall is survivable. Target for TAKE names is entry + 2× the normal daily move (better than 1.5× per trade in all four years). No stop: stops lost money in every year tested.

Caveats: the ticker list was chosen in 2026, so every backtest here is flattered by hindsight (the comparison with random entries is fair; the absolute returns are not). Single-panel names were no better than random in 2022–24. The forward test below is the real check.

WEEKLY · TOP 2Weekly Picks — ranked selection

This is a ONCE-A-WEEK decision, not a daily one. Pick a fixed day, take the two names below, hold ~20 sessions to the target or to time-exit, and do not re-pick mid-week. The backtest rebalanced weekly; acting on this panel daily is a different (untested) strategy and will churn you.

Rule: universe = CMF(20) > 0.20 AND price above MA200. Those that qualify are ranked by CMF ascending — the LOWEST qualifying CMF first. That is deliberate and counterintuitive: among names that already clear the buying-pressure gate, the most extreme ones are already extended. Ranking descending (highest CMF first) backtested materially worse (equity ×2.20 vs ×3.42). The gate is what carries the edge; maximising the gated variable works against you.

Backtest (27 weekly cycles, Jan–Aug 2026, 54 trades): 79.6% of picks reached entry + 1.5×ATR14 within 20 sessions; average +4.89% per trade; profit factor 3.55; 81.5% of weeks positive; compounded equity ×3.42 equal-weighted; max drawdown 11.7%. Split in half, the rule held up on data it was never fitted to: +4.99% per trade Jan–Apr vs +4.77% May–Aug.

Why 2 and not 3 or 5: returns decay monotonically as you add positions (out-of-sample per-trade: top1 +4.99%, top2 +4.77%, top3 +4.73%, top4 +4.12%, top5 +3.59%, all qualifiers +1.39%). Only ~6 names qualify in a median week, so "top 5" is often just taking everything and converges to the unranked result. Top 1 scored higher (×4.58) but on 27 trades, which is too few to size on.

NO STOP IS MODELLED. Target-only, time-exit at 20 sessions. Individual picks in the backtest dipped as far as −25% before recovering to target. Position sizing is entirely yours and this panel does not tell you how much to risk.

Limits, stated plainly: 54 trades over 27 weeks in a single 8-month tech bull market where simply buying every qualifier returned ×2.49. No slippage, no commissions, no position limits. This dataset has been searched many times over, so the true edge is likely smaller than shown. Treat this as a hypothesis to paper-trade forward for a quarter, not a validated system. 10% of weeks produced ZERO qualifiers — an empty panel is normal and means sit in cash, not lower the bar.

CHARTSCandles — signalled names with EMA9 / SMA20

Last 60 sessions for every name currently appearing in Weekly Picks (plus, greyed and labelled not taken, up to three qualifiers that ranked just below the cut — shown so you can compare them against the picks directly). Every Weekly name is charted regardless of where it sits against EMA9, so the comparison is always complete; Golden Cross Zone or RS Leaders that is either in the EMA9/SMA20 zone or above EMA9. Green candles close up, red close down; the orange line is EMA9, the blue line is SMA20.

Charts are drawn straight from the same OHLC bars in data.json that every panel uses — no separate feed, so what you see here matches the tables exactly. The EMA9/SMA20 position is shown because it is useful for judging entry timing, not because it was shown to work: across the 241 combined signals, "above both" hit 77.5%, "in zone" 72.7% and "below both" 75.0%, a spread well inside noise, and 88% of signals sit on the pass side. Treat these charts as a look at what you are buying, not as confirmation.

The dashed red line is the nearest resistance and the dashed green line the nearest support, found by clustering swing pivots (a bar that tops the three bars either side) within 0.75×ATR and requiring at least 2 touches. Levels beyond the reach cap — whichever is larger, 3×ATR or 12% of price — are skipped as not actionable over a ~20-session hold (the percentage floor exists because ATR/price varies from about 2% to 8% across the basket, so an ATR-only cap reaches far too little on low-volatility names); levels are taken in tiers: a cluster with 2+ touches first, then a single-touch pivot inside the band, then the window high / 60-session low, and only if nothing at all is within 3×ATR does it fall back to ±2×ATR. The tier used is printed under each chart. The second tier exists because the 2-touch rule misfires in a downtrend — a falling stock sets each lower high at a different price, so no cluster ever reaches two touches near the current level and the most relevant pivot gets discarded. Support and resistance are a judgement call, not a formula: none of this has been backtested, and a level marks where price previously turned, not where it must turn again.

Entry extension: where a name sits more than 5% above its EMA9 the tables flag it ⚠ extended (more than 8%, ⚠⚠). Across the 188 backtested signals that were above both moving averages, median drawdown before the outcome was −5.4% at 3–5% extension, −8.8% at 5–8% and −9.8% beyond 8%, with the 25th-percentile case falling from −10.0% to −17.0%. The hit rate does not drop materially (p=0.303), so an extended name is not a worse trade — it is the same trade bought at a worse moment.

#1 · 79.2% hitGolden cross zone (MA50 × MA200)

Stocks whose MA50 crossed above MA200 within the last 20 sessions (bullish regime change), or where MA50 is still below MA200 but within 2% and converging over the last 5 sessions (approaching). A cross is a lagging confirmation, not an entry signal on its own. Backtest: highest hit rate of the four signal panels — 79.2% reached entry + 1.5×ATR14 within 20 sessions (n=53), median 5 sessions, median outcome +7.29%, worst month 66.7% (the most stable of any panel). Against a 62.3% random-entry baseline that is ~+17 points of edge. It is also the ONLY panel that survives a stop-loss system test (+0.35R expectancy, profit factor 1.83, 5.6R max drawdown). Small sample (53 signals, ~7.6/month) and one regime — it lost money in October in an earlier test.

How to read “vs EMA9/SMA20”. The word is where the last close sits relative to its 9-day EMA and 20-day SMA — above both, in the zone between them, or below both. The number beside it is how far the close is from EMA9. Which of the three states a name is in carried no reliable edge in the backtest: across 241 combined signals, “above both” hit 77.5%, “in zone” 72.7% and “below both” 75.0% — a spread inside noise, with 88% of signals sitting on the pass side. The number is the part that mattered. On the 188 signals above both averages, median drawdown before the outcome was −5.4% when the close was 3–5% over EMA9, −8.8% at 5–8% and −9.8% beyond 8%, with the 25th-percentile case falling from −10.0% to −17.0% (correlation −0.308, p<0.001). Hit rate barely moved (−0.076, p=0.303). So ⚠ above 5% and ⚠⚠ above 8% are drawdown warnings about entry timing, not quality warnings — an extended name is the same trade bought at a worse moment, and waiting for a pullback toward EMA9 historically gave the same odds with roughly half the pain.

#2 · 77.9% hitRS Leaders — relative strength divergence (target-only, ~1 month view)

Stocks whose relative-strength line vs QQQ (price ÷ QQQ) has made a NEW 63-day high while the stock's own PRICE has not. The stock is outperforming the index on a relative basis before that strength shows up in its own chart — the theory is accumulation visible in relative terms first. Target = entry + 1.5×ATR14, which BACKTESTED at a 77.9% hit rate within 20 sessions across 95 deduplicated signals (Jan–Aug), median 6 sessions to target, median outcome +6.05%, positive at exit 80.0%. CONTEXT THAT MATTERS: buying on a RANDOM day hits the same 1.5×ATR target 62.3% of the time (n=799), so the real edge here is about +15.6 points, not +78. Ranked #2 of 4 panels. It also FAILS a stop-loss test (+0.08R expectancy, worse than random entry at +0.10R) — trade it target-only or not at all. Monthly hit rate ranged 60–100% with no month below 60%. READ THE TAIL: this is a TARGET-ONLY setup with NO STOP — the worst single outcome in the backtest was −35.8% and the 10th percentile was −10.5%. A high hit rate is not a high expectancy; when this fails it fails large and there is nothing in the rule that cuts it. The same signal tested with a 1.5×ATR stop produced +0.08R expectancy, WORSE than buying randomly every 5 days (+0.10R) — the names it selects are choppy and get stopped out on the way to a good 20-day price. One regime only (~8 months, tech bull market), overlapping windows, no slippage or commissions modelled. Position sizing is yours; this panel does not tell you how much to risk.

#3 · 78.3% hitBull Flag Watch (uptrend pullback, selling volume drying up, 2-3 weeks view)

Stocks in a CONFIRMED uptrend (price above MA50, MA50 above MA200 - stacked averages) that have pulled back 3-14% from their own 20-day high, with SELLING volume drying up specifically (not just total volume - average volume on down-closing days over the last 5 sessions under 85% of the prior 20 sessions' down-day average), with RSI cooled to a neutral 40-60 band - not overbought, not washed out. "Selling volume" is a standard proxy (a day's whole volume counts as selling only if it closed lower than the day before), not true tick-level buy/sell data. This is the opposite framing from Intraday Breakout Watch: instead of chasing a move already underway, this looks for stocks resting inside an intact uptrend before the next potential move, on the theory that fading selling volume during a pullback suggests sellers losing conviction rather than a real reversal. The 3-14% pullback band and the volume/RSI thresholds are reasonable starting defaults calibrated to this basket's typical volatility (most names here run 3-5% daily ATR) - they have NOT been backtested for optimal forward returns, and a pullback meeting every condition here is not guaranteed to resume higher; it can just as easily break down further. A short or empty list on a given day is expected, not a bug - all four conditions holding at once is meant to be uncommon. CHANGED: the down-day selling-volume rule no longer filters this panel — it was replaced by CMF(20) > 0.20 (sustained buying pressure). The old ratio is still shown in grey for reference but gates nothing. Backtest of the swap: hit rate 70.1% → 78.3% (n=60), out-of-sample drift +4.2 → +0.4, median max-adverse-excursion −9.19% → −6.60%, and the worst month lifted from 33.3% (below the random baseline) to 60.0%. Cost: signal count falls from 154 to 60, so expect a shorter list.

#4 · BASE & BREAKOUT · TESTStrong stocks resting, then launching again — display only, not part of TAKE

The checklist (daily bars): SPY above its 50 EMA · the stock is a leader (63-session return vs SPY in the basket's top 30%) · ADR (average daily range) 5%+ · close above a rising 8 > 21 > 50 EMA stack · above both the 200 EMA and 200 SMA · weekly uptrend (above a rising 30-week average). The base: after a 25%+ run, 5–20 sessions of sideways action that is tight (range at most 2.5× ADR and 20%), holds the 21 EMA and is on below-average volume. Trigger price (often called the “pivot” or buy point) = the top of the base. Breakout confirmed: a close above the trigger price on 1.5× average volume, with a green candle closing in the top quarter of its range. Stop = the breakout day's low.

Backtest on this basket (Dec 2025 – Sep 2026, 19 triggers, buying the next open): hit the page's standard 1.5×ATR target within 20 sessions 83% of the time vs 64% for random entries in the same stocks; with the thesis's own exit (stop at the breakout low, sell on a close below the 21 EMA or after 40 sessions) it averaged +1.46R vs +0.20R random, winning only 47% of the time. Read the tail: without the two best trades (HYMC +11.6R, ARM +7.1R) the other 15 averaged +0.41R. That is how this style is supposed to work — many small losses, a few big wins — but 19 trades in one bull run is also exactly what luck looks like (a 7% chance of a hit rate this high by chance). Median stop distance was 9.6%, so size every position to the stop, never by habit.

Longer test (1,000 sessions, Oct 2022 – Sep 2026, 54 triggers, split-adjusted prices) — read this before using the panel. Against random high-volatility (ADR 5%+) names on the same days, the base-and-breakout added nothing to the odds of a 5%+ run: 85% vs 83%. With the same stop for every group it did worse: +5% before −5% in 37% of trades vs 49% for random, and 46% vs 52% for a 1.5×ATR up-or-down race. The better-looking numbers above come from the breakout-day-low stop sitting a median 10.7% away, which makes the stop hard to hit. What remains is a fat right tail: median 20-session return +6.6% vs +3.7% for checklist-only names, mean +17% driven by HYMC, OUST, OKLO, ARM and SNDK, and 30% of trades negative after 20 sessions. 2023 and 2024 were losing years (−1.8% and −1.6% average). Treat this as a hunt for occasional big runners, not a reliable 5% setup.

Reverse-engineered list: volatile washouts. To find what the stocks that actually ran had in common, every stock-day of the last 1,000 sessions was labelled by whether it went on to gain 20% before falling 8% (from the next open, within 20 sessions), and about 25 features measured the day before were compared for runners vs non-runners. Four candidate rules were written from Oct 2022 – Nov 2024 only, then all four were run once on Jan 2025 – Sep 2026. The rule shown here was not the best of the four in 2022–24; it was chosen because it did best in 2025–26, which spends that test period, so the forward test below is the real out-of-sample check. Volatility explained most of it; once volatility was held fixed, the checklist above (EMA stack, tight base, relative-strength rank) carried no information. What did: volatile names far below their long-term averages. The surviving rule — ADR 5%+, close 20%+ below the 200 EMA, 50 EMA falling — reached +20% before −8% 40.8% of the time in the untouched test vs 31.0% for any volatile name (299 entries across 64 stocks, one per stock per 10 sessions; no single stock moves it more than a point), with a median 20-session return of +9.4%. But: it still hit −8% first 53% of the time; in 2022–24 its edge was only +2.3 points, so most of it came from 2025–26's sharp rebounds; and hindsight bias is worst here, because the ticker list was chosen in 2026 and its beaten-down names are, by construction, ones that recovered. This is the opposite of the breakout thesis — it buys falling stocks, not leaders — and a name can sit in the list for months while it keeps falling (see Days in list).

Limits. The dashboard only sees completed daily bars, so a trigger is confirmed after the close and bought the next morning — often above the trigger price (median gap +1.8%), not “as close to the trigger price as you can.” During the session, setups trading above their trigger price are shown as provisional, with volume extrapolated for the time of day; they are not confirmed until the close. Earnings within 5 days is a red flag, not a filter. The Other panels column shows whether a name is also in a ranked panel; on 30 Sep none of the six setups were. Nothing here counts toward TAKE.

#5 · 74.6% hitIntraday Breakout Watch (volume-confirmed, 5%+ in the green, 1 week / short-term view)

Stocks currently up 5%+ on the day AND trading at least 2x their trailing 20-day MEDIAN volume (median, not mean, so one past outlier day like an earnings spike can't quietly inflate the baseline). Neither the day% threshold nor "Off Today's High" tells you whether a move is already used up — a stock sitting near its own intraday high can mean it's still climbing, OR that it already popped once and has been flat near that ceiling ever since with nothing forcing it further; the two look identical on that metric alone. "Move vs Typical Day" compares today's move to the stock's own normal daily range (ATR14) as a MAGNITUDE-only read — deliberately shown in one neutral color, not red/green, because a large number here does not mean "due to reverse" or "cut here." A stock already at 5x its typical day can absolutely run to 8x or 10x on a strong catalyst (an earnings beat, for instance) just as easily as it can pull back — this number carries no directional information either way, it only says how large today is for THIS stock compared to its own normal, which is mainly useful for comparing across tickers whose normal volatility differs a lot. None of the columns here predict what happens next. This is DESCRIPTIVE, not predictive: it only flags a move already underway. Before market close, "Volume vs 20d median" is pace-adjusted for how much of the session has elapsed, so it's an extrapolation, not a guarantee it holds through the close. CHANGED: the 2x-median volume rule no longer filters this panel — it was replaced by CMF(20) > 0.20. The volume ratio is still shown in grey for reference but gates nothing; the 5%+ day rule is unchanged. Backtest of the swap: hit rate 68.5% → 74.6% (n=118), and out-of-sample drift flipped from −8.9 to +1.7 — it stops decaying. Median max-adverse-excursion improves −13.72% → −11.14%, still the deepest of the four panels. This remains the weakest panel and it is still DESCRIPTIVE: holding past day 1 showed no edge in the original test (+0.90% median day 1 decaying to +0.09% by day 5).

PLANSTrade plans — entry, stop, targets, sellers, volume, trend

READ FIRST — the out-of-sample test failed. Every rule on this page (panels, TAKE, sizing, IGNORE) was built and tuned on Jan–Aug 2026, a strong tech bull market. Replayed on a period none of it was fitted to, 20 Oct – 31 Dec 2025 (flat market with a sharp November tech sell-off; SPY +2.3%): The ticker list is also today's basket, chosen with hindsight, which flatters every backtest here. Treat this page as a watchlist, not a proven system. Do not trade money you cannot afford to lose on it.
How to use these cards: every name is a buy at the next open (that is the panel rule that was tested). The card only tells you how BIG. Which to take: only names in 2+ panels — see the TAKE panel at the top of the page for the four-year test and expected drawdown.

Why the earlier buy / wait / hold-off verdicts were removed. Replayed day by day over Jan–Aug 2026 (586 signals), they did not sort winners from losers: HOLD OFF names hit target 82%, WAIT 78%, BUY 77%. Waiting for a pullback filled only 63% of the time, and the trades that never filled were the best ones (96% hit, +7.0%). Tight "chart" stops cut the hit rate from about 78% to about 59%. Distribution, trend and resistance labels showed no edge either, so they are kept only as context. 5–8% above EMA9 was NOT worse in this sample; only above 8% was. One sample in one bull market, so re-test after a few more months of data.
"Normal daily move" (known on charts as ATR, Average True Range) is the average size of one day's price swing over the last 14 sessions. If a stock's normal daily move is $7, then "1.5 normal daily moves" is $10.50. Targets and stops are sized this way so a volatile stock gets wider levels than a quiet one.
One card per name in Weekly Picks and the four ranked panels (click the Plan chip in any panel to jump here). Everything is computed from completed daily bars — while the US session is open, today's unfinished bar is ignored, because every backtest on this page used finished bars.

What is tested and what is not. Three things here carry backtest evidence: the sizing verdict, the Target row (entry + 1.5×ATR14, the target every panel's hit rate is measured against) and the EMA9 stretch figure (more than 5% above EMA9 roughly doubled drawdown without changing the hit rate). Everything else — entry zones, stops, TP1/TP2, "where sellers are parked", the pullback label, the trend label and the exhaustion checklist — is a rule of thumb that turns a chart reading into numbers. None of it has been backtested. Every panel except Golden Cross was tested with no stop; adding one makes it a different strategy.

How the pieces are built. Support/resistance: swing highs/lows (the extreme of the 3 bars either side) over ~1 year, merged when within 0.5 ATR. Where sellers are parked: price bands above today's price where unusually heavy volume traded (each day's volume spread across its high–low range), plus swing highs where price was turned back — buyers stuck there tend to sell as price returns to their cost. Pullback: slight = selling on below-average volume, at most 1 distribution day, depth ≤ 2.2 ATR; distribution = 3+ distribution days (down close on above-average volume) in 10 sessions, or heavy down-day volume on a pullback deeper than 1 ATR. Trend: price vs EMA20 and MA50, and whether MA50 is rising; "broke support" = closed below the most recent swing low. Size: half when the close is more than 8% above EMA9, otherwise full. Stop: none, as tested; Golden Cross cards show the optional 1.5-move stop that panel survived.

Exit when the target is reached. How stretched a name is on arrival depends on how fast it got there. A fast run (more than ~6% over EMA9 on arrival) — take the full exit; a slow grind — take most, trail a small runner under EMA9. (Untested.)

OPTIONS FLOW · TESTWhere options money leaned yesterday — display only, not part of TAKE

What this is. After each close, Yahoo option chains for every basket name (expiries within 45 days) are scanned for unusual out-of-the-money trades: contracts that traded more than their open interest (and 100+ contracts), which suggests new positions rather than closing ones. Bias = bullish minus bearish unusual premium, from −1 to +1. Calls dominate in a rising market (the median name read +0.61 on 30 Sep), so the labels are relative to the basket that day: BULLISH = 0.30+ above the basket median, BEARISH = 0.30+ below. Names with under $250k of unusual premium are THIN and not labelled.

What it cannot see. Yahoo's end-of-day data does not say whether a trade was bought or sold; a big call print can be someone selling calls. Where a closing bid/ask exists the last trade's place in the spread is used as a rough side estimate (“side known”); otherwise the raw direction is used. Checked against a paid feed that infers side (Rallies, 30 Sep): it agreed on SMH, MRNA and roughly STX, and disagreed on NBIS (heavy call selling read as bullish) and AMAT (the paid feed's bullish money was in 2027–28 expiries this scan ignores). Treat it as unproven.

How to use it with the panels above. The first table lists today's panel names with their flow reading, as a second opinion only. Nothing here changes TAKE, Weekly Picks or the v2 forward log. The flow readings run their own forward test (bottom): BULLISH names must beat the basket by 1+ point over 10 sessions, in 55%+ of cases, on 40+ readings. Until that passes, a BEARISH flag on a TAKE name is a reason to look closer, not a reason to skip it.

FORWARD TESTLive record — signals logged after each close, scored after 20 sessions

This is the only honest test left: every name in Weekly Picks and the four ranked panels is written to forward_log.csv after each close, with its size label, whether it was a TAKE, and the market conditions that day. After 20 sessions it is scored with the tested rule (buy next open, sell at entry + 1.5× the normal daily move or at session 20, no stop) and compared with random entries on the same dates. A name that stays in a panel for several days counts once per 5 sessions. The pass/fail test is fixed in advance: TAKE signals (2× target) must hit target at least 10 points more often than random entries scored with the same 2× target, with a higher average return, on at least 20 scored TAKEs. Rules version v2 (27 Sep 2026); the earlier v1 rows are archived. Don't change the rules while the log runs; if you do, start a new log.

Rotation candidates

Groups your tracked tickers by sector (from data.json) and narrows them to two setups: GOLDEN CROSS (MA50 crossed above MA200 recently, or is converging toward it) and BREAKOUT WATCH (within 10% of the 52-week high). A sector only qualifies as a Candidate if at least 30% of its tracked stocks meet one of those AND at least 50% have RSI between 40–65 — that RSI band is the "not overly bullish, not overly bearish" filter: above it you risk buying an extended move (exit liquidity for whoever got in first), below it there's no confirmed reversal yet. This is a structural filter, not a validated signal — nothing here has been backtested against forward returns, and your price history (needed for the golden-cross math) only runs about 9-10 months back, not enough to test across a full market cycle. It tells you what currently matches the setup you described, not what will happen next. Sectors with fewer than 2 tracked stocks never qualify — not enough sample to mean anything.

Death cross zone (MA50 × MA200)

Stocks whose MA50 crossed below MA200 within the last 20 sessions (bearish regime change), or where MA50 is still above MA200 but within 2% and converging over the last 5 sessions (approaching). Same lagging-indicator caveat applies.

Performance overview

↑ Back to top
Daily, WTD, MTD, YTD, and 1-year returns from daily closes. Click a column to sort.

How to read the signal columns — and how much to trust them. Momentum and Persist are 0–100 composite scores, and Signal is the nine-tier verdict derived from them (STRONG BUY through SELL). These were backtested and the ladder does not hold. Measured over 20 sessions against a 52.8% baseline, WATCH — defined as momentum below 50 with persistence above 70 — was the best-performing label at a 60.9% win rate and +4.44% median, while CAUTION returned +4.49% and STRONG BUY only +2.20%, ranking sixth of nine. AVOID (+1.42%) beat HOLD (+0.20%). In short the colours have little monotonic relationship with what happened next, largely because short-term mean reversion swamps the momentum tilt and the beta and RSI sub-scores penalise exactly the names that run. Treat these three columns as description, not instruction. Health Score is supplied in the data feed and has never been tested here. Analyst Target deserves particular caution: on point-in-time consensus targets, hit rate within 3 months fell from 84.8% where implied upside was 0–10% to just 6.3% where it exceeded 100% — the bigger the claim, the less often it landed. My Fair Value is your own model: what the share would cost at its usual price-to-earnings, -sales, -book and -free-cash-flow multiples of the last ten years (SEC filings), taking the middle of the four. The % is how far that sits above (green) or below (red) today’s price. Checked against GuruFocus GF Value on 41 names, the dollar figure was typically 21% away, so read it loosely. ⚠ means the four yardsticks are more than 3× apart (common in cyclicals like memory chips), so the single figure is a midpoint of disagreement — hover for each one. It cannot see a business whose normal multiple has permanently changed (AMZN reads too cheap). Foreign filers show Alpha Spread’s figure, marked AS. Refreshed weekly. Display-only; untested against the next 20 sessions.

How to read “vs EMA9/SMA20”. The word is where the last close sits relative to its 9-day EMA and 20-day SMA — above both, in the zone between them, or below both. The number beside it is how far the close is from EMA9. Which of the three states a name is in carried no reliable edge in the backtest: across 241 combined signals, “above both” hit 77.5%, “in zone” 72.7% and “below both” 75.0% — a spread inside noise, with 88% of signals sitting on the pass side. The number is the part that mattered. On the 188 signals above both averages, median drawdown before the outcome was −5.4% when the close was 3–5% over EMA9, −8.8% at 5–8% and −9.8% beyond 8%, with the 25th-percentile case falling from −10.0% to −17.0% (correlation −0.308, p<0.001). Hit rate barely moved (−0.076, p=0.303). So ⚠ above 5% and ⚠⚠ above 8% are drawdown warnings about entry timing, not quality warnings — an extended name is the same trade bought at a worse moment, and waiting for a pullback toward EMA9 historically gave the same odds with roughly half the pain.
↑ Back to top

Detailed ticker cards

Last close, 3-month daily trend line, 1M/3M/1Y returns, 52-week range position, market cap, beta, volume vs 20-day average, daily RSI(14), weekly RSI(14), sector, and industry. Hide a ticker with the × on its card. To track a NEW ticker or restore a hidden one, edit tickers.txt or re-run the workflow in the GitHub repo.
↑ Top Golden cross Death cross Performance Ticker cards