Every S&P 500 bottom since 2016 — and what they had in common
Since 2016, the DoubleTrends™ engine has fired 7 times on the S&P 500 index. Read together, those dates show what the rule actually captures: stressed-regime reversals with strong forward asymmetry, plus the uncomfortable reality that some valid fires still arrive before the final low.
Each signal, the regime it fired inside, and the S&P 500's forward closes from that date:
| signal date | regime | close | +90d | +1y | +2y |
|---|---|---|---|---|---|
| 2018-10-31 | panic | 2711.74 | −2.6% | +12.0% | +20.6% |
| 2018-12-28 | panic | 2485.74 | +13.3% | +29.6% | +50.3% |
| 2020-03-26 | panic | 2630.07 | +16.0% | +51.1% | +74.0% |
| 2022-10-17 | bear | 3677.95 | +8.5% | +18.9% | +58.9% |
| 2025-03-17 | panic | 5675.12 | +6.3% | +18.3% | pending |
| 2025-04-09 | panic | 5456.90 | +14.1% | +25.1% | pending |
| 2026-04-01 | panic | 6575.32 | pending | pending | pending |
Returns are price-only from the signal close. Cells marked pending have not yet matured at the corresponding horizon.
Across the matured signals, the median forward returns:
Median 90-day return across matured signals.
Median one-year return. 6 of 6 matured signals were positive at the 12-month mark.
Each of the four signals matured at two years had a return above +20%; the median is in the 50–60% range.
The S&P 500 returns roughly +9% in an average year. The year after a signal was, on the matured set, more than double that — because the signals only fire after real stress, not during calm. That does not make any single future signal predictive in isolation. It gives useful base rates for interpreting the next alert when it appears.
The standout calls were the deepest ones: the COVID-crash low on 2020-03-26 (+51% over the next year, +74% over two), the December 2018 bottom (+30% / +50%), and the October 2022 bear-market low (+19% / +59%). Each fired close to the actual trough.
The honest pattern is what happens when the stress is more persistent. The first 2018 fire on 2018-10-31 was early — the market kept falling, and the December fire arrived closer to the real bottom. The same shape repeated in 2025: 2025-03-17 fired into the tariff selloff, the market continued lower, and 2025-04-09 fired again near the actual low.
This is not a bug. The engine fires when the rule's three gates clear — oversold reversal, stressed regime, confirmation — and inside a deeper or longer drawdown the same shape can resolve more than once. Bear-regime fires clear a harder confirmation bar precisely because the false-start problem is the worst there.
Three things appeared again and again. First, a real drawdown — not a 2–3% wobble. The regime classifier requires it. Second, exhausted downside momentum on both Williams %R timeframes at once. Third, the first sign of a turn off the floor. The engine does not predict the bottom. It waits for those three things and flags the moment, so the dip becomes a dated event on your calendar instead of a feeling buried inside headlines.
For ETF investors holding VOO, SPY, or IVV, that distinction matters. A broad-index alert can support a contribution plan or staged cash deployment, but it should not be treated as an instruction to deploy all cash on a single date. The historical record is useful precisely because it shows both the standout cases and the early fires.
Watch the next one as it happens.
DoubleTrends™ tracks the S&P 500 index daily and sends one alert when the rule fires. See every historical signal replayed on the live chart, then let the next rule-based prompt come to you.
Data & method
S&P 500 price index (^GSPC) daily closes, 2016 to present. Signal dates and forward closes are sourced from the live DoubleTrends™ history JSON. Forward returns are price-only (exclude dividends) and computed from the signal close. Cells marked pending have not yet matured at the corresponding horizon. Educational information only — not financial, investment, or trading advice. Past performance does not guarantee future results.