weekly_change
Weekly Price Change
Triggers when the absolute price change over the last 5 trading days exceeds the threshold. Bullish if up, bearish if down.
Signal family
Trend — Signals that fire when price is continuing or reversing an established directional move. Momentum-following by nature.
Parameters
| Name | Description | Default | Range |
|---|---|---|---|
| threshold_pct | Minimum absolute change (%) | 10 | 1–50 |
Historical context
3,664,133 triggers on 23,631 tickers, 1988-03-31 → 2026-05-01. Universe: global — all covered exchanges (mcap ≥ $100,000,000, price ≥ $1). Long-only convention: BUY at open T+1, hold the horizon, compare to S&P 500 Equal Weight over the same window.
Methodology footnotes
Benchmarks shown in the detail tables: spxew (S&P 500 Equal Weight — primary, median-stock view, avoids the 2020+ megacap-concentration distortion), spx (S&P 500 cap-weighted, distorted post-2020), msci (MSCI World USD). Per-stock regime tags: trending = ADX(14) ≥ 25, high vol = 20d realized annualized vol ≥ 20%. 1d return = intraday T+1 open→close; 20d = open T+1 to close T+20.
At a glance — alpha vs S&P 500 Equal Weight, global universe
Holding-period sensitivity. Bullish columns: positive = signal worked (long the trigger beat the index). Bearish columns: negative = signal worked (the flagged stock underperformed).
| Horizon | Bullish α | Bearish α |
|---|---|---|
| 5-day | -0.16% | +0.84% |
| 20-day | +0.56% | +1.59% |
| 60-day | +1.56% | +2.49% |
| 1-year | +9.80% | +9.85% |
Bearish: worse than random (p=1.000).
Where does WEEKLY_CHANGE actually fire?
The bucket distribution often reveals what the signal really is, regardless of its textbook label. Heavy concentration in "non-trending + high vol" = it's mostly a chop-market event. Heavy in "trending + low vol" = it picks up the smooth grinds. Read the chart before the alpha numbers — context shapes everything that follows.
Does it work in every regime?
Trigger alpha split by the host stock's own regime on the trigger date — trending or ranging, high-vol or low-vol. The 20d alpha you'd actually capture if you took the trade. Bars matching your direction's "right" sign (positive for bullish, negative for bearish) = the signal worked in that regime; opposite sign = avoid it there. A signal with one strong-positive bar and three flat ones isn't a "20d alpha" signal — it's a "20d alpha when the stock is X" signal.
Does it work in every era?
A multi-year average can hide major instability. The sample splits into three windows: 2015–2019 (pre-COVID), 2020–2022 (pandemic + 2022 bear), and 2023+ (post-ZIRP + AI megacap rally). All three matching your direction's "right" sign = the signal is durable. One era doing all the work = a regime-specific edge that may not repeat. The bigger the variance across eras, the smaller the position you should run.
↑ Bullish triggers
| Bench | Metric | 1d | 5d | 20d | 60d | 252d |
|---|---|---|---|---|---|---|
| spxew | Stock % | -0.09% | +0.16% | +1.65% | +4.59% | +22.67% |
| Bench % | +0.06% | +0.29% | +1.17% | +3.07% | +12.89% | |
| Alpha % | -0.15% | -0.16% | +0.56% | +1.56% | +9.80% | |
| Median alpha | -0.30% | -0.96% | -1.93% | -4.07% | -8.61% | |
| Hit rate (α>0) | 45.5% | 44.4% | 44.3% | 42.9% | 42.7% | |
| p (naive) | <0.001 | <0.001 | <0.001 | <0.001 | <0.001 | |
| p (HAC) | <0.001 | <0.001 | <0.001 | <0.001 | <0.001 | |
| N | 2,067,047 | 1,987,482 | 1,970,553 | 1,918,053 | 1,688,840 | |
| spx | Stock % | -0.09% | +0.16% | +1.65% | +4.59% | +22.67% |
| Bench % | +0.03% | +0.32% | +1.32% | +3.77% | +15.72% | |
| Alpha % | -0.13% | -0.17% | +0.39% | +0.85% | +7.07% | |
| Median alpha | -0.29% | -1.00% | -2.11% | -4.83% | -11.73% | |
| Hit rate (α>0) | 45.6% | 44.1% | 43.8% | 41.6% | 40.3% | |
| p (naive) | <0.001 | <0.001 | <0.001 | <0.001 | <0.001 | |
| p (HAC) | <0.001 | <0.001 | <0.001 | <0.001 | <0.001 | |
| N | 2,084,305 | 2,019,378 | 1,993,058 | 1,941,731 | 1,719,649 | |
| msci | Stock % | -0.09% | +0.16% | +1.65% | +4.59% | +22.67% |
| Bench % | +0.06% | +0.30% | +1.16% | +3.34% | +13.38% | |
| Alpha % | -0.15% | -0.17% | +0.54% | +1.28% | +9.05% | |
| Median alpha | -0.32% | -1.00% | -1.97% | -4.41% | -9.67% | |
| Hit rate (α>0) | 45.2% | 44.1% | 44.2% | 42.3% | 41.8% | |
| p (naive) | <0.001 | <0.001 | <0.001 | <0.001 | <0.001 | |
| p (HAC) | <0.001 | <0.001 | <0.001 | <0.001 | <0.001 | |
| N | 2,066,998 | 1,996,522 | 1,982,863 | 1,926,962 | 1,694,529 |
Permutation null detail — all horizons × each benchmark
| Horizon | Bench | Observed lift | Null mean | Null 95% CI | pperm |
|---|---|---|---|---|---|
| 1d | spxew | +0.05% | +0.12% | [+0.12%, +0.13%] | 1.000 |
| 1d | spx | +0.06% | +0.13% | [+0.13%, +0.14%] | 1.000 |
| 1d | msci | +0.06% | +0.14% | [+0.13%, +0.14%] | 1.000 |
| 5d | spxew | +0.38% | +0.57% | [+0.56%, +0.58%] | 1.000 |
| 5d | spx | +0.41% | +0.59% | [+0.58%, +0.60%] | 1.000 |
| 5d | msci | +0.41% | +0.59% | [+0.58%, +0.60%] | 1.000 |
| 20d | spxew | +1.83% | +1.84% | [+1.82%, +1.86%] | 0.831 |
| 20d | spx | +1.88% | +1.86% | [+1.84%, +1.88%] | 0.035 |
| 20d | msci | +1.93% | +1.87% | [+1.85%, +1.90%] | 0.005 |
| 60d | spxew | +3.24% | +3.87% | [+3.84%, +3.91%] | 1.000 |
| 60d | spx | +3.30% | +3.93% | [+3.89%, +3.97%] | 1.000 |
| 60d | msci | +3.33% | +3.96% | [+3.92%, +4.00%] | 1.000 |
| 252d | spxew | +4.86% | +5.73% | [+5.65%, +5.81%] | 1.000 |
| 252d | spx | +6.23% | +6.11% | [+6.03%, +6.20%] | 0.010 |
| 252d | msci | +6.00% | +6.00% | [+5.92%, +6.09%] | 0.517 |
Example triggers on US large-caps (2023+, mcap ≥ $30B)
Six recent bullish WEEKLY_CHANGE triggers on US mega-caps. Top three: the signal's best outcomes. Bottom three: the worst. Extreme outliers (|α| > 25%) excluded. The three best and three worst are still tail outcomes by construction — read them as the range, not the typical result.
Strongest outcomes (what WEEKLY_CHANGE looks like when it works)
Weakest outcomes (what WEEKLY_CHANGE looks like when it fails)
Stock-regime quadrants (2×2 per-stock, 20d alpha detail table)
| Quadrant | N | Stock % (spxew) | Bench % (spxew) | Alpha % (spxew) | p (HAC) | Stock % (spx) | Bench % (spx) | Alpha % (spx) | p (HAC) | Stock % (msci) | Bench % (msci) | Alpha % (msci) | p (HAC) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Trending + Low vol Clean directional grind, low whipsaw | 3,373 | +27.35% | +1.21% | +26.08% | <0.001 | +27.35% | +1.49% | +25.70% | <0.001 | +27.35% | +1.46% | +25.77% | <0.001 |
| Trending + High vol Crisis selloff or parabolic rally | 1,310,815 | +1.61% | +1.17% | +0.54% | <0.001 | +1.61% | +1.33% | +0.34% | <0.001 | +1.61% | +1.15% | +0.53% | <0.001 |
| Non-trending + Low vol Quiet chop, summer doldrums | 210 | +3.79% | +0.73% | +2.88% | 0.0140 | +3.79% | +0.96% | +2.67% | 0.0234 | +3.79% | +0.79% | +2.83% | 0.0157 |
| Non-trending + High vol Classical "whipsaw zone" for momentum | 798,675 | +1.45% | +1.14% | +0.36% | <0.001 | +1.45% | +1.27% | +0.22% | <0.001 | +1.45% | +1.16% | +0.33% | <0.001 |
Sub-period breakdown table (20d alpha)
| Period | N | Alpha % (spxew) | p (HAC) | Alpha % (spx) | p (HAC) | Alpha % (msci) | p (HAC) |
|---|---|---|---|---|---|---|---|
| 2015-2019 2015-01-01 → 2020-01-01 | 476,630 | -0.41% | <0.001 | -0.63% | <0.001 | -0.45% | <0.001 |
| 2020-2022 2020-01-01 → 2023-01-01 | 770,183 | +0.39% | <0.001 | +0.61% | <0.001 | +0.80% | <0.001 |
| 2023-2026 2023-01-01 → 2099-01-01 | 895,973 | +1.25% | <0.001 | +0.76% | <0.001 | +0.86% | <0.001 |
↓ Bearish triggers negative alpha = signal was right (stock underperformed market)
| Bench | Metric | 1d | 5d | 20d | 60d | 252d |
|---|---|---|---|---|---|---|
| spxew | Stock % | +0.16% | +1.03% | +3.33% | +6.88% | +24.82% |
| Bench % | +0.05% | +0.16% | +1.65% | +4.42% | +14.64% | |
| Alpha % | +0.11% | +0.84% | +1.59% | +2.49% | +9.85% | |
| Median alpha | +0.03% | +0.34% | -0.11% | -1.77% | -7.18% | |
| Hit rate (α>0) | 50.4% | 52.1% | 49.6% | 46.7% | 43.8% | |
| p (naive) | <0.001 | <0.001 | <0.001 | <0.001 | <0.001 | |
| p (HAC) | <0.001 | <0.001 | <0.001 | <0.001 | <0.001 | |
| N | 1,476,636 | 1,433,028 | 1,420,026 | 1,376,329 | 1,271,926 | |
| spx | Stock % | +0.16% | +1.03% | +3.33% | +6.88% | +24.82% |
| Bench % | +0.03% | +0.27% | +1.93% | +4.80% | +17.25% | |
| Alpha % | +0.12% | +0.75% | +1.38% | +2.09% | +7.79% | |
| Median alpha | +0.04% | +0.27% | -0.34% | -2.26% | -9.79% | |
| Hit rate (α>0) | 50.6% | 51.6% | 48.9% | 45.9% | 41.8% | |
| p (naive) | <0.001 | <0.001 | <0.001 | <0.001 | <0.001 | |
| p (HAC) | <0.001 | <0.001 | <0.001 | <0.001 | <0.001 | |
| N | 1,487,885 | 1,444,260 | 1,439,886 | 1,391,775 | 1,296,666 | |
| msci | Stock % | +0.16% | +1.03% | +3.33% | +6.88% | +24.82% |
| Bench % | +0.02% | +0.27% | +1.78% | +4.53% | +15.11% | |
| Alpha % | +0.13% | +0.74% | +1.50% | +2.52% | +8.94% | |
| Median alpha | +0.04% | +0.25% | -0.23% | -1.82% | -8.15% | |
| Hit rate (α>0) | 50.5% | 51.5% | 49.3% | 46.6% | 42.9% | |
| p (naive) | <0.001 | <0.001 | <0.001 | <0.001 | <0.001 | |
| p (HAC) | <0.001 | <0.001 | <0.001 | <0.001 | <0.001 | |
| N | 1,479,449 | 1,433,593 | 1,422,315 | 1,384,853 | 1,268,845 |
Permutation null detail — all horizons × each benchmark
| Horizon | Bench | Observed lift | Null mean | Null 95% CI | pperm |
|---|---|---|---|---|---|
| 1d | spxew | +0.30% | +0.12% | [+0.12%, +0.13%] | 1.000 |
| 1d | spx | +0.29% | +0.13% | [+0.12%, +0.13%] | 1.000 |
| 1d | msci | +0.34% | +0.13% | [+0.13%, +0.14%] | 1.000 |
| 5d | spxew | +1.42% | +0.56% | [+0.55%, +0.57%] | 1.000 |
| 5d | spx | +1.36% | +0.58% | [+0.56%, +0.59%] | 1.000 |
| 5d | msci | +1.36% | +0.58% | [+0.57%, +0.59%] | 1.000 |
| 20d | spxew | +3.15% | +1.81% | [+1.78%, +1.83%] | 1.000 |
| 20d | spx | +3.16% | +1.82% | [+1.80%, +1.85%] | 1.000 |
| 20d | msci | +3.17% | +1.84% | [+1.81%, +1.87%] | 1.000 |
| 60d | spxew | +5.25% | +3.80% | [+3.75%, +3.84%] | 1.000 |
| 60d | spx | +5.61% | +3.86% | [+3.81%, +3.90%] | 1.000 |
| 60d | msci | +5.63% | +3.88% | [+3.84%, +3.93%] | 1.000 |
| 252d | spxew | +9.21% | +6.47% | [+6.38%, +6.55%] | 1.000 |
| 252d | spx | +11.04% | +6.84% | [+6.75%, +6.92%] | 1.000 |
| 252d | msci | +10.30% | +6.74% | [+6.65%, +6.82%] | 1.000 |
Example triggers on US large-caps (2023+, mcap ≥ $30B)
Six recent bearish WEEKLY_CHANGE triggers on US mega-caps. Top three: the signal's best outcomes. Bottom three: the worst. Extreme outliers (|α| > 25%) excluded. The three best and three worst are still tail outcomes by construction — read them as the range, not the typical result.
Strongest outcomes (what WEEKLY_CHANGE looks like when it works)
Weakest outcomes (what WEEKLY_CHANGE looks like when it fails)
Stock-regime quadrants (2×2 per-stock, 20d alpha detail table)
| Quadrant | N | Stock % (spxew) | Bench % (spxew) | Alpha % (spxew) | p (HAC) | Stock % (spx) | Bench % (spx) | Alpha % (spx) | p (HAC) | Stock % (msci) | Bench % (msci) | Alpha % (msci) | p (HAC) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Trending + Low vol Clean directional grind, low whipsaw | 414 | +0.70% | +1.60% | -0.69% | 0.8045 | +0.70% | +2.36% | -1.46% | 0.6050 | +0.70% | +1.79% | -1.11% | 0.6994 |
| Trending + High vol Crisis selloff or parabolic rally | 880,166 | +4.08% | +1.89% | +2.12% | <0.001 | +4.08% | +2.20% | +1.85% | <0.001 | +4.08% | +2.01% | +2.02% | <0.001 |
| Non-trending + Low vol Quiet chop, summer doldrums | 38 | +3.98% | +1.92% | +2.35% | <0.001 | +3.98% | +2.14% | +1.89% | 0.0005 | +3.98% | +2.04% | +1.98% | <0.001 |
| Non-trending + High vol Classical "whipsaw zone" for momentum | 623,711 | +2.31% | +1.35% | +0.89% | <0.001 | +2.31% | +1.56% | +0.76% | <0.001 | +2.31% | +1.44% | +0.80% | <0.001 |
Sub-period breakdown table (20d alpha)
| Period | N | Alpha % (spxew) | p (HAC) | Alpha % (spx) | p (HAC) | Alpha % (msci) | p (HAC) |
|---|---|---|---|---|---|---|---|
| 2015-2019 2015-01-01 → 2020-01-01 | 359,485 | +1.21% | <0.001 | +1.24% | <0.001 | +1.48% | <0.001 |
| 2020-2022 2020-01-01 → 2023-01-01 | 583,619 | +1.17% | <0.001 | +1.11% | <0.001 | +1.41% | <0.001 |
| 2023-2026 2023-01-01 → 2099-01-01 | 576,368 | +2.30% | <0.001 | +1.76% | <0.001 | +1.62% | <0.001 |
Methodology and caveats
How to read. Entry at open of T+1 (one trading day after the signal fires on close of T). 20d = open T+1 to close T+20. Alpha = stock return − benchmark return over the same window (Convention A, single-sided, textbook). For bullish triggers, POSITIVE alpha = signal was right. For bearish triggers, NEGATIVE alpha = signal was right (stock underperformed market). No sign-flipping; the direction of the bet determines what "good" looks like. Per-stock regime is each stock's own ADX(14) and RV(20) at the trigger date — not market-wide state.
Three p-values, three robustness tests. (a) p_naive: scipy one-sample t-test on winsorized alphas. Optimistic because overlapping 20d windows on the same ticker inflate effective N. (b) p_hac: Newey-West HAC with lag = horizon — corrects for the overlap and is the academic-finance standard. (c) p_perm: one-sided fraction of 200 random-date null iterations falling in the “signal was right” tail (mean ≥ observed for bullish; mean ≤ observed for bearish). Tests whether the signal beats random date selection at all. A signal that clears all three (pnaive, phac, pperm all < 0.05) has real information; a signal that fails pperm has not beaten random timing whatever the t-test says — and because the test is one-sided, a pperm up at its 1.000 ceiling is not "no edge" but inverted edge: every random draw served the claimed direction better than the trigger dates did.
Caveats. (i) Universe reflects today's active tickers; delisted losers pruned → survivorship bias. (ii) Mcap ≥ $100M filter uses today's snapshot, not point-in-time — mild lookahead on which stocks enter the sample, not on returns. (iii) Means and p-values use winsorized alphas (1/99 percentile) to prevent data errors from dominating. Medians and hit rates use raw data. (iv) Zero transaction costs assumed. Realistic bid-ask + commissions remove 20–40bps from 20d alpha on US large-caps, more on small-cap. Sub-20bps alpha is noise in practice. (v) Past performance does not predict future results.
How to use this
1 · When to reach for this signal
Not a standalone entry trigger at 20 days. Bullish 20d alpha is +0.56% — inside the null : indistinguishable from random timing. Bearish 20d alpha is +1.59% — worse than random : firing on random dates would have done better. Fires are screening context inside a composite (section 4), not entries.
These verdicts are 20-day holds vs S&P 500 Equal Weight. Longer horizons can differ in either direction — check the permutation detail tables below before extrapolating.
2 · When it works — the setups that drive it
- Best bullish setup: Trending + High vol — alpha +0.54% / 20d on 1,310,815 historical triggers.
- Least-bad bearish cell: Non-trending + High vol — alpha +0.89% / 20d on 623,711 triggers — still wrong-signed; no bearish cell produced negative alpha.
- Best era for bullish: 2023-2026 — alpha +1.25% / 20d on 895,973 triggers.
- Least-bad era for bearish: 2020-2022 — alpha +1.17% / 20d on 583,619 triggers — still wrong-signed; no era produced negative alpha.
3 · When it fails — common false positives
- Weakest bullish cell: Non-trending + High vol — alpha +0.36% / 20d on 798,675 triggers.
- Weakest bearish cell: Trending + High vol — alpha +2.12% / 20d on 880,166 triggers.
- Worst era for bullish: 2015-2019 — alpha -0.41% / 20d on 476,630 triggers.
- Worst era for bearish: 2023-2026 — alpha +2.30% / 20d on 576,368 triggers.
Signal-specific failure patterns
4 · Pairing inside a screen
The statements below describe how this signal relates to others by construction — which indicator family it belongs to, and where same-family redundancy might reduce the independence of evidence inside a Daily Report. These are taxonomic classifications drawn from standard technical-analysis texts; they are not pairing backtests. Measured pair results — same-day co-fires put through the pair backtest — follow under “Measured pairings” below.
Rate-of-change family
Weekly percent change is a rate-of-change (ROC) measure of price momentum. It is related to but distinct from the normalised oscillator family (RSI, Stochastics, Williams %R, CCI) — ROC measures raw percent change and is unbounded, while the oscillators scale price against a recent range or average deviation (Kirkpatrick & Dahlquist, Technical Analysis, 3rd ed. 2015). Pairing weekly_change with an oscillator in the same direction produces partially overlapping evidence rather than fully independent confirmation.
Measured pairings — Bonferroni survivors
Beyond the literature pairings above, these are the same-day co-fire combinations involving Weekly Price Change that cleared the pair backtest's Bonferroni cut on the full 2016–2026 sample (549 pairs × 5 horizons = 2,745 hypotheses), on universes filtered to ADV ≥ $5M, price ≥ $5 and market cap ≥ $100M. That cut is two-sided: it asks only whether the co-fire's α is reliably different from zero, in either direction, so a pair can survive by reliably underperforming — 7 of the 44 rows below do exactly that (negative full-sample α). The same run holds out 2023+: the Test columns are that held-out window, printed for every row with enough held-out co-fires to measure, so a survivor that did not repeat out of sample is visible rather than hidden. All α figures here are for holding the stock long after the co-fire — no shorting assumed, and no sign flip for bearish legs. So positive α means the co-fire was followed by outperformance and negative α by underperformance, whichever way either leg points — a bearish leg does not flip the reading. Survivors are rare by design — absence of a pair here means it did not clear the cut, not that it was untested. Ranked by held-out (2023+) α. Historical tendencies, not recommendations.
US (NYSE / NASDAQ / AMEX)
| Pair (same-day co-fire, long) | Full α | Test α (2023+) | Test N | p_perm test |
|---|---|---|---|---|
| new_20d_low bearish + weekly_change bearish | +0.61% | +1.06% | 25,567 | 0.002 |
| stochastics bearish + weekly_change bullish | +0.52% | +1.06% | 9,020 | 0.002 |
| rsi bullish + weekly_change bearish | +1.10% | +0.97% | 1,931 | 0.004 |
| bollinger bullish + weekly_change bearish | +0.97% | +0.45% | 6,480 | 0.010 |
| hh_hl_structure bullish + weekly_change bullish | -2.78% | -1.15% | 192 | 0.437 |
5 of this universe's 18 surviving pairs involve this signal · α vs ^SPXEW.
Europe — 1 surviving pair
| Pair (same-day co-fire, long) | Full α | Test α (2023+) | Test N | p_perm test |
|---|---|---|---|---|
| bullish_trend_breakdown bearish + weekly_change bearish | +1.75% | +3.21% | 359 | 0.002 |
1 of this universe's 20 surviving pairs involves this signal · α vs ^STOXX.
Hong Kong — 8 surviving pairs
| Pair (same-day co-fire, long) | Full α | Test α (2023+) | Test N | p_perm test |
|---|---|---|---|---|
| rsi bearish + weekly_change bullish | +2.14% | +1.63% | 498 | 0.024 |
| bollinger bearish + weekly_change bullish | +1.23% | +1.32% | 1,479 | 0.002 |
| hh_hl_streak bullish + weekly_change bullish | +1.47% | +1.18% | 1,411 | 0.004 |
| stochastics bearish + weekly_change bullish | +1.29% | +1.18% | 1,528 | 0.004 |
| new_20d_high bullish + weekly_change bullish | +0.89% | +1.05% | 5,551 | 0.002 |
| volume_breakout bullish + weekly_change bullish | +1.10% | +0.93% | 2,818 | 0.006 |
| weekly_change bullish + williams_r bearish | +1.49% | +0.77% | 1,235 | 0.106 |
| new_20d_low bearish + weekly_change bearish | +1.09% | +0.33% | 2,979 | 0.200 |
8 of this universe's 23 surviving pairs involve this signal · α vs ^HSI.
China A-shares — 30 surviving pairs
| Pair (same-day co-fire, long) | Full α | Test α (2023+) | Test N | p_perm test |
|---|---|---|---|---|
| volume_breakout bullish + weekly_change bearish | +7.63% | +15.53% | 1,349 | 0.002 |
| rsi bullish + weekly_change bullish | +4.70% | +11.50% | 207 | 0.002 |
| failed_double_bottom bullish + weekly_change bearish | +9.65% | +10.09% | 73 | 0.002 |
| volume_breakout bearish + weekly_change bearish | +3.53% | +9.30% | 5,524 | 0.002 |
| ma_crossover bearish + weekly_change bullish | +3.90% | +7.89% | 249 | 0.002 |
| weekly_change bearish + williams_r bullish | +5.32% | +7.51% | 7,294 | 0.002 |
| rsi bullish + weekly_change bearish | +6.13% | +6.96% | 3,592 | 0.002 |
| ma_crossover bearish + weekly_change bearish | +4.75% | +6.71% | 584 | 0.002 |
| bollinger bullish + weekly_change bearish | +4.57% | +6.33% | 12,186 | 0.002 |
| stochastics bullish + weekly_change bearish | +4.27% | +5.57% | 14,105 | 0.002 |
| hh_hl_structure bearish + weekly_change bearish | +3.55% | +4.88% | 130 | 0.002 |
| failed_double_top bearish + weekly_change bearish | +3.04% | +4.34% | 1,298 | 0.002 |
| hh_hl_structure bullish + weekly_change bearish | +1.97% | +4.24% | 2,410 | 0.002 |
| new_20d_low bearish + weekly_change bearish | +3.22% | +3.68% | 50,447 | 0.002 |
| cci bullish + weekly_change bearish | +2.67% | +3.62% | 1,244 | 0.002 |
| hh_hl_streak bearish + weekly_change bearish | +2.33% | +2.87% | 14,066 | 0.002 |
| hh_hl_structure bearish + weekly_change bullish | +1.95% | +2.68% | 1,683 | 0.002 |
| vwap_cross bearish + weekly_change bearish | +1.13% | +2.59% | 7,352 | 0.002 |
| hh_hl_streak bullish + weekly_change bullish | +0.92% | +2.06% | 22,970 | 0.002 |
| vwap_cross bullish + weekly_change bullish | +0.64% | +1.42% | 12,597 | 0.002 |
| double_bottom_breakdown bearish + weekly_change bearish | +2.40% | +1.39% | 2,563 | 0.002 |
| macd bullish + weekly_change bullish | +0.51% | +1.25% | 15,314 | 0.002 |
| macd bearish + weekly_change bearish | +0.76% | +0.72% | 9,155 | 0.002 |
| volume_breakout bullish + weekly_change bullish | -0.45% | +0.52% | 61,873 | 0.002 |
| weekly_change bullish + williams_r bearish | -0.37% | +0.43% | 28,381 | 0.002 |
| new_20d_high bullish + weekly_change bullish | -0.56% | +0.15% | 83,483 | 0.010 |
| fresh_52w_low bearish + weekly_change bearish | +2.48% | +0.05% | 2,838 | 0.906 |
| volume_breakout bearish + weekly_change bullish | -1.12% | -0.13% | 15,550 | 0.331 |
| double_top_breakout bullish + weekly_change bullish | -1.05% | -0.28% | 5,955 | 0.228 |
| hh_hl_structure bullish + weekly_change bullish | -4.80% | -4.40% | 305 | 0.002 |
30 of this universe's 138 surviving pairs involve this signal · α vs 83188.HK.
China A-share survivor α runs large but skews toward small-caps, where trading costs and thin liquidity claim a large share of any measured edge — screening context, not a capturable spread.
What would likely rescue this signal
This block calls out the data or conditions that could turn a technically weak signal into a usable one in a composite screen. Based on signal mechanics and the observed failure patterns above; individual combinations are not yet backtested.
- Read a persistently inverted bearish side as a bounce indicator — If the bearish side shows positive alpha at longer horizons in the current tables — and keeps doing so across backtest re-runs — the signal is functionally a drawdown-bounce indicator rather than a short trigger, and the honest usage is to flip its interpretation: bearish fires become candidates for mean-reversion review, not short entries. Whether that state holds is visible in the tables above.
- Raise the threshold to concentrate on catalysts — The default 10% threshold casts a wide net. Raising it in the report builder (e.g. to 15-20%) concentrates triggers in catalyst-driven events — earnings surprises, M&A, clinical readouts — where post-event behavior is a distinct, better-studied phenomenon, at the cost of far fewer fires.
- Condition on the volatility regime — A 10% weekly move in a compressed-volatility market is usually a single-stock event; in a crisis it is market-wide, and the forward behavior differs. The tables above already split results by trend state (ADX at the 25 threshold) and realized-volatility regime — use those rows to judge whether the current regime supports acting on fires at all.
See also Why technical-only signals don't survive on their own for the broader argument.
5 · Before you act — a 5-point checklist
- Normal trading day? Rule out earnings (within ±3 days), ex-dividend, or known corporate-action dates — the signal is almost certainly reading noise, not momentum, in those windows.
- Where is price vs its own 50 / 200 DMA? A trend signal is only as credible as the underlying trend it claims to confirm. Check the 200DMA orientation before acting.
- What's the sector breadth doing? An isolated signal in a broadly down-trending sector is a lower-confidence setup than one firing with the rest of its peer group.
- Is ADV20 enough for your size? If the trigger is on a $500M name and you want to move $1M notional, you're the tape. Consider adv20d ≥ 5% of your intended position.
- What invalidates you? Define a price level (for longs: a close below the trigger-day low; for shorts: close above the trigger-day high) and honor it. The backtest alpha is an average; any one trade can be at either tail.
Execution notes
The most defensible use is as a SCREENING LENS — a fast way to surface the stocks that moved most this week — rather than as a predictive trigger. A double-digit weekly move is a descriptive fact about price action, which is why the signal appears on so many charts. Treat a side as a trade screen only if it beats the random-date permutation null in the current tables; otherwise use fires to prioritise what to investigate. Note that a fixed threshold means different things across sectors and volatility regimes — a 10% week is routine for a small biotech and extraordinary for a mega-cap utility. Historical tendency, not a recommendation.
See a live screen of this signal
Curated Daily Reports that screen for this signal, refreshed at the open, midday and close — free to view, no account needed: