Research campaign · Iteration 1 · unassessed

GARCH bottoming signals — what actually held up?

Can a documented GARCH-family volatility forecast identify useful S&P 500 bottom buy entries, or is it better used for exposure sizing?

Expressions
5
Logged trials
Not recorded
Independent events
Not assessed
Evidence
unassessed

What the research found

Mechanism and falsifiers

Not recorded in this iteration.

Not recorded in this iteration.

Confidence and limitations

  • GARCH forecasts conditional variance, not expected return direction or exact trough date.

  • Binary bottom thresholds, 20% drawdown, 21-session holding, and ratio threshold are inferred exploratory choices.

  • State-space uses ^GSPC and a single 2000 calibration cutoff; diagnostics do not constitute a full walk-forward refit matrix.

  • Close-only repository storage prevents faithful intraday Realized-GARCH and VIX-futures replication.

  • EGARCH Student-t did not converge in the declared optimizer budget and remains a retained failure.

  • SPY investable sensitivity and source-faithful open-entry high-volatility rule remain follow-up questions.

  • No indicator or strategy is promoted from this campaign.

Not recorded in this iteration.

Compare expressions

Download evidence

Exploratory results. Check each period, proxy and cost assumption before comparing. — means not recorded.

Expression / familyCAGRSharpeMax drawdownTest periodAssessment
garch-normal-highdecline-dd20symmetric garch exhaustion ——— Not recorded
exploratory
garch-studentt-ratioforecast current stabilization ——— Not recorded
exploratory
gjr-studentt-ratioforecast current stabilization ——— Not recorded
exploratory
egarch-normal-ratiogjr egarch asymmetry ——— Not recorded
exploratory
garch-normal-inverse-volinverse forecast volatility ——— Not recorded
exploratory

Open an expression to inspect its rules and request confirmation. The request must be submitted by a trusted repository collaborator.

garch-normal-highdecline-dd20
variant id

garch-normal-highdecline-dd20

family id

symmetric_garch_exhaustion

parameters
family

garch

distribution

normal

percentile

0.8

drawdown

0.2

holding period

21

created by

source_expansion

reason tested

sparse panic-exhaustion entry

status

exploratory

garch-studentt-ratio
variant id

garch-studentt-ratio

family id

forecast_current_stabilization

parameters
family

garch

distribution

student_t

ratio threshold

1.0

holding period

21

created by

source_expansion

reason tested

relative stabilization entry

status

exploratory

gjr-studentt-ratio
variant id

gjr-studentt-ratio

family id

forecast_current_stabilization

parameters
family

gjr

distribution

student_t

ratio threshold

1.0

holding period

21

created by

source_expansion

reason tested

negative-shock asymmetry sensitivity

status

exploratory

egarch-normal-ratio
variant id

egarch-normal-ratio

family id

gjr_egarch_asymmetry

parameters
family

egarch

distribution

normal

ratio threshold

1.0

holding period

21

created by

source_expansion

reason tested

log-variance asymmetry sensitivity

status

exploratory

garch-normal-inverse-vol
variant id

garch-normal-inverse-vol

family id

inverse_forecast_volatility

parameters
family

garch

distribution

normal

target volatility

0.1

min weight

0.0

max weight

1.0

created by

source_expansion

reason tested

risk-control overlay

status

exploratory

Interactive lab

6427 observations

Loading available evidence…

Research record

Source claims, inferred rules, experiments and the evidence behind the assessment.

Source
papers
  • Engle 1982 ARCH — https://doi.org/10.2307/1912773

  • Bollerslev 1986 GARCH — https://doi.org/10.1016/0304-4076(86)90063-1

  • Nelson 1991 EGARCH — https://doi.org/10.2307/2938260

  • Glosten/Jagannathan/Runkle 1993 GJR — https://doi.org/10.1111/j.1540-6261.1993.tb05128.x

  • Fleming/Kirby/Ostdiek 2001 volatility timing — https://doi.org/10.1111/0022-1082.00327

  • Fuertes/Kalotychou/Todorovic 2015 high-volatility buys — https://doi.org/10.1007/s11156-014-0436-6

rule

Only the model equations are documented source rules. Every equity entry/exit overlay is labeled inferred.

What the source claims
  • GARCH-family models forecast conditional variance and can support exposure timing. Asymmetric variants model the larger volatility response to negative shocks. The literature does not say that the highest forecast is the exact market bottom.

