S&P 500
SPY · VIX · 2/10/2026
- Current volatility
- 10.5%
- Expected volatility
- 13.2%
- Risk (Direction of the change in volatility, not of the price.)
- Rising
The model may change state on the next signal.
Model detail: S&P 500Trend, volatility and model state for four markets, updated after every trading day. An educational model, not investment advice.
Market data as of 2 October 2026
The biggest daily move belonged to oil with a 1.8% drop. Gold suffered the largest trend score change, falling by 12 points to -15. S&P 500 and Nasdaq 100 grew by 0.7% and 1% respectively. Out of four tracked markets, the model is in LONG state for three and in CASH for one, while risk is rising across three markets.
Written by AI (Google Gemini) from the model's numbers only. Every number in it is checked automatically against the calculation. Not investment advice.
| Market | Model state | Trend Score | Current volatility | Expected volatility | Risk | To switch |
|---|---|---|---|---|---|---|
| S&P 500 | LONG124 d | +55+2 | 10.5%+0.2 pp | 13.2%−1.0 pp | Rising | → CASH Missing: Trend < 0 |
| Nasdaq 100 | CASH14 d | +71+1 | 15.4%+0.4 pp | 19.6%−1.2 pp | Rising | → LONG Missing: risk falling |
| Gold | LONG42 d | −15−12 | 22.1%−0.5 pp | 20.8%−0.1 pp | Falling | → CASH Missing: risk rising |
| Oil | LONG49 d | +71−4 | 44.2%+0.4 pp | 44.7%−0.5 pp | Rising | → CASH Missing: Trend < 0 |
Model state and its inputs on the latest trading day. Small figures show the change from the previous day.
SPY · VIX · 2/10/2026
The model may change state on the next signal.
Model detail: S&P 500NDX · VXN · 2/10/2026
The model may change state on the next signal.
Model detail: Nasdaq 100GLD · GVZ · 2/10/2026
The model may change state on the next signal.
Model detail: GoldUSO · OVX · 2/10/2026
The model may change state on the next signal.
Model detail: OilThese outputs come from a research model and are for education. They are not investment advice or a price forecast. Past model results do not guarantee future ones.
The model combines the direction of the price with the expected change in volatility. Its output is not a price forecast but a simple state: LONG (100% in the asset) or CASH (0% in the asset). It takes two inputs: the daily price of the underlying (SPY, NDX, GLD, USO) and the option-implied volatility (VIX, VXN, GVZ, OVX).
The model looks at three horizons: roughly 1 month, 3 months and 1 year. Each price move is divided by the current daily volatility, so the same move does not mean the same thing in a calm market and a nervous one.
Daily log return. P is the adjusted close.
EWMA daily variance. Recent moves weigh more, with λ = 0.94.
Momentum over horizon h, adjusted for risk and for horizon length. h is in trading days.
tanh caps the extremes, so the result always lies between −100 and +100. Positive means a rising trend, negative a falling one, near zero no direction.
Option-implied volatility expresses the swings the market expects. On its own it is systematically biased (usually too high), so the model calibrates it historically against the volatility actually realised over the following 21 trading days.
Implied volatility in percent converted to a daily variance.
Expanding OLS: the model only uses observations whose full 21 following days are already known, and needs at least 504 of them. α and β are therefore re-estimated each day from the past only.
Duan's smearing factor (the mean of e to the residuals) corrects the bias of transforming back from logs.
Both are annualised and in percent, so they compare directly.
Cooldown: after every real state change the model ignores new signals for the next five trading days. On day 6 the state may change again. A signal from the close is executed on the next trading day.
The model runs on this site every trading day after the US close: it downloads the prices of the underlyings and the implied-volatility indices, recomputes all four markets and stores the results.
A language model, Google Gemini, then writes a short report. It receives only the numbers from the calculation, nothing else, and may not write about events that are not in them. Every number in the finished text is checked automatically against the calculation; text that fails is not published and a template writes the report instead.
The VIX closed at 16.34. On that day the model had estimated α = −0.07230, β = 1.05394 and a smearing factor of 1.31278 (from 8,451 observations).
Implied volatility as a daily variance.
The linear part of the regression.
Back from logs, with Duan's correction.
Annualised expected volatility.
Realised volatility over the last 21 days was 10.52%. Since 14.11% > 10.52%, risk is rising. The Trend Score was +41, positive, but with rising risk neither the LONG nor the CASH condition holds, so the model keeps its previous state.