UNSUPERVISED · KMEANS · 5,642 DAYS · 2004–NOW
Market States
The machine grouped 22 years of trading days into five regimes — no labels given, just the shape of VIX, the yield curve, and S&P momentum & turbulence. Below: which regime today sits in, and the days that looked most like it.
TODAY · 2026-06-18
Range-bound calm
VIX
17.2
10y-2y
0.29pp
S&P 20d
-0.34%
S&P vol
16%
WHEN THE MARKET LAST LOOKED LIKE THIS — WHAT FOLLOWED
AVG +30 DAYS
+1.5%
AVG +90 DAYS
+0.1%
2019-06-07Range-bound calmVIX 16.3+3.9%+4.3%
2025-01-27Range-bound calmVIX 17.9-7.3%-1.2%
2019-06-10Range-bound calmVIX 15.9+4.1%+3.6%
2024-12-27Range-bound calmVIX 15.9+1.6%-5.1%
2019-06-06Range-bound calmVIX 15.9+4.7%+4.3%
2024-12-23Range-bound calmVIX 16.8+1.8%-5.4%
Nearest neighbours in standardized feature space (the last 60 days excluded so matches aren't trivially recent). +30 / +90 columns are what the S&P 500 actually did after each date — history, not a forecast. Small sample; the future is not obliged to rhyme.
DOES THE SIGNAL HAVE AN EDGE? · S&P 500 forward return, 22 years
BASELINE · ANY DAY+3.41%72.4% hit · n=5540over the next 90 trading days, the bars below show distance from this
BY MARKET REGIME
Volatile recovery
+11.48%+8.07pp89.9% hit+8.82%…+16.38%n=276
Crash / capitulation
+4.61%+1.2pp51% hit-16.41%…+26.22%n=102
Range-bound calm● NOW
+3.39%-0.02pp≈ baseline · no edge+0.03%…+7.87%n=2416
Correction / stress
+2.79%-0.62pp≈ baseline · no edge-3.32%…+11.68%n=810
Steady climb (steep curve)
+2.49%-0.92pp70.4% hit-1.11%…+7.18%n=1936
BY VIX (FEAR)
< 15 · complacent
+2.75%-0.66pp≈ baseline · no edge0%…+6.45%n=2092
15–20 · normal● NOW
+2.87%-0.54pp≈ baseline · no edge-1.04%…+8.04%n=1708
20–30 · stressed
+3.36%-0.05pp≈ baseline · no edge-2.47%…+11.19%n=1293
≥ 30 · panic
+8.75%+5.34pp76.7% hit+1.38%…+18.37%n=447
BY YIELD CURVE (10Y–2Y)
inverted · < 0
+6.5%+3.09pp87.5% hit+2.93%…+9.73%n=786
flat · 0–0.5● NOW
+1.87%-1.54pp60.8% hit-3.04%…+6.87%n=1165
normal · 0.5–1.5
+2.75%-0.66pp≈ baseline · no edge-0.04%…+7.83%n=1809
steep · ≥ 1.5
+3.74%+0.33pp≈ baseline · no edge-1.17%…+9.3%n=1780
Forward returns are what actually happened, not a prediction. · Where a bucket's returns ≈ the baseline, the signal carries no usable edge. · Small samples (n < 30) are noisy — read the dispersion (p25–p75), not just the mean. · Past regimes are not obliged to rhyme with the future.
DOES THE TRADE TAB'S SIGNAL HAVE AN EDGE? · SET INDEX · 26 YEARS
What the conventional retail playbook says (RSI<30 = buy, lower BB = buy, pullback = buy) vs what 26 years of SET history actually shows. The bars are centred on the baseline — a bar at centre means no usable edge on this history.
BASELINE · ANY DAY (SET)+2.84%56.5% hit · n=6326over the next 90 trading days
RSI(14) — is oversold/overbought predictive on SET?
The finding: SET rewards momentum continuation, not mean reversion.
< 30 · oversold
+2.51%-0.33pp≈ baseline-5.04…+10.8%n=752
30–45 · low
+1.12%-1.72ppmild drag-6.4…+7.78%n=1520
45–60 · neutral
+2.52%-0.32pp≈ baseline-5.78…+9.81%n=1756
60–70 · high
+3.19%+0.35pp≈ baseline-5.45…+9.57%n=1051
> 70 · overbought● NOW
+5.32%+2.48ppedge ↑-3.81…+12.32%n=1247
EMA(9/21) CROSS — trend confirmation
EMA9 > EMA21 · bull● NOW
+3.88%+1.04ppmild edge-5.04…+10.5%n=3478
EMA9 < EMA21 · bear
+1.58%-1.26ppmild drag-5.79…+9.59%n=2848
BOLLINGER BAND POSITION (%B) — does 'touch the band' work?
Below lower band ≠ buy signal on SET history.
below lower band · %B < 0
+0.8%-2.04ppnegative ↓-6.57…+8.63%n=358
lower half · 0–0.5
+1.93%-0.91ppmild drag-5.69…+9.16%n=2474
upper half · 0.5–1● NOW
+3.63%+0.79ppmild edge-5.26…+10.84%n=3188
above upper band · %B > 1
+4.43%+1.59ppmild edge-3.01…+10.97%n=306
SET 20-DAY MOMENTUM — buy dips or ride momentum?
Sharp pullbacks show no edge. Strong rallies have the largest edge in this dataset.
< -8% · sharp pullback
+0.42%-2.42ppnegative ↓-10.84…+14.54%n=379
-8 to 0% · negative
+2.01%-0.83ppmild drag-5.57…+8.25%n=2512
0–8% · positive● NOW
+3.02%+0.18pp≈ baseline-5.09…+9.85%n=2951
> 8% · strong rally
+8.05%+5.21ppedge ↑-4.51…+22%n=484
Forward returns are SET actual history, not a prediction. · RSI and BB signals are computed on the SET index, not individual stocks. · Where a bucket ≈ baseline it carries no usable edge on this history. · Small samples (n<30) are noisy — read dispersion (p25–p75), not just the mean. · The past need not rhyme with the future.
WHAT STATISTICALLY PRECEDES THE SET? · GRANGER CAUSALITY · 120 DAYS
Granger causality is not a trading signal. It means that past values of a series helped predict SET returns in a linear regression over the historical sample — nothing more. Relationships break, markets adapt, and statistical significance in a backtest does not guarantee a live edge. Treat these as structural context for understanding what moves the SET, not as reasons to buy or sell.
STATISTICALLY SIGNIFICANT (p<0.05)
p<0.01S&P 500 (US equities)
F=13.48lag 1dp=0.0003
p<0.01CBOE VIX (fear gauge)
F=12.21lag 1dp=0.0005
p<0.01WTI Crude (energy)
F=3.19lag 5dp=0.0079
p<0.05USD/JPY (yen carry trade)
F=4.71lag 1dp=0.0306
NOT SIGNIFICANT — shown for completeness
p<0.10Bitcoin (risk appetite)
F=3.73lag 1dp=0.0544
p<0.10Gold (safe haven)
F=2.36lag 3dp=0.0710
not sig.USD Index (dollar strength)
F=1.45lag 10dp=0.1586
not sig.Yield curve spread (10y−2y)
F=1.36lag 10dp=0.1965
not sig.Copper (global growth proxy)
F=1.51lag 1dp=0.2202
not sig.USD/THB (baht weakness)
F=1.44lag 1dp=0.2316
not sig.US 10Y yield change
F=1.23lag 3dp=0.3005
not sig.Hang Seng (HK/China)
F=1.13lag 3dp=0.3376
not sig.Nikkei 225 (Japan)
F=0.39lag 1dp=0.5310
not sig.US 2Y yield change
F=0.61lag 5dp=0.6895
not sig.Fed funds rate change
F=0.35lag 3dp=0.7925
Granger = predictive precedence, not true causation. ADF-tested for stationarity. · run 2026-06-04
THE FIVE REGIMES · share of 22 years
Range-bound calm← TODAY44.3%
VIX ~15.18 · 10y-2y 0.25pp · S&P 20d +2% · vol 11.42%
Steady climb (steep curve)34.3%
VIX ~16.73 · 10y-2y 1.9pp · S&P 20d +1.62% · vol 12.3%
Correction / stress14.8%
VIX ~26.56 · 10y-2y 0.87pp · S&P 20d -4.68% · vol 23.05%
Volatile recovery4.9%
VIX ~32.52 · 10y-2y 1.59pp · S&P 20d +5.64% · vol 32.64%
Crash / capitulation1.8%
VIX ~57.02 · 10y-2y 1.7pp · S&P 20d -13.74% · vol 68.37%
LAST 252 TRADING DAYS · regime tape
Crash / capitulationRange-bound calmSteady climb (steep curve)Correction / stressVolatile recovery
KMeans (k=5) on z-scored FRED daily features; analogue = nearest neighbour in feature space, forward S&P 500 return reported · generated 2026-06-18. Credit spreads are excluded from the state model (FRED truncates the free series) but stay live in the Mr. Market gauge. See Data Integrity.