Skip to main content

Signal Sweep

Signal, Noise, and the Peer-Group Filter

DraftApril 2026 ยท happycode_ch

The standard critique of technical analysis is well-founded. Most indicators are transformations of the same underlying price series, tested on the same historical data until they appear to work, and then published or sold without any accounting for the multiple-comparisons problem. A researcher who tests 488 indicator-direction-horizon combinations on a single stock and reports the top ten is not doing research. They are doing selection. The ten survivors are the best draws from a large random experiment, and their forward performance should be expected to match the average of the 488 tested combinations, not the average of the top ten.

The Signal Sweep is designed to refuse that procedure. The question it asks is not whether an indicator can be made to fit historical data on a single ticker. The answer to that question is yes, always, for any indicator, given enough parameters and enough patience. The question it asks is narrower and more useful: whether any indicator-direction-horizon combination produces consistent, positive, beta-adjusted expected value across an entire peer group of related companies โ€” companies that share sector exposure, regulatory environment, and analyst coverage โ€” without optimization for any individual ticker. That is a much harder standard, and very few signals clear it. The low survivor rate is the finding, not a failure.

The motivating problem is practical. A thesis on a managed-care insurer or a cable operator or an athletic-retail brand takes weeks to develop and months to play out. The conviction on the five-year thesis is high; the conviction on the specific Tuesday to open the first tranche is always lower. When the investor knows they want to own a stock for 12 to 18 months but does not know whether to buy today, next week, or in three weeks, a timing tool would be useful โ€” but only if it earns its output. A system that reports a high-confidence buy signal on every other trading day is worse than nothing, because it confers a sense of precision that the underlying data does not support. The sweep is designed to earn its output by making the survivor bar high enough that most candidates fail, and by reporting the failure rate openly.

The Managed-Care Peer Group

