TICKER → SECTOR_ETF per line; edit any row to override. To enable sector RS, add the matching sector ETF(s) to your watchlist and fetch them.
??: paste the ticker in the quick-map row, pick its sector name, tap ➕ Map. Each ticker only needs this once — mapped forever.
Ten minutes here replaces months of trial and error. Every claim below comes from backtests on this app's own data — nothing is decoration.
Everything in this box replicated on two independent datasets: 13 months / 272 kickoffs, and 5 years / 378 kickoffs across mostly different tickers. Every entry was crowned walk-forward on its own D+0 — no hindsight — and the numbers survive realistic next-open execution. Sections 1 onward were written for an earlier strategy; where they conflict with this box, this box wins.
The plan, in three rules:
What it delivers: 69% / +5.7% and 66% / +5.5% median across the two datasets, against 55% / +3.2% and 59% / +3.6% for simply holding 40 days — in roughly half the time in trade (~18 days vs 40). Realistic next-open fills cost about half a point: 67% / +5.4% and 64% / +4.7%.
There is no stop-loss, deliberately. Two were tested and both made things worse. A kickoff-low stop took 69% → 51%. A base-low stop made large losses more frequent (16% → 21%). About a quarter of trades dip below the kickoff low and recover — that is the retest of the accumulation zone, a normal part of the structure. Breaking that low is genuinely bad news (those trades win ~31% vs 96%), but by the time it happens you are usually near the worst price of the trade, so selling there locks in the bottom.
The one early read you do get — the week-one test. Did the stock's intraday high exceed the kickoff high at any point in the first 5 days? It is a one-time exam: pass once and you are permanently in the strong cohort (73–74% win); never pass and you are in the weak one (36–43%). Pulling back later does not undo a pass. The HOLDING banner reports exactly this.
One context signal, replicated: a kickoff in a stock more than 25% below its 52-week high reaches the continuation exit 82–84% of the time; one within 10% of the high reaches it only 39–71%. This changes how reliably the planned ending arrives, not the profit per trade.
What was tested and rejected — do not filter on these. Quality grades (all land 61–74%; marginal was best in one sample and worst in the other) · PRIME gating (keeps 28% of signals for the same win rate) · climactic entries (62% vs 68% — flips) · sector RS (flat either way) · stock RS (a drag in one sample only) · MA20 cushion and location (no gate; extended >20% was the best band, thin mildly worse) · candle wicks, body and close position (nothing; a large upper wick did fine) · pre-volume surging vs fading (the old 71%/37% split did not transfer — fading was equal or slightly better here) · moving averages, near-52w-high, tight base.
Why none of it works, structurally. The engine has already filtered hard before any grading happens: to be crowned at all, a day needs a 10%+ prior decline, a tight base, a breakout above that base, an upper-half close, a real body and a volume threshold. By then the ugly candidates are gone, and grading within the survivors measures noise around a filter that has already done its job.
Where the kickoff sits in the cycle. Decline → accumulation → the kickoff is the ignition out of accumulation → expansion (2–3 weeks) → crescendo. It is not the start of a smooth trend leg: five candidate "trend start" candles were tested and all returned roughly a coin flip afterwards. The expansion phase is the only part of the cycle with a measurable edge, and the continuation kickoff is its crescendo — which is why selling into it works.
Honest limits. One trade in three loses and one in six loses 10%+. A 66% win rate means losing streaks of 4–5 will happen. Both datasets are this watchlist — trend-biased names, with the top 5 tickers carrying 29–37% of total return; kickoffs on random stocks likely do worse. The recent stretch was weaker (2025: 61%, 2026: 63%, with fatter tails). Two overlapping periods, one engine, no commissions modelled. Nothing here is financial advice.
The material below was written for a different plan: the kickoff as an entry to be graded, where being choosy made sense. It documents real work and its reasoning is sound for that plan — but many of its specific claims (sweet zone, sector RS, near-52w-high, pre-volume bands, quality grades, medal tiers) did not replicate when re-tested under the kickoff → continuation strategy in box 0. Read it as history, not as instructions. Where the two disagree, box 0 is the measured answer.
This app hunts one specific event: the kickoff — the day a stock that has been resting or falling suddenly moves up hard (+5% or more) on unusually heavy volume. That combination is the footprint of large money starting to buy, and it's the single most repeatable beginning of a trend we've found. But here's the honest part most tools hide: a kickoff alone is roughly a coin flip. The edge isn't in the candle — it's in the context around it (which this app scores 0-10), the freshness (day 0-2 is the window), and above all the exits (which the app hands you on every card). You are not buying predictions. You are running a process where winners are allowed to grow and losers are amputated small. That asymmetry, repeated, is the whole business.
Top to bottom: the medal (🥇 strong setup · 🥈 watch · 🥉 skip) is the app's overall verdict — quality. The score (top right) is the evidence count, 0-10 — historically, score ≥6 won ~65% of the time vs ~52% baseline. The action badge is timing: ENTER NOW / STILL GOOD / CONTINUATION / LATE / NO TRADE, with the day-count (D+0 = kickoff was today). Then the signal chips — and one rule to trust: warnings always show. If 🔥 CLIMACTIC or ✕ broken structure exists, it will be on the card; positive chips can never crowd out danger.
One-tap shortcut: open All signals → 🏆 Best combo. That single filter is the distilled version of everything above.
Every card's ⭐ Exit Lines block shows the insurance line — the kickoff low (or, on a continuation leg, that leg's own low). Position size comes from it: decide the account-% you'll risk (1% is classic), divide by the distance to the line. Example: line 8% below entry, 1% risk → position = 12.5% of account. The stop only ever fires on real failure, and your dollar risk is identical on every trade. That's the whole sizing system.
You never decide to take profit. Every trade leaves through one of three doors, and two of them pay:
Execution that survives wicks: everything is judged on closing prices. Set a price alert at the active line (not a stop order), keep a resting disaster stop ~1 ATR below it, and make one decision at 3:50 PM: still below the line → sell; wicked below but recovered → nothing happened. The one override: no stop protects through an FDA date or earnings — before a known binary event, hold only what you'd accept gapping 30-40% against you.
Run properly, the historical profile is ~48% winners, ~+7-8% average per trade, ~88% of each move captured — the math works because losers exit small and winners are left alone. That means: most trades will NOT feel good. Weeks of small stop-outs punctuated by occasional runs that pay for all of it — that is what a working system feels like from inside. Judge the process over 20+ trades, log everything in 📓 Trade Log, and never judge a rule by one trade's outcome. The app finds the moments; the doors bank them; the discipline is yours.
This section reflects the 467-kickoff study (5 years, 8 market regimes, 70 stocks). Earlier versions quoted dramatic numbers from an 11-stock sample; most did not survive the larger test and have been removed. What's left is what held up.
Confidence tiers: [robust] = held across 467 kickoffs and multiple regimes. [tentative] = directionally supported but small sample (n<30), treat as hypothesis.
The kickoff is the entry signal. No kickoff → no trade. Even with Stock RS+ and Sector RS+, a stock without a kickoff has no defined entry, no invalidation level, and no edge from this strategy. The kickoff is what gives you a clean stop-loss line (the kickoff low).
Different findings answer different questions. Here's how they fit:
Re-tested on 1,464 kickoffs, entering at the D+N close conditioned on the kickoff low still intact (what the badge can see). The rule that emerged: the odds don't change through D+8 — the stop distance does. Size so the dollar risk to the kickoff low stays constant.
Why the old "edge halves by D+7" wording changed: that test chased unconditionally, mixing broken setups into the late entries. Separate them and the picture is clean — intact = flat odds with widening stops; broken = the losing group. The low was the discriminator all along.
Rewritten in v13.10. Every item below survived testing on 833–2,000 historical kickoffs. Items that failed testing were deleted rather than softened — see "what we removed" at the end of this section.
What we removed, and why — each was tested and each failed:
The honest answer: don't trade it with this strategy. You'd be guessing about entry and risk without the kickoff anchor. Three defensible options if you must:
The engine flags stocks matching either of two pre-kickoff signatures as ⚐ Kickoff Ready. This is the closest thing to "anticipate the kickoff" the engine offers — but read it as a watch signal, not a buy signal.
Two patterns the chip recognizes:
How long stays ready before kickoff? Short — most stocks fire within a few days of becoming ready, or the conditions decay and the chip turns grey ("stale"). If the chip has been on for more than ~14 days without a kickoff candle, the energy is gone.
Practical use: ⚐ Kickoff Ready means "watch this one daily, not weekly." It does NOT mean "buy soon." You're still waiting for the actual kickoff candle, and the sweet-zone / climactic filters still apply when it fires.
Honest caveat: these signatures filter out stocks where a kickoff is mechanically impossible — they don't predict that a kickoff will fire. Most stocks meeting the criteria never go on to actually kick off. The chip narrows your daily watch list; it does not promise an entry.
Backtested July 2026 on 396 kickoffs from this app's own watchlist data. This is the exit system. Every trade ends through one of three doors — one costs a small insurance premium, two pay you. All levels are judged on the closing price, never on intraday wicks. Only ONE stop level is active at a time — whichever is highest.
What NOT to exit on (all tested ≈ coin-flip noise): red candles, scary wicks, 2-3 down days, high-volume down days, MA20 touches. A close below MA20 = tighten attention (switch to watching the 2-3 day low), never an automatic sell — using MA20 as an exit cut the mean by 2.3 points by amputating healthy pullbacks in the biggest winners. And don't try to sell the top: selling into euphoric ≥8%/2×-volume strength days captured the same ~88% of the peak as simply waiting for Phase 3 — the last ~12% of every mountain is unbuyable hindsight.
Execution (wick-proof): keep the resting broker stop ~1 ATR below the active level as a disaster net; set a price ALERT at the level itself; the real decision is one look at ~3:50 PM ET — still below the line near the close → sell; wicked below but recovered → do nothing. Override: none of this protects across a binary event (FDA date, earnings) — price gaps through stops. Before a known catalyst, hold only what you'd accept gapping 30-40% against you.
Expected results running this system (same data): ~48% win rate, ~+7% mean per trade, ~88% of each move's peak captured, welcome-givebacks nearly extinct. Same survivorship caveats as all backtests. Note: this July-2026 study used ONE decisive close below the kickoff low; the older "2 consecutive closes" variant below is more patient — pick one and be consistent.
If your watchlist is sector-concentrated (e.g., heavy in XLK), the strategy only catches leadership when XLK leads. When leadership rotates to another sector, your scanner has no stocks there to surface. Practical rule: keep 5-10 names per sector in the watchlist so when sectors rotate, you have candidates ready.
"Median +7%" is the middle of a very wide range, not what you make each time. Here is the full distribution of sweet-zone 20-day outcomes (n=119), so you size and plan against reality, not the headline:
Read this correctly: the strategy is not "make +7% per trade." It is "lose on ~37%, make small-to-moderate on most, occasionally catch a +20–40%+ winner that pays for all the losers." The edge lives in that asymmetry — capped losses, occasionally large wins — not in the median. That is why the exit rules below matter more than the entry.
Per-trade, the typical sweet-zone trade peaks near +13% but closes the 20-day window near +7% — a median giveback of ~9 points from its own high (this giveback is measured against the +7% naive median; both shift down slightly under the stricter ~+5% estimate). Also, 19% of sweet trades never reach +5% at all. Implications:
Caveat: peak/giveback figures carry the same survivorship + entry-at-close caveats as all backtest numbers, so your live givebacks may differ. Record the highest profit you saw (not just your exit) in the trade log — that reveals your real peak-vs-exit pattern and whether you're leaving the tail on the table.
Risk rules you see online are usually written for day traders (daily loss limits, fixed 1:3 targets). Here is the correct translation for a 10–20 day kickoff swing. Discipline doesn't create returns — it keeps you alive long enough to compound a modest edge. Survival first.
Why win rate isn't the goal: at ~60% win with capped losses and an occasional large winner, the math already works — e.g. 6 winners averaging +8% and 4 losers averaging −5% nets positive without needing a high hit rate. Chasing a higher win rate by taking profits early (a fixed small target) usually lowers total profit because it kills the right tail. Protect capital, let winners run, let asymmetry compound.
Reality check on "turn $X into millions" content: risk discipline keeps you in the game; it does not manufacture outsized returns. A modest real edge (this one) plus strict sizing plus time and compounding is the honest path. Any pitch combining a high win rate, a great payoff ratio, and a huge target is selling the dream, not describing a durable edge.
Why the golden setup is not just "PRIME plus the next best thing". Two candidates were tested as additional gates in v13.13 and both were rejected: PRIME + pre-volume rising (73% win, n=135, +13.1 points, p=0.067) and PRIME + small upper wick (73%, n=126, +12.8 points, p=0.070). Both effects look substantial, and their parent signals are strong — pre-volume across all kickoffs is a 34-point spread at p<0.0001. But the increment on top of PRIME cannot be proven on 209 PRIME samples, and p=0.067 is the same bar that rejected the upper-wick gate earlier. Adding either would shrink golden by 35–40% for an improvement the data cannot yet confirm — exactly the mistake the near-high and RS gates turned out to be. They stay as chips that inform position size, not gates. Worth revisiting as the sample grows.
Volume was only ever measured at the kickoff before this. Measuring it in all three phases on 833 primaries produced the strongest result in the project — and it overturned a piece of received wisdom.
1 — BEFORE the kickoff (the strongest signal we have). Average volume of the 5 days before, divided by the 10 days before:
A 34-point spread at p<0.0001, and there is no lookahead — you can see it before the kickoff even happens. This contradicts the volume-dry-up doctrine taught by Kacher/Morales and Minervini, where quiet-then-loud is the ideal. In this data, quiet-before won 52% and busy-before won 62%. Accumulation here shows up as volume building, not as silence. We tested the classic version too — contraction + volume dry-up together produced 46% win and −2.2% median, worse than no pattern at all.
2 — AT the kickoff (the band, and why it has a ceiling). 1.15–1.5× → 56% · 1.5–2.0× → 63% · 2.0–3.0× → 54% · 3.0–5.0× → 51%. The PRIME upper limit of 2.5× is doing real work: past it, more volume is worse. That is the climactic effect — a stock going up 10%+ on 2×+ volume is exhausting demand, not building it (48% win, negative median).
3 — AFTER the kickoff (follow-through). Average volume of the 3 days after, vs the kickoff day's own volume. Tested honestly by entering at the D+3 close, so the information is already known: sustained or growing (≥85%) won 65% (+6.2% median) versus collapsed or faded (<60%) at 53%. +8.6 points, p=0.047. A kickoff whose volume vanishes the next day was a one-day event; one where the volume keeps showing up is a campaign. Stacked with a PRIME candle: 72% win, +8.1% median (n=53).
Caveats: all of this is 2022–2026, a mostly rising market. The "surging" cell is 140 trades, so expect the 71% to settle lower in live use — but the direction (fading volume into a kickoff is a warning) is about as solid as anything we have found.
The trend journey shows where the run began: the most recent trough (or trap candle). It is honest retrospective labelling — useful for reading the story — but it is not a forward signal, and the numbers below are why.
Precision is poor. Scanning 6,767 validated troughs (peak→trough decline ≥10%, at least 5 days), a kickoff followed within 10 trading days only 15% of the time; 27% within 20 days; 56% within 60; and 16% never did. The trough is also frequently not the bottom — measured as it formed, only 47% of the time did price avoid trading below it before the kickoff arrived.
The wait is long. Median 35 trading days — about 7 calendar weeks; mean 57 days. Only 7% of kickoffs fire within a week of the low, and 46% take over two months. So "run started here" tells you the story began, not that a kickoff is near.
A finding we tested and rejected (v13.12). An early scan suggested that a kickoff firing soon after the low, from a low that was never undercut, was the best cohort in the project — 80% win with a PRIME candle. It did not survive scrutiny, for two separate reasons, and was removed before shipping:
One fragment did survive on its own: a kickoff within 5 days of the 60-day low wins 68% versus 57% baseline (+11.8 points, p=0.004, n=184). But inside PRIME it adds nothing (+8.8 points, p=0.29), and five buckets were tested, so one false positive is expected by chance. Not enough to gate or size on — noted here so the observation is not lost.
Why this is written up at all: the same discipline removed the RS gate, the score gate, the near-high gate and the location gate. A signal that looks strong in one framing and vanishes in the framing the app actually computes is not a signal — and the failure is worth recording so it is not rediscovered later.
Backtest on the 5-year bar data found that a kickoff's location in the stock's yearly range predicts both win-rate and how long to hold. The card shows a location chip (🏔 / ⚠ / ↗ / ⛰) on the right side of the header:
What separates a deep-recovery winner from a falling knife (backtest): (1) a tight, controlled base before the kickoff is the single best signal (64% win); (2) it has not already run far off its low — catch it early in the turn (winners ~43% off the low, failures ~62%); (3) counterintuitively, the biggest deep winners still looked broken (below/around a flat-or-falling MA50) — the kickoff candle IS the confirmation, so waiting for the MAs to turn means entering after the move is half over. Caveat: "buy what still looks broken" is also how you catch a knife that keeps falling — the fear is sometimes correct. Only the kickoff (price proof of the turn) distinguishes a real bottom from a continuing collapse. Smaller size, hard stop.
The extended chip is now location-aware: ↑ EXTENDED (near high) in green = extension toward new highs (a leader, healthy, still ~58% win). ↑ EXTENDED in red = extension far below the high (an over-stretched bounce off a decline, the weaker exhaustion kind). Same distance above MA20, opposite meaning depending on location.
Header layout: the setup-quality chips (medal, sweet zone, RS, climactic) come first — they apply regardless of duration. Below them, on a separate dashed-off row labeled 📍 location & hold, sits the 52w-high chip. Quality tells you whether to trade; location tells you how long to hold. All location numbers carry the usual survivorship + entry-at-close caveats and are tendencies across many trades, not per-stock predictions.
The scanner does technical analysis well. It says nothing about whether the company behind the ticker is healthy. Strong fundamentals don't predict short-term price moves, but they tell you how aggressive your stop should be when the technical signal fails. A 5/5 fundamental stock can survive an 8% drawdown and recover. A 1/5 story stock can collapse 40% on bad news.
For every stock you're about to trade, you have two ways to check fundamentals:
Either way, check these five numbers in under 5 minutes:
1. Revenue trend — is the business growing?
Open the 💰 Income link. Look at the most recent annual revenue vs prior year.
Good: any positive growth. >20% is strong. >50% is exceptional.
Yellow: flat (0-3%) — business not declining but not winning either.
Red flag: shrinking revenue. Check why — restructuring is sometimes ok, secular decline is not.
2. Net income — are they actually profitable?
Same income statement page. Net income is the bottom-line "profit after everything."
Good: positive net income, growing YoY.
Yellow: small loss but shrinking (heading toward profitability).
Red flag: large losses + losses getting bigger. "Story stocks" like MARA, RIOT, and many small-cap miners live here — fundamentals don't catch them; only crypto/commodity prices do.
3. Gross margin — pricing power signal
On the income statement, calculate (Revenue − Cost of Revenue) ÷ Revenue, or look for the gross profit % line.
Excellent: 70%+ (software with no inventory). Examples: OKTA 77%, NVDA 75%.
Good for hardware: 40-55%. AMD 49% is healthy for chip-making.
Concerning: gross margin falling vs prior year — competitors pressuring prices, or costs rising. Bad sign even if revenue is growing.
4. Cash vs debt — can they survive a downturn?
Open the 🏦 Balance link. Find Total Cash and Total Debt.
Fortress: cash ≥ debt. They can pay off all debt and still operate.
Stretched: debt 2-3× cash. Tight but workable in normal conditions.
Danger: debt > 3× cash AND negative free cash flow. Will need to dilute shares or default if business slows. Stock can drop 40%+ on a credit downgrade.
5. Forward P/E — am I paying a reasonable price?
Open the 📈 Key Stats link. Find "Forward P/E" (next year's estimated earnings).
Reasonable: 15-25 for steady growers, 25-40 for fast growers (>30% rev growth).
Expensive: 40-80. Acceptable only if growth justifies it. NVDA at 35× is fine because revenue grew 114%.
Speculation: 100×+ OR negative P/E (no earnings). Trading the story, not the business.
Score each metric 1 (red) / 2 (yellow) / 3 (green) and average them. Round to nearest integer.
Fundamentals and technicals can disagree. When they do, that's information.
Open the 📅 Earnings link. The scanner doesn't know about earnings dates, but they are binary events that can override every technical signal.
Honest limits: This is a 5-minute check, not a forensic accounting analysis. Companies can have great-looking fundamentals and still collapse (audit failures, regulatory action, fraud). The five-number check filters out the obvious losers and identifies the obvious winners — it doesn't catch sophisticated risks. For trades you're holding more than a few weeks, do deeper research.
The card shows two P/E numbers because they tell different stories:
When they're close (e.g. AAPL TTM 35, Forward 32), the company's earnings are stable — either is fine to use.
When they differ a lot, one number is misleading:
The scanner's auto-score uses Forward P/E when available, falling back to TTM. So OKTA scores well on P/E now (Forward 19.4 = reasonable) even though TTM looks scary (68 = expensive).
PEG = Forward P/E ÷ 5-year expected earnings growth. Why we don't auto-show it: Finnhub's free PEG uses historical growth, which is wrong for stocks that just inflected (like OKTA after going from break-even to profit). The TRUE PEG that Yahoo shows uses analyst forecasts for 5 years ahead.
To find the right PEG manually: tap the 🎯 Analysts link on the card. Yahoo shows "PEG Ratio (5yr expected)" directly. For OKTA that's 1.00 — meaning fairly valued for its expected growth. For most stocks Yahoo lists this directly so you don't need to compute it.
If Yahoo doesn't show PEG (rare for major US stocks), you can compute it: forward P/E ÷ analyst 5yr EPS growth %. Both numbers are on Yahoo's Analysis tab. Skip this work for casual trading — for a quick check, look at Forward P/E alone. PEG only matters when you're deciding between two similar stocks.
Finnhub's free API delivers some numbers reliably and others quirkily. Here's the honest map:
When the auto-fetch number disagrees with Yahoo (you can spot-check by tapping the Key Stats link), trust Yahoo. Use the auto-fetch for speed; use Yahoo for accuracy before committing to a trade.
The scanner reads daily OHLCV data per stock and identifies kickoff candles — the specific day a downtrend ends and an uptrend begins. Then it grades each kickoff on six dimensions and gives you one ranking medal.
What a kickoff is (the north-star definition we built around):
What it is NOT: gap-up dojis, +5% in chop, day-after-trough bounces, low-volume moves, news-driven spikes that gap and fade.
The engine's anchor: it finds the most recent meaningful trough (lowest low in last 60 trading days), confirms it followed a real decline, then walks forward day-by-day looking for the first qualifying kickoff candle. Earliest valid kickoff wins.
Important honest limitation: this finds one specific pattern very well — high-beta stocks recovering from a real decline. It won't surface every "strong stock" — established slow-grinders never have explosive kickoffs. Use it as a verification tool, not the only discovery tool.
Top-left of each card. Combines all signals into one triage badge so you can skim 20 cards in seconds. Sort cards by "🥇 Medal" button to surface candidates fastest.
If you want to verify a STRONG/WATCH manually, or you just want a deterministic flow: walk these 5 steps in order. If any fails, skip the trade.
What I claimed earlier: "TEXTBOOK kickoffs (body 5-8%, vol 1.3-1.7×) deliver +29.9% avg, 87% win rate." That was based on 11 stocks in a small window — and the bigger study did not reproduce it.
From the Tier 2 study (467 kickoffs, 5 years, 8 regimes):
Master principle (refined): the kickoff is the trigger, not the trade thesis. What matters more is WHERE in the trend it fires (early vs extended) and WHAT sector context it's in. Quality grade is descriptive, not predictive.
From 5 years of data (2022 bear → 2026 rally) across 70 stocks and 8 distinct market regimes, here's what the data actually showed:
This section previously named "Sector RS+ AND price 0–10% above MA20" as the single strongest filter. Both halves have since failed testing and the claim is withdrawn — sector RS had only 32 kickoffs of evidence, and distance above the MA20 predicts nothing (every band 51–54%). What follows is what actually survived, on the largest samples available.
Location is context, not a gate. The −15 to −30% band below the 52-week high is the best cell (58%, and 62% when also above the 200-day), and above/below the 200-day separates 59% from 52%. But adding location to the medal as a requirement lowered the STRONG cohort from 73% to 67% while cutting it 40% — the same lesson as the near-high and RS gates. Use it to size and to set expectations, not to decide.
A note on how these were measured: everything here uses 20-day forward returns entering at the signal close, with no stop, so the numbers are comparable to each other. Your lived results will be lower and choppier, because in real trading the stop takes you out first: with the kickoff-low stop the same population wins about 34–38% with a negative median, and the strategy is positive only because roughly 21% of trades run +20% or more. Both facts are true at once — see the exit section.
Climactic kickoffs — day return ≥10% AND volume ratio ≥2×: n=124 in the study, 20d median -2.46%, win 45%. Worse than the baseline. The bigger and louder the kickoff candle, the more likely it's exhaustion, not initiation.
The card shows a red 🔥 CLIMACTIC chip when both criteria fire. Treat as warning: smaller size, tighter stop, or skip.
Refinement (added v.11.1 — volume exhaustion): the volume sweep showed huge volume is a warning on its own, not only when paired with a big day. Volume above ~2.5× average fell to ≈50% win, and above 3.5× went negative (−0.8% median) — even on a moderate day. The healthy band is 1.5–2.5×; beyond that a spike is more often a blow-off / capitulation than accumulation. The card now shows an orange ⚠ VOL n× chip when volume exceeds 2.5× but the move isn't full-climactic — a softer caution than 🔥 CLIMACTIC. The clearest unifying lesson across all the analyses: the loudest kickoffs — biggest day, biggest volume — are the worst; moderate-strong on both is best.
When the stock is more than 20% above its MA20 at kickoff, forward returns drop significantly. Best filter range is price within 10% above MA20. The chart now draws an orange dashed line at MA20 + 10% — when the blue price line sits above the orange line, you're in extended territory.
The card shows an ↑ EXTENDED chip when price is >20% above MA20 — but its color is location-aware (since v.11.0): green "↑ EXTENDED (near high)" when the stock is also near its 52-week high (a leader pushing to new highs, ≈58% win — the healthy kind), and red "↑ EXTENDED" when it's far below the high (an over-stretched bounce off a decline, the exhaustion kind — ≈47% win, the weakest setup in the data). Same distance above MA20, opposite meaning depending on location. Tap the chip for this explanation. v.12: the score's −1 extended penalty now follows the same logic — it applies only to the far-below-high (exhaustion) kind; near-high extension is no longer penalized.
The sector-RS edge survives across most regimes but can disappear or reverse in some periods (2024 H2 chop, 2025 H1). Even the best filter doesn't work 100% of the time. Be more cautious when SPY regime banner shows TRANSITION or CHOP.
A disciplined kickoff strategy with these filters gives roughly 60-65% win rate and +5-10% median expected return per trade. Not 90%+ win rates or +30% medians. Anyone claiming higher with this kind of public-data strategy is either fooled by sample size or selling something. The edge is real but modest — it compounds over many trades with proper position sizing.
Caveats on the study: Survivorship bias (only stocks that still exist). Selection bias (your watchlist is tech-heavy). Forward returns measured from kickoff close — real entry happens later at different prices, so live edge is probably 20-30% smaller than backtested. Median results hide individual variance — every "ideal" trade still has tail risk.
Versions up to v.11 displayed an OBV (On-Balance Volume) chip and used OBV distribution as a hard SKIP trigger in the medal. In v.12 a direct backtest was run on this app's own data: among 30,000+ windows where price was trending up (+5%/20d), forward 20-day outcomes were 51% win with OBV distribution-divergence vs 52% with OBV confirming (n=1,365 divergence cases) — no separation. The signal was noise, and worse, it was vetoing setups that the validated signals (RS, kickoff quality, hold ratio, location) rated highly.
The lesson kept: volume matters at the kickoff candle (1.5–2.5× is the sweet spot; >2.5× is exhaustion — see the climactic section), and intraday/aggregate volume-flow indicators predict volatility, not direction. Cumulative flow indicators like OBV measure something real but carry no forward edge here.
Detects stocks in tight compression — supply being absorbed before ignition. Required: last 15-day range ≤ 65% of prior 30-day range, daily range shrinking ≥ 5%, volume contracting ≥ 5%, no breakdown to new lows.
Price ≈ Reality − Expectation. Stocks don't move on absolute reality — they move when reality differs from what was expected. A stock rises when reality beats expectations or when expectations themselves rise.
Relative strength is comparative, not absolute. "Strong" only means anything in comparison: stock vs market, stock vs sector, stock vs peers. A stock holding flat while the market drops is showing real demand.
Trends emerge from multiple forces: liquidity (Fed, rates), psychology (FOMO, fear), positioning (who's short/long), fundamentals (earnings, growth), and institutional flows (13F, large block trades). Charts visualize the net result of all of these.
The structural alignment idea: Monthly = structural strength (is this a long-term leader?). Weekly = emerging leadership (is momentum improving now?). Daily = tactical entry (is buying pressure appearing today?). Best setups have all three aligned.
Most kickoffs in your data cluster together. In April 2026, 13 of 14 stocks fired kickoffs within a 30-day window. That's not 13 independent setups — it's a sector-wide recovery from the Feb correction. Measured precisely in v.12.2: sector ETFs rise ≥1% on 17.9% of days, yet 47.7% of all kickoffs land on those days — a 2.7× clustering. Watch for these waves; they're where the harvest is. One more audit surprise (v.12.3): kickoffs fired while SPY was risk-off won 58% vs 51% during risk-on — they're the post-selloff wave babies. The old ⚠ counter-trend chip warned against exactly the better class, which is why it's gone.
Since Price ≈ Reality − Expectation, knowing expectations matters. There's no clean metric, but tractable proxies:
The app doesn't measure these directly. It infers expectation shifts from price-and-volume behavior (kickoff = expectation broke through; RS+ = expectations beating peers).
The worker scans your watchlist after the close and pushes a phone notification when a kickoff candle fires — app closed, phone locked. One-time setup:
yahoo_worker_v5.js over the old code → Deploy. (The normal app fetch keeps working — same proxy.)scanner-kv → worker Settings → Bindings → add KV binding named SCAN_KV.15 21 * * 1-5 (21:15 UTC = 5:15pm EDT / 4:15pm EST — after the close year-round).kickoff-scan-x7q2m9). Anyone who knows the topic name can read it — make it random.How it works & honest limits: the worker prefilters the whole watchlist via Yahoo's multi-symbol endpoint (+5% day, prior ≥10% decline), then chart-verifies survivors (volume ≥1.3×, green, upper-half close). It checks the candle only — no medal, location, base, or climactic grading — so the push means "open the app and grade it", not "buy". The app does not auto-update from the worker scan: opening the app and fetching is still how your charts refresh (harmless — Yahoo has no real quota at this volume). Finviz discovery is best-effort scraping: it may break or get blocked; the watchlist scan keeps working regardless. Re-sync (📤) whenever your watchlist changes. A "none today" low-priority push confirms the cron ran; kickoff pushes arrive high-priority.
How to use: go to finviz.com/screener.ashx, click "All" to see every filter tab, set the values below, then use "Charts" view to scan results visually. Finviz encodes filters in the URL — set them once, bookmark it, tap nightly after the close (free data is delayed 15–20 min, which doesn't matter for an after-close scan).
Same five filters, plus 50-Day High: 0-10% below High — leans toward kickoffs near their highs, the highest-probability location in the backtest. Run both: Screen 2 is the quality cut, Screen 1 also catches the deep-recovery type.
⚠ Manual skip (free Finviz can't cap ranges): the screen will also surface climactic candles. Skip anything up more than ~10% or on obviously enormous (>2.5–3×) volume — those are the ≈46%-win exhaustion candles the app would flag 🔥 CLIMACTIC / ⚠ VOL anyway.
What Finviz can't see (the app's job): the prior decline, the tight-base structure, upper-half close, the kickoff low, the medal. And it will miss continuation kickoffs in stocks already trending — for names you already track, the app is the detector; Finviz is only for discovering new names. Workflow: Finviz after close → handful of +5%/1.5× names → paste into the app → trade only what earns the medal. Most evenings this returns a few names and many fail the structure check — that's normal. The scan earns its keep on the wave days after pullbacks, when fresh kickoffs cluster.
| 13-month | 5-year | |
| The plan | 69% / +5.7% | 66% / +5.5% |
| Realistic next-open fills | 67% / +5.4% | 64% / +4.7% |
| Just holding 40 days instead | 55% / +3.2% | 59% / +3.6% |
| Continuation actually arrives | 77% | 64% |
| Median time in trade | ~18 days (vs 40 for buy-and-wait) | |