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-11-03
Correction / stress
VIX
21.29
10y-2y
0.32pp
S&P 20d
-3.55%
S&P vol
11.17%
WHEN THE MARKET LAST LOOKED LIKE THIS — WHAT FOLLOWED
AVG +30 DAYS
-1.4%
AVG +90 DAYS
+7.4%
2019-05-13Range-bound calmVIX 20.5+3.8%+6.9%
2025-02-27Range-bound calmVIX 21.1-10.1%+6.9%
2018-10-10Correction / stressVIX 23-4.9%-0.4%
2026-07-29Range-bound calmVIX 20.7+4.4%—
2019-10-08Range-bound calmVIX 20.3+7.9%+16.5%
2025-03-05Correction / stressVIX 21.9-9.7%+6.9%
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.5%72.9% hit · n=5648over the next 90 trading days, the bars below show distance from this
BY MARKET REGIME
Volatile recovery
+11.5%+8pp89.8% hit+8.87%…+16.41%n=275
Crash / capitulation
+4.61%+1.11pp51% hit-16.41%…+26.22%n=102
Range-bound calm
+3.48%-0.02pp≈ baseline · no edge+0.21%…+7.89%n=2516
Correction / stress● NOW
+3.13%-0.37pp≈ baseline · no edge-3.02%…+11.96%n=834
Steady climb (steep curve)
+2.48%-1.02pp70.4% hit-1.11%…+7.19%n=1921
BY VIX (FEAR)
< 15 · complacent
+2.75%-0.75pp75% hit0%…+6.45%n=2092
15–20 · normal
+2.98%-0.52pp≈ baseline · no edge-0.81%…+8.03%n=1779
20–30 · stressed● NOW
+3.59%+0.09pp≈ baseline · no edge-2.3%…+11.37%n=1328
≥ 30 · panic
+8.81%+5.31pp76.8% hit+1.47%…+18.54%n=449
BY YIELD CURVE (10Y–2Y)
inverted · < 0
+6.5%+3pp87.5% hit+2.93%…+9.73%n=786
flat · 0–0.5● NOW
+1.95%-1.55pp62% hit-2.83%…+6.79%n=1203
normal · 0.5–1.5
+3.02%-0.48pp≈ baseline · no edge+0.2%…+8.05%n=1879
steep · ≥ 1.5
+3.74%+0.24pp≈ 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.9%56.8% hit · n=6359over 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.39pp≈ baseline-5.04…+10.8%n=752
30–45 · low
+1.12%-1.78ppmild drag-6.4…+7.78%n=1520
45–60 · neutral● NOW
+2.55%-0.35pp≈ baseline-5.76…+9.95%n=1759
60–70 · high
+3.3%+0.4pp≈ baseline-5.36…+9.85%n=1058
> 70 · overbought
+5.44%+2.54ppedge ↑-3.76…+12.39%n=1270
EMA(9/21) CROSS — trend confirmation
EMA9 > EMA21 · bull● NOW
+3.97%+1.07ppmild edge-4.97…+10.69%n=3510
EMA9 < EMA21 · bear
+1.59%-1.31ppmild drag-5.78…+9.63%n=2849
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.1ppnegative ↓-6.57…+8.63%n=358
lower half · 0–0.5● NOW
+1.94%-0.96ppmild drag-5.69…+9.18%n=2475
upper half · 0.5–1
+3.72%+0.82ppmild edge-5.17…+11.05%n=3214
above upper band · %B > 1
+4.64%+1.74ppmild edge-2.98…+11.32%n=312
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.48ppnegative ↓-10.84…+14.54%n=379
-8 to 0% · negative
+2.01%-0.89ppmild drag-5.57…+8.25%n=2512
0–8% · positive● NOW
+3.11%+0.21pp≈ baseline-5.04…+10.08%n=2968
> 8% · strong rally
+8.1%+5.2ppedge ↑-4.34…+20.68%n=500
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 · 112 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.01Bitcoin (risk appetite)
F=16.03lag 1dp=0.0001
p<0.01Yield curve spread (10y−2y)
F=8.21lag 1dp=0.0044
NOT SIGNIFICANT — shown for completeness
p<0.10WTI Crude (energy)
F=3.12lag 1dp=0.0782
p<0.10Copper (global growth proxy)
F=1.65lag 10dp=0.0908
not sig.USD/JPY (yen carry trade)
F=2.02lag 3dp=0.1103
not sig.S&P 500 (US equities)
F=1.91lag 3dp=0.1267
not sig.Nikkei 225 (Japan)
F=1.60lag 1dp=0.2068
not sig.CBOE VIX (fear gauge)
F=1.27lag 10dp=0.2442
not sig.Hang Seng (HK/China)
F=1.26lag 10dp=0.2496
not sig.Gold (safe haven)
F=0.84lag 1dp=0.3605
not sig.US 10Y yield change
F=1.04lag 10dp=0.4072
not sig.USD Index (dollar strength)
F=0.56lag 1dp=0.4529
not sig.USD/THB (baht weakness)
F=0.51lag 1dp=0.4771
not sig.US 2Y yield change
F=0.55lag 10dp=0.8567
Granger = predictive precedence, not true causation. ADF-tested for stationarity and aligned by trading session. · run 2026-11-02◐CACHED · —
ANOMALY WATCH · PRICE VS FUNDAMENTALS
IsolationForest over 25 SET names clustered on 14 fundamentals+price features. A flag means the stock trades in a way its cluster's numbers can't explain — the market is telling a story the statements don't carry yet. It is a pointer for looking, never a buy/sell call.
NAMECLUSTERANOMALY 0–120D RET
DELTA.BKgrowth_premium1.00-22.5%
ADVANC.BKgrowth_premium0.65-3.1%
PTTGC.BKspeculative0.63-5.6%
AOT.BKspeculative0.60-2.5%
mined 2026-11-01T18:00:48.422104 · refreshed weekly by ingestion/pattern_mine.py
KMeans (k=5) on z-scored FRED daily features; analogue = nearest neighbour in feature space, forward S&P 500 return reported · generated 2026-11-03. Credit spreads are excluded from the state model (FRED truncates the free series) but stay live in the Mr. Market gauge. See Data Integrity.