The canonical peer group for the sweep is managed-care, defined in `sectors/managed-care/peers.yaml` and scoped to nine companies drawn from SIC code 6324 (Hospital and Medical Service Plans). In order: Molina Healthcare (MOH, the target position for the author's active thesis), UnitedHealth Group (UNH, the sector's large-cap quality proxy), Elevance Health (ELV, formerly Anthem, the largest Medicaid MCO by coverage), Centene (CNC, the largest Medicaid MCO by lives and MOH's closest peer), Humana (HUM, the Medicare Advantage leader), Alignment Healthcare (ALHC, small-cap Medicare Advantage), Oscar Health (OSCR, technology-driven ACA-marketplace focus), Clover Health (CLOV, Medicare Advantage startup with an in-house AI platform), and Cigna Group (CI, included with explicit caveats because Evernorth dominates its revenue mix and pharmacy-benefit-manager terminology pollutes the sector lexicon).

Nine tickers is a reasonable size for a sweep. It is large enough that three-ticker agreement represents a meaningful fraction of the group rather than a coincidence, and large enough that the pooled EV estimate across the group has workable statistical power. It is small enough that the group is not a proxy for the broad market; UNH carries significant weight in the S&P 500, but ALHC, OSCR, and CLOV do not, and the market-model beta adjustment in Phase 2 removes the portion of each stock's return that can be explained by broad-market exposure.

Peer-group construction is the most consequential methodological decision in the pipeline โ€” more consequential than the indicator library, more consequential than the hit-rate threshold. An identical indicator library run against a different peer grouping can surface a different set of survivors because the consistency filter is measuring how a group of stocks collectively responds to technical extremes, and the composition of the group defines what "collectively" means. The honest practice is to run several plausible peer configurations โ€” by size, by sub-specialty, by inclusion or exclusion of borderline names โ€” and treat the intersection of surviving signals as the robust set. A signal that survives only one peer configuration is a claim about that configuration, not about the sector.

Beta Adjustment, and What It Reveals

Managed-care stocks are not market-neutral. UNH in particular functions as a large-cap quality proxy whose daily return is explained to a meaningful degree by the S&P 500's. A momentum signal that fires on UNH the day before a broad-market rally will generate positive raw forward returns almost regardless of what the indicator is measuring, because the market gave the stock a tailwind that the signal had nothing to do with. For an investor whose alternative to the trade is simply owning the market, raw forward returns overstate the value of the signal.

The market model used by the sweep โ€” AR equals R_stock minus beta times R_SPY โ€” is the standard event-study adjustment (Brown and Warner, 1985; Kothari and Warner, 2007). A 20-day raw return of 4% during a period in which SPY gained 5% on a ticker with beta 0.8 produces a beta-adjusted return of 4% minus 4%, which is zero. The stock did nothing the market did not explain. A signal that looks promising on raw returns and survives beta adjustment is a qualitatively different category of finding from a signal that does not survive it: the former predicts alpha, the latter predicts return, and only the first is actionable for a value investor whose default position is the market.

In practice, beta adjustment compresses EV estimates more sharply for momentum signals on high-beta stocks that track the broad market than for mean-reversion signals on sector-idiosyncratic weakness. A buy transition on a mean-reversion oscillator tends to fire on relative weakness that is specific to the ticker or to a sector-wide repricing, not to a broad-market drawdown, and the beta adjustment removes less of the signal. This is not a claim about any specific sweep run โ€” it is what the arithmetic of the market model implies about the two signal classes. The survivors reported after beta adjustment are a different set of names than the survivors on raw returns, and the published sweep output uses the beta-adjusted EV as the headline column for precisely this reason.

The Random-Date Baseline

The random-date baseline is the most underappreciated diagnostic in the pipeline. For each ticker in the peer group, the pipeline draws 200 dates uniformly at random from the full available price history โ€” not from signal events, not from any filtered subset, just 200 arbitrary trading days โ€” and computes forward returns at all four horizons. The pooled random sample produces a hit rate, an expected value per trade, a payoff ratio, and a Kelly fraction that appears in the sweep report under the label `_random_baseline`. The random number generator is seeded so the baseline is reproducible across reruns.

The reason the baseline matters is that the naive null โ€” 50% hit rate โ€” is wrong. US equity markets drift upward over multi-year horizons, which means the unconditional probability of a positive 60-day return on a typical sector stock since 1990 exceeds 50%. A buy signal with a 60-day hit rate of 62% that clears the 55% threshold is not necessarily producing edge; if the random baseline already shows a 60-day hit rate of 61% on the same ticker group, the signal's contribution over dumb-luck timing is a single percentage point. The report puts the random baseline on the same rows as the survivor indicators so the comparison is direct. A surviving signal has to beat the random baseline on beta-adjusted EV, not just clear the 55% threshold in absolute terms.

The three filters โ€” consistency threshold, random baseline, and DSR โ€” are complementary, not redundant. The consistency filter demands that a signal work on more than one ticker. The random baseline demands that the signal beat the market's unconditional drift. The DSR demands that the signal's Sharpe ratio survive the multiple-testing correction that follows from running 488 combinations at once. A signal that passes all three is a narrow claim โ€” the pipeline does not report it as "the best technical indicator" โ€” but a defensible one.

How to Use This in Practice

The Signal Sweep is a timing tool, not a thesis tool. These are different things. The thesis on Molina โ€” constructed from Medicaid redetermination dynamics, medical-loss-ratio guidance, capital allocation discipline, and the valuation against the peer group โ€” either holds or it does not, and no technical indicator informs that question. The sweep does not touch the thesis. What it addresses is narrower: given a conviction position the investor has already decided to own at a defensible price, whether today is a better entry point than two weeks from now.

In that context, the 60-day horizon is the primary output. A surviving buy signal at the 60-day horizon says: historically, when this indicator fired a buy transition on a stock in this peer group, the beta-adjusted forward return over the following 60 trading days was positive at a rate that exceeded the 55% threshold, was consistent across at least three tickers, outperformed a 200-date random baseline on beta-adjusted EV, and survived the DSR multiple-testing correction against the other 487 combinations tested in the same run. That is a narrow claim but an honest one. It supports a decision to open or add to a position this week rather than next, on a stock whose thesis and valuation have already been built elsewhere.

The practical workflow is to check for surviving signals as a confirmation layer, not as a trigger. If the thesis is live and the current price is near the accumulation target, a coincident buy signal from a sweep survivor provides marginal support for acting now. If no signal is firing, the absence of a signal does not contradict the thesis โ€” it means the timing confirmation is absent, and accumulating on a pre-decided schedule remains the default. The sweep output is an input to the entry decision, not a substitute for the entry decision.

What the sweep is not: a standalone trading system, a day-trading tool, or a justification for opening a position without an underlying thesis. A strong RSI oversold reading on a stock with deteriorating fundamentals is a mean-reversion setup against a structural downtrend, and the technical signal says nothing about whether the fundamentals will recover. The sweep is designed to run downstream of fundamental analysis, as the final timing filter on a position the investor already wants to own at the observed price.

Position in the Research Stack

The research architecture on this site runs in three layers, and the sweep occupies only one of them. The Language Analysis module examines SEC filing text for shifts in how management describes risk, cost pressure, and competitive dynamics โ€” signals that can precede numerical deterioration and may precede price movement by one to two quarters. The Signal Sweep module, documented here, examines price and volume for quantitative timing signals that reflect how the market collectively prices the sector's stocks at technical extremes. The valuation work โ€” reverse DCF, the seven academic value scores, and the position cards that pin thesis, entry, and exit rules to a specific ticker โ€” prices the thesis itself: what return the stock offers at the current price given a defensible earnings scenario.

The three layers are complementary and operate at different cadences. Language analysis runs at the filing cadence โ€” quarterly, with the richest signal in annual 10-K risk-factor language. The sweep runs at the daily price cadence, with output relevant on the order of days to weeks. Valuation runs at the multi-year horizon, tolerant of short-term price noise. An investor using all three is asking the thesis question (valuation), the early-warning question (language), and the timing question (sweep) โ€” and not conflating the answers. A stock that fails the valuation screen is not a candidate for timing analysis. A stock whose language has deteriorated materially is a candidate for thesis reassessment, not for timing a new entry.

The ordering matters. The correct sequence is to establish the thesis and the valuation before consulting the sweep โ€” not to look for a surviving technical signal and retrofit a thesis to match it. A surviving sweep signal on a stock with no valuation work is not an actionable finding. A surviving sweep signal on a stock with a developed thesis and an attractive entry price is the closest thing to timing confirmation the pipeline is designed to produce, which is not a claim to predict price and is not intended as one.

What to Expect from the Output

The sweep report lists surviving indicators sorted by beta-adjusted EV within each direction-horizon group. For each survivor, the columns include the number of tickers that cleared the 55% threshold, the average hit rate across the group, the total event count, the EV per trade on both raw and beta-adjusted returns, the payoff ratio, the Kelly fraction (reported descriptively, not as a sizing prescription), the DSR p-value, the Harvey-Liu-Zhu t-statistic, and the out-of-sample results from walk-forward validation when that entry point has been run. The `_random_baseline` row for the same direction and horizon sits among the survivors so that the reader can see what dumb-luck timing would have produced on the same peer group across the same window.

The stratified EV report โ€” a separate entry point against a stored `run_id` โ€” adds a further layer by splitting signal events by a Schwab fundamental field (PE ratio, beta, short interest as a percent of float, ROE, or several others) into buckets and reporting EV per bucket. Conditional findings of the form "the signal works substantially better when the stock is trading in the bottom quartile of the peer-group PE distribution" are often more actionable than the unconditional average, because they tie a technical timing signal to a valuation state. When such conditioning is present the sweep report says so; when it is not the sweep report says so too.

The honest summary of the sweep output is that a small number of indicator-direction-horizon combinations show consistent, positive, beta-adjusted expected value across a curated peer group after multiple-testing correction, random-date comparison, and walk-forward validation. Most combinations do not. The ones that do are reported here without embellishment, as a timing input for positions where the thesis and the valuation have already been established by independent work. The sweep is a filter, not a strategy.