Experimental research
Pattern Lab
Historical shape similarity → conditional future-return distributions. No BUY/SELL label, no price target.
Generated 2026-08-12T19:53:13.032254+00:00. Raw market histories remain private; this page publishes derived statistics only.
20-day forward consensus
Each row averages the 20/60/120-day pattern windows. “Matched” controls for momentum and volatility without using geometric shape. Lift is the difference in probability of a positive forward return.
| Market | P(up) analogues | P(up) matched | Lift | Regime |
|---|---|---|---|---|
| NASDAQ Composite ^IXIC | 53.5% | 67.6% | -14.1 pp | up / high |
| USD/CAD CAD=X | 40.3% | 53.0% | -12.7 pp | flat / low |
| Gold futures GC=F | 43.9% | 56.3% | -12.4 pp | up / high |
| Nikkei 225 ^N225 | 68.6% | 56.4% | +12.1 pp | flat / high |
| DAX ^GDAXI | 69.6% | 59.7% | +10.0 pp | up / low |
| EUR/USD EURUSD=X | 39.7% | 48.6% | -8.8 pp | flat / low |
| AUD/USD AUDUSD=X | 39.9% | 46.1% | -6.2 pp | flat / low |
| Hang Seng ^HSI | 59.3% | 54.1% | +5.2 pp | up / normal |
| WTI crude futures CL=F | 52.8% | 57.3% | -4.5 pp | up / high |
| Bitcoin BTC-USD | 51.5% | 55.3% | -3.7 pp | flat / low |
| FTSE 100 ^FTSE | 52.6% | 56.3% | -3.7 pp | up / low |
| USD/JPY JPY=X | 52.3% | 55.4% | -3.1 pp | flat / normal |
| Dow Jones Industrial Average ^DJI | 61.6% | 64.4% | -2.9 pp | up / normal |
| GBP/USD GBPUSD=X | 47.1% | 49.8% | -2.7 pp | flat / low |
| Invesco QQQ ETF QQQ | 68.4% | 66.0% | +2.4 pp | up / normal |
| SPDR S&P 500 ETF SPY | 60.6% | 62.7% | -2.1 pp | up / normal |
| S&P 500 ^GSPC | 60.5% | 60.8% | -0.3 pp | up / normal |
All windows
The permutation diagnostic asks whether the analogue-vs-control mean-return separation is unusual under random relabelling. It is not a multiple-testing-adjusted significance claim.
S&P 500 · ^GSPC · 24,770 bars · through 2026-08-12
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 45.0% | 55.3% | -10.3 pp | 73.9% | -0.0% | -0.7% … 1.1% |
| 20d | 5d | 40 | 57.5% | 58.0% | -0.5 pp | 96.5% | 0.2% | -1.7% … 2.0% |
| 20d | 20d | 40 | 60.0% | 58.3% | +1.7 pp | 33.0% | 0.7% | -3.1% … 5.0% |
| 60d | 1d | 28 | 42.9% | 56.7% | -13.8 pp | 25.4% | -0.1% | -0.7% … 1.1% |
| 60d | 5d | 28 | 71.4% | 57.7% | +13.8 pp | 42.5% | 0.4% | -0.4% … 2.2% |
| 60d | 20d | 28 | 71.4% | 61.7% | +9.8 pp | 92.5% | 1.2% | -2.8% … 3.8% |
| 120d | 1d | 14 | 14.3% | 50.3% | -36.0 pp | 7.4% | -0.2% | -1.9% … 0.0% |
| 120d | 5d | 14 | 50.0% | 59.7% | -9.7 pp | 13.2% | -0.3% | -2.4% … 0.8% |
| 120d | 20d | 14 | 50.0% | 62.3% | -12.3 pp | 19.4% | 0.2% | -5.1% … 3.5% |
NASDAQ Composite · ^IXIC · 13,996 bars · through 2026-08-12
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 50.0% | 59.0% | -9.0 pp | 37.4% | -0.1% | -1.3% … 1.4% |
| 20d | 5d | 40 | 62.5% | 64.3% | -1.8 pp | 99.9% | 0.6% | -1.8% … 2.3% |
| 20d | 20d | 40 | 62.5% | 71.0% | -8.5 pp | 22.1% | 1.5% | -4.9% … 6.4% |
| 60d | 1d | 28 | 60.7% | 51.0% | +9.7 pp | 72.5% | 0.1% | -1.0% … 1.0% |
| 60d | 5d | 28 | 57.1% | 57.3% | -0.2 pp | 62.5% | 0.8% | -2.8% … 2.6% |
| 60d | 20d | 28 | 53.6% | 66.0% | -12.4 pp | 61.5% | 0.7% | -5.5% … 6.8% |
| 120d | 1d | 9 | 44.4% | 55.7% | -11.2 pp | 35.0% | -0.2% | -1.1% … 0.9% |
| 120d | 5d | 9 | 55.6% | 58.7% | -3.1 pp | 65.9% | 0.0% | -1.9% … 1.4% |
| 120d | 20d | 9 | 44.4% | 65.7% | -21.2 pp | 25.4% | -1.1% | -3.4% … 3.3% |
Dow Jones Industrial Average · ^DJI · 8,714 bars · through 2026-08-12
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 55.0% | 52.7% | +2.3 pp | 17.3% | 0.1% | -1.1% … 0.5% |
| 20d | 5d | 40 | 52.5% | 58.3% | -5.8 pp | 58.7% | 0.1% | -1.4% … 1.5% |
| 20d | 20d | 40 | 57.5% | 65.0% | -7.5 pp | 67.2% | 0.6% | -3.3% … 3.7% |
| 60d | 1d | 22 | 40.9% | 50.3% | -9.4 pp | 33.3% | -0.4% | -1.0% … 0.8% |
| 60d | 5d | 22 | 72.7% | 53.3% | +19.4 pp | 47.1% | 0.2% | -1.2% … 1.6% |
| 60d | 20d | 22 | 72.7% | 64.0% | +8.7 pp | 45.2% | 0.9% | -1.0% … 4.4% |
| 120d | 1d | 11 | 45.5% | 47.0% | -1.5 pp | 14.6% | -0.1% | -1.7% … 0.4% |
| 120d | 5d | 11 | 45.5% | 59.0% | -13.5 pp | 27.7% | -0.5% | -2.9% … 1.0% |
| 120d | 20d | 11 | 54.5% | 64.3% | -9.8 pp | 52.1% | 2.0% | -4.4% … 3.0% |
DAX · ^GDAXI · 9,765 bars · through 2026-08-11
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 52.5% | 51.3% | +1.2 pp | 69.9% | 0.0% | -1.3% … 1.0% |
| 20d | 5d | 40 | 45.0% | 52.7% | -7.7 pp | 80.3% | -0.4% | -1.6% … 2.3% |
| 20d | 20d | 40 | 70.0% | 59.7% | +10.3 pp | 18.3% | 2.0% | -2.9% … 6.0% |
| 60d | 1d | 19 | 42.1% | 53.7% | -11.6 pp | 39.6% | -0.1% | -1.0% … 0.6% |
| 60d | 5d | 19 | 52.6% | 57.3% | -4.7 pp | 70.0% | 0.2% | -2.8% … 2.1% |
| 60d | 20d | 19 | 78.9% | 59.0% | +19.9 pp | 49.7% | 1.6% | -2.1% … 4.6% |
| 120d | 1d | 15 | 46.7% | 51.3% | -4.7 pp | 53.2% | -0.2% | -1.4% … 0.7% |
| 120d | 5d | 15 | 53.3% | 55.0% | -1.7 pp | 46.5% | 0.3% | -1.4% … 3.2% |
| 120d | 20d | 15 | 60.0% | 60.3% | -0.3 pp | 61.3% | 1.3% | -2.6% … 5.1% |
FTSE 100 · ^FTSE · 10,764 bars · through 2026-08-11
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 55.0% | 54.0% | +1.0 pp | 84.0% | 0.0% | -0.7% … 0.9% |
| 20d | 5d | 40 | 60.0% | 58.0% | +2.0 pp | 6.2% | 0.6% | -1.6% … 2.8% |
| 20d | 20d | 40 | 50.0% | 53.3% | -3.3 pp | 82.7% | 0.0% | -2.6% … 3.7% |
| 60d | 1d | 17 | 58.8% | 56.0% | +2.8 pp | 28.3% | 0.4% | -0.7% … 1.2% |
| 60d | 5d | 17 | 58.8% | 56.0% | +2.8 pp | 99.1% | 0.5% | -1.9% … 1.5% |
| 60d | 20d | 17 | 41.2% | 57.0% | -15.8 pp | 48.8% | -1.5% | -3.4% … 3.7% |
| 120d | 1d | 15 | 40.0% | 51.3% | -11.3 pp | 74.6% | -0.1% | -0.7% … 0.5% |
| 120d | 5d | 15 | 60.0% | 53.3% | +6.7 pp | 52.5% | 0.2% | -1.2% … 1.8% |
| 120d | 20d | 15 | 66.7% | 58.7% | +8.0 pp | 63.2% | 0.3% | -2.4% … 3.2% |
Nikkei 225 · ^N225 · 15,143 bars · through 2026-08-09
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 45.0% | 52.0% | -7.0 pp | 68.3% | -0.0% | -0.8% … 1.0% |
| 20d | 5d | 40 | 42.5% | 55.3% | -12.8 pp | 15.3% | -0.5% | -3.6% … 2.1% |
| 20d | 20d | 40 | 50.0% | 56.7% | -6.7 pp | 50.2% | 0.1% | -6.0% … 5.8% |
| 60d | 1d | 25 | 60.0% | 55.7% | +4.3 pp | 78.2% | 0.1% | -2.4% … 1.4% |
| 60d | 5d | 25 | 56.0% | 56.7% | -0.7 pp | 48.7% | 0.2% | -2.4% … 4.5% |
| 60d | 20d | 25 | 64.0% | 56.0% | +8.0 pp | 38.8% | 1.7% | -8.2% … 9.2% |
| 120d | 1d | 12 | 50.0% | 55.0% | -5.0 pp | 64.9% | 0.2% | -1.7% … 1.1% |
| 120d | 5d | 12 | 58.3% | 56.0% | +2.3 pp | 81.0% | 0.3% | -1.0% … 3.4% |
| 120d | 20d | 12 | 91.7% | 56.7% | +35.0 pp | 32.4% | 2.2% | 0.4% … 5.6% |
Hang Seng · ^HSI · 9,774 bars · through 2026-08-10
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 40.0% | 53.7% | -13.7 pp | 53.5% | -0.3% | -1.9% … 1.5% |
| 20d | 5d | 40 | 55.0% | 57.3% | -2.3 pp | 65.4% | 0.3% | -2.9% … 4.5% |
| 20d | 20d | 40 | 55.0% | 53.3% | +1.7 pp | 71.7% | 0.7% | -7.2% … 6.6% |
| 60d | 1d | 16 | 50.0% | 47.7% | +2.3 pp | 60.5% | -0.0% | -2.3% … 1.4% |
| 60d | 5d | 16 | 50.0% | 51.0% | -1.0 pp | 40.5% | 0.5% | -3.3% … 4.5% |
| 60d | 20d | 16 | 81.2% | 55.7% | +25.6 pp | 4.7% | 2.5% | -2.3% … 11.7% |
| 120d | 1d | 12 | 8.3% | 51.0% | -42.7 pp | 1.2% | -0.9% | -2.6% … -0.0% |
| 120d | 5d | 12 | 16.7% | 53.0% | -36.3 pp | 1.5% | -2.5% | -5.5% … 0.0% |
| 120d | 20d | 12 | 41.7% | 53.3% | -11.7 pp | 28.8% | -1.0% | -5.3% … 4.2% |
EUR/USD · EURUSD=X · 5,889 bars · through 2026-08-11
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 50.0% | 50.7% | -0.7 pp | 75.0% | -0.0% | -0.9% … 0.7% |
| 20d | 5d | 40 | 50.0% | 48.0% | +2.0 pp | 66.7% | -0.0% | -1.2% … 1.3% |
| 20d | 20d | 40 | 47.5% | 45.7% | +1.8 pp | 44.9% | -0.1% | -2.3% … 2.5% |
| 60d | 1d | 18 | 55.6% | 47.0% | +8.6 pp | 23.6% | 0.1% | -0.8% … 0.8% |
| 60d | 5d | 18 | 50.0% | 48.0% | +2.0 pp | 22.1% | 0.1% | -1.4% … 2.0% |
| 60d | 20d | 18 | 44.4% | 47.3% | -2.9 pp | 98.4% | -0.3% | -2.9% … 3.4% |
| 120d | 1d | 11 | 36.4% | 51.9% | -15.6 pp | 21.2% | -0.2% | -0.7% … 0.5% |
| 120d | 5d | 11 | 36.4% | 52.8% | -16.4 pp | 82.6% | -0.2% | -0.6% … 0.8% |
| 120d | 20d | 11 | 27.3% | 52.8% | -25.5 pp | 66.4% | -0.4% | -1.1% … 1.0% |
GBP/USD · GBPUSD=X · 5,901 bars · through 2026-08-11
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 47.5% | 50.3% | -2.8 pp | 34.7% | -0.1% | -0.7% … 0.5% |
| 20d | 5d | 40 | 47.5% | 50.3% | -2.8 pp | 11.1% | -0.1% | -1.7% … 1.1% |
| 20d | 20d | 40 | 37.5% | 51.0% | -13.5 pp | 1.8% | -0.4% | -3.5% … 1.8% |
| 60d | 1d | 22 | 36.4% | 45.7% | -9.3 pp | 5.2% | -0.2% | -0.8% … 0.3% |
| 60d | 5d | 22 | 36.4% | 48.3% | -12.0 pp | 70.1% | -0.3% | -1.2% … 1.6% |
| 60d | 20d | 22 | 45.5% | 48.0% | -2.5 pp | 88.3% | -0.2% | -4.5% … 2.9% |
| 120d | 1d | 12 | 25.0% | 50.4% | -25.4 pp | 45.5% | -0.2% | -0.6% … 0.5% |
| 120d | 5d | 12 | 41.7% | 50.4% | -8.8 pp | 99.4% | -0.2% | -1.3% … 1.0% |
| 120d | 20d | 12 | 58.3% | 50.4% | +7.9 pp | 42.7% | 0.1% | -3.0% … 0.6% |
USD/JPY · JPY=X · 7,723 bars · through 2026-08-11
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 40.0% | 47.3% | -7.3 pp | 56.9% | -0.1% | -0.8% … 0.6% |
| 20d | 5d | 40 | 40.0% | 51.7% | -11.7 pp | 34.6% | -0.3% | -1.8% … 1.7% |
| 20d | 20d | 40 | 50.0% | 58.0% | -8.0 pp | 19.6% | -0.0% | -3.6% … 3.3% |
| 60d | 1d | 22 | 59.1% | 53.3% | +5.8 pp | 84.2% | 0.3% | -1.1% … 1.0% |
| 60d | 5d | 22 | 45.5% | 56.3% | -10.9 pp | 24.2% | -0.4% | -1.7% … 2.0% |
| 60d | 20d | 22 | 45.5% | 54.3% | -8.9 pp | 6.4% | -0.2% | -6.2% … 3.5% |
| 120d | 1d | 13 | 69.2% | 53.0% | +16.2 pp | 24.1% | 0.4% | -0.5% … 0.8% |
| 120d | 5d | 13 | 61.5% | 55.0% | +6.5 pp | 28.6% | 0.7% | -0.9% … 1.9% |
| 120d | 20d | 13 | 61.5% | 54.0% | +7.5 pp | 10.0% | 0.6% | -2.3% … 5.9% |
AUD/USD · AUDUSD=X · 5,265 bars · through 2026-08-11
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 50.0% | 53.3% | -3.3 pp | 72.9% | 0.0% | -0.8% … 0.8% |
| 20d | 5d | 40 | 50.0% | 50.0% | +0.0 pp | 87.7% | -0.1% | -1.7% … 1.7% |
| 20d | 20d | 40 | 50.0% | 45.7% | +4.3 pp | 65.0% | 0.0% | -3.5% … 3.2% |
| 60d | 1d | 14 | 28.6% | 51.7% | -23.1 pp | 19.4% | -0.1% | -0.8% … 0.1% |
| 60d | 5d | 14 | 50.0% | 50.7% | -0.7 pp | 90.3% | 0.1% | -1.3% … 1.1% |
| 60d | 20d | 14 | 57.1% | 44.3% | +12.8 pp | 15.0% | 0.3% | -2.2% … 4.3% |
| 120d | 1d | 8 | 25.0% | 54.6% | -29.6 pp | 8.9% | -0.2% | -1.0% … 0.1% |
| 120d | 5d | 8 | 12.5% | 53.1% | -40.6 pp | 1.7% | -1.5% | -2.4% … 0.1% |
| 120d | 20d | 8 | 12.5% | 48.3% | -35.8 pp | 16.2% | -1.6% | -3.8% … 1.1% |
USD/CAD · CAD=X · 5,957 bars · through 2026-08-11
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 62.5% | 54.3% | +8.2 pp | 15.7% | 0.1% | -0.4% … 0.6% |
| 20d | 5d | 40 | 45.0% | 53.0% | -8.0 pp | 39.5% | -0.1% | -1.1% … 1.6% |
| 20d | 20d | 40 | 57.5% | 51.7% | +5.8 pp | 76.6% | 0.2% | -2.7% … 2.5% |
| 60d | 1d | 17 | 76.5% | 54.3% | +22.1 pp | 2.9% | 0.2% | -0.4% … 0.7% |
| 60d | 5d | 17 | 82.4% | 52.7% | +29.7 pp | 7.0% | 0.8% | -1.3% … 1.5% |
| 60d | 20d | 17 | 41.2% | 55.7% | -14.5 pp | 7.7% | -0.3% | -3.8% … 2.0% |
| 120d | 1d | 9 | 44.4% | 47.9% | -3.5 pp | 61.4% | -0.1% | -0.7% … 1.0% |
| 120d | 5d | 9 | 66.7% | 50.8% | +15.8 pp | 82.3% | 0.2% | -1.4% … 1.1% |
| 120d | 20d | 9 | 22.2% | 51.7% | -29.5 pp | 74.5% | -0.4% | -2.6% … 2.5% |
Gold futures · GC=F · 6,511 bars · through 2026-08-12
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 37.5% | 53.0% | -15.5 pp | 6.9% | -0.1% | -1.6% … 0.7% |
| 20d | 5d | 40 | 37.5% | 53.0% | -15.5 pp | 10.8% | -0.4% | -3.9% … 2.4% |
| 20d | 20d | 40 | 65.0% | 53.0% | +12.0 pp | 45.0% | 0.8% | -4.4% … 7.2% |
| 60d | 1d | 18 | 33.3% | 53.7% | -20.3 pp | 24.0% | -0.2% | -1.0% … 1.0% |
| 60d | 5d | 18 | 22.2% | 59.7% | -37.4 pp | 10.3% | -0.8% | -2.2% … 1.1% |
| 60d | 20d | 18 | 33.3% | 58.7% | -25.3 pp | 4.3% | -1.4% | -6.0% … 4.7% |
| 120d | 1d | 9 | 44.4% | 54.6% | -10.2 pp | 5.5% | -0.1% | -1.9% … 0.6% |
| 120d | 5d | 9 | 22.2% | 53.1% | -30.9 pp | 8.9% | -0.8% | -3.8% … 1.2% |
| 120d | 20d | 9 | 33.3% | 57.3% | -24.0 pp | 5.2% | -2.3% | -7.9% … 5.6% |
WTI crude futures · CL=F · 6,519 bars · through 2026-08-12
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 47.5% | 48.3% | -0.8 pp | 88.2% | -0.1% | -3.1% … 2.7% |
| 20d | 5d | 40 | 52.5% | 56.3% | -3.8 pp | 62.1% | 0.1% | -6.5% … 6.6% |
| 20d | 20d | 40 | 60.0% | 61.0% | -1.0 pp | 49.1% | 2.1% | -15.6% … 12.8% |
| 60d | 1d | 13 | 46.2% | 52.7% | -6.5 pp | 46.4% | -0.3% | -2.7% … 0.8% |
| 60d | 5d | 13 | 38.5% | 56.3% | -17.9 pp | 19.0% | -1.3% | -6.3% … 1.6% |
| 60d | 20d | 13 | 53.8% | 55.7% | -1.8 pp | 80.3% | 1.7% | -3.6% … 8.5% |
| 120d | 1d | 9 | 55.6% | 54.0% | +1.5 pp | 65.0% | 0.0% | -1.9% … 1.9% |
| 120d | 5d | 9 | 44.4% | 54.8% | -10.3 pp | 28.9% | -1.3% | -6.0% … 3.9% |
| 120d | 20d | 9 | 44.4% | 55.2% | -10.7 pp | 51.1% | -1.1% | -8.1% … 5.3% |
Bitcoin · BTC-USD · 4,348 bars · through 2026-08-12
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 57.5% | 57.3% | +0.2 pp | 0.1% | 0.2% | -9.9% … 3.0% |
| 20d | 5d | 40 | 42.5% | 54.3% | -11.8 pp | 2.4% | -0.6% | -11.0% … 6.3% |
| 20d | 20d | 40 | 52.5% | 58.0% | -5.5 pp | 67.3% | 0.9% | -18.4% … 23.2% |
| 60d | 1d | 19 | 47.4% | 54.3% | -7.0 pp | 98.0% | -0.3% | -2.6% … 2.7% |
| 60d | 5d | 19 | 36.8% | 54.7% | -17.8 pp | 20.7% | -1.7% | -6.3% … 5.3% |
| 60d | 20d | 19 | 42.1% | 54.0% | -11.9 pp | 41.4% | -1.0% | -12.2% … 14.8% |
| 120d | 1d | 5 | 60.0% | 55.6% | +4.4 pp | 97.8% | 1.1% | -3.0% … 4.1% |
| 120d | 5d | 5 | 80.0% | 58.5% | +21.5 pp | 36.0% | 2.1% | -1.6% … 14.1% |
| 120d | 20d | 5 | 60.0% | 53.8% | +6.2 pp | 66.0% | 1.0% | -18.5% … 22.3% |
SPDR S&P 500 ETF · SPY · 8,441 bars · through 2026-08-12
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 50.0% | 57.0% | -7.0 pp | 21.7% | -0.0% | -1.0% … 0.8% |
| 20d | 5d | 40 | 52.5% | 59.3% | -6.8 pp | 39.7% | 0.1% | -1.2% … 1.1% |
| 20d | 20d | 40 | 52.5% | 59.3% | -6.8 pp | 92.3% | 0.1% | -3.0% … 2.9% |
| 60d | 1d | 26 | 50.0% | 57.0% | -7.0 pp | 53.1% | -0.1% | -0.7% … 0.5% |
| 60d | 5d | 26 | 50.0% | 58.3% | -8.3 pp | 52.9% | 0.1% | -1.7% … 1.1% |
| 60d | 20d | 26 | 69.2% | 65.0% | +4.2 pp | 75.6% | 1.2% | -2.6% … 3.2% |
| 120d | 1d | 15 | 66.7% | 56.0% | +10.7 pp | 28.1% | 0.2% | -1.8% … 0.7% |
| 120d | 5d | 15 | 60.0% | 60.3% | -0.3 pp | 92.5% | 0.1% | -1.8% … 2.0% |
| 120d | 20d | 15 | 60.0% | 63.7% | -3.7 pp | 29.7% | 3.1% | -2.4% … 5.5% |
Invesco QQQ ETF · QQQ · 6,899 bars · through 2026-08-12
| Pattern | Forward | N | P(up) analogues | P(up) matched | Lift | Permutation p | Median | P10…P90 |
|---|---|---|---|---|---|---|---|---|
| 20d | 1d | 40 | 55.0% | 56.0% | -1.0 pp | 65.8% | 0.2% | -1.4% … 1.5% |
| 20d | 5d | 40 | 55.0% | 59.7% | -4.7 pp | 40.0% | 0.4% | -2.0% … 3.0% |
| 20d | 20d | 40 | 70.0% | 66.7% | +3.3 pp | 96.2% | 2.2% | -4.7% … 6.3% |
| 60d | 1d | 24 | 58.3% | 57.0% | +1.3 pp | 54.3% | 0.5% | -1.7% … 2.0% |
| 60d | 5d | 24 | 50.0% | 61.7% | -11.7 pp | 23.3% | 0.2% | -6.2% … 4.5% |
| 60d | 20d | 24 | 62.5% | 66.7% | -4.2 pp | 92.0% | 2.8% | -10.2% … 10.7% |
| 120d | 1d | 11 | 36.4% | 57.8% | -21.4 pp | 46.1% | -0.2% | -0.7% … 0.7% |
| 120d | 5d | 11 | 45.5% | 61.7% | -16.3 pp | 34.0% | -0.8% | -2.1% … 2.3% |
| 120d | 20d | 11 | 72.7% | 64.6% | +8.1 pp | 48.3% | 2.2% | -0.5% … 5.6% |
Method
STUMPY MASS finds nearest z-normalized log-price shapes; tslearn DTW reranks them. Historical analogues are strictly earlier and non-overlapping with the current query window. Controls are drawn from the same instrument and matched on simple momentum and realized volatility.
Walk-forward OOS validation · JSON API · tool/repository manifest
Toolkit: stumpy 1.14.1 · tslearn 0.9.0 · aeon 1.5.0 · vectorbt 1.0.0 · pyqlib 0.9.7 · yfinance 1.5.2 · numpy 2.3.5 · pandas 2.3.3 · scipy 1.17.1 · duckdb 1.4.5 · pyarrow 25.0.1
Research only. These diagnostics do not establish a stable trading edge, do not include full transaction-cost modelling, and are not financial advice.