Rules actually disclosed
  • GARCH(1,1): h_t = omega + alpha*epsilon_(t-1)^2 + beta*h_(t-1). GJR adds gamma*I(epsilon<0)*epsilon^2. EGARCH models log variance with signed standardized shocks.

What had to be inferred
  • A bottom proxy, high-volatility percentile, forecast-decline rule, 20% drawdown gate, forecast/current threshold, 21-session holding period, target exposure, and next-close mapping were all declared exploratory choices.

Research questions
  • Can a documented GARCH-family volatility forecast identify useful S&P 500 bottom buy entries, or is it better used for exposure sizing?

Data
target

^GSPC close, 1927-12-30 through 2026-07-24

tradable sensitivity

SPY, 1993-01-29 through 2026-07-24

cash

__IRX_TBILL_TR__ derived from ^IRX

storage

market.sqlite is close-only; Realized-GARCH and VIX-futures branches are data-limited

execution

Signal at close t, trade next close.

Baseline implementation
code

research/garch_bottoming.py

fit

Deterministic bounded scipy L-BFGS-B with Normal or Student-t innovations

runner

research/garch_bottoming_experiment.py

diagnostics

research/garch_bottoming_diagnostics.py

What to try interactively
  • Adjust forecast/current threshold from 0.5 to 1.5.

  • Change active holding window from 10 to 40 sessions.

  • Compare trigger count and forward outcome table against the fixed 1.0/21 baseline.

Suggested next research
  • Run source-faithful Fuertes et al. high-volatility percentile entries, point-in-time rolling refits, SPY investable sensitivity, overlap-aware event inference, and a legal realized-volatility feasibility review.

Trial ledger
  • iteration number

    1

    objective

    Map source rules, implement GARCH/GJR/EGARCH, run common-window state space, diagnose costs/regimes, synthesize and publish.

    status

    completed

What the signal looks like
  • The interactive lab uses the real ^GSPC-derived GARCH-normal forecast-volatility and rolling current-volatility fixture. Change the forecast/current threshold and holding period to recompute the displayed trigger events and overlay grid.

Historical events
  • GARCH-normal 20%-drawdown entries had 0.765%/1.369%/5.024% mean forward 21/63/126-session returns and positive rates 63.39%/66.14%/72.44% in the gross holdout event study. These are event averages, not a guaranteed trade outcome.

State-space exploration
  • Eight rows were retained: five converged GARCH-family fits, one EGARCH Student-t optimizer failure, and two data-limited extensions. Every row remains visible in the trial ledger.

Parameter sensitivity
  • Models: GARCH, GJR-GARCH, EGARCH. Innovations: Normal and Student-t. Horizons: 1/5/21 sessions. Signals: high-and-declining, forecast/current ratio, drawdown confirmation, and bounded inverse-volatility sizing.

What worked
  • Inverse-volatility sizing had gross Sharpe 0.582, CAGR 5.32%, and max drawdown -26.67%, versus buy-and-hold 0.449/7.00%/-56.78%. At 10 bps the sizing profile remained 0.522/4.70%/-27.43%.

What did not work
  • No binary bottom overlay beat buy-and-hold on common-window Sharpe/CAGR. GJR and EGARCH did not establish stable superiority. EGARCH Student-t did not converge in-budget.

Why the failures appear to happen
  • Volatility can remain high during a prolonged selloff. Sparse entries miss the equity risk premium, while ratio/no-drawdown variants remain exposed to large losses. Model differences are smaller than regime and execution effects.

Regime behavior
  • Inverse-volatility sizing was negative in 2001-2003 and 2007-2009, then positive in later windows. Drawdown-gated entries were especially weak in the GFC window. Recent strength is not a promotion argument.

Timing and cost sensitivity
  • Increasing one-way cost from 10 to 20 bps reduced inverse-volatility Sharpe for GARCH-normal from 0.522 to 0.462; adding a second session of lag reduced its 10 bps Sharpe to 0.516.

Combinations
  • The best exploratory combination is a risk-sizing overlay, not a buy trigger. Price confirmation reduces exposure and drawdown but does not solve the missing directional forecast problem.

Agent assessment
  • The evidence supports recreating GARCH accurately and backtesting its risk-state overlays. It does not support claiming that GARCH alone calls market bottoms.

Next questions

Review status

awaiting research feedback. Research publication does not imply official admission.

Return to pending research