Recupero dei crash dell'S&P 500
Analisi storica dei drawdown dell'S&P 500 dal 2016. Scopri quanto tempo impiega il mercato a recuperare i minimi e come si è comportato ogni singolo crash.
Ogni crash dell'S&P 500 dal 2016 ad oggi si è ripreso raggiungendo nuovi massimi. L'indice ha perso circa un terzo del suo valore in cinque settimane all'inizio del 2020 e ha recuperato il record in sei mesi. Ha perso un quarto durante il 2022 e ha riconquistato il massimo nel 2024. Il mercato trascorre la maggior parte del tempo al di sotto di un picco precedente e, finora, ogni minimo è stato temporaneo.
L'ultima frase riassume l'intero post. Un crash appare come una rottura nel grafico. Storicamente, si tratta di un dip dal quale l'indice è sempre riuscito, alla fine, a uscire. Questo non garantisce che accadrà lo stesso con il prossimo. Mostra ciò che l'ultimo decennio ha effettivamente realizzato, basandosi su prezzi storici verificabili.
Quanto il mercato si posiziona solitamente al di sotto dei suoi massimi
Gli investitori immaginano il mercato come una linea in costante crescita. Nella maggior parte dei casi, si tratta di una linea che si posiziona al di sotto di un massimo già registrato. Un drawdown è il calo rispetto alla chiusura più alta registrata finora rispetto al prezzo attuale; tale stato persiste finché l'indice non segna un nuovo record. Il grafico seguente suddivide ogni giorno di trading dal 2016 in base a quanto il S&P 500, misurato tramite l'ETF SPY, sia chiuso al di sotto del suo picco attuale.
L'esatto SQL dietro ogni numero
WITH d AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2016-01-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY dt
),
dd AS (
SELECT dt,
(c / max(c) OVER (ORDER BY dt ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - 1) * 100 AS ddpct
FROM d
),
b AS (
SELECT multiIf(ddpct >= -0.5, 'At a new high',
ddpct >= -5, 'Within 5% of the high',
ddpct >= -10, '5-10% below',
ddpct >= -20, '10-20% below',
'More than 20% below') AS bucket,
multiIf(ddpct >= -0.5, 0, ddpct >= -5, 1, ddpct >= -10, 2, ddpct >= -20, 3, 4) AS ord
FROM dd
)
SELECT bucket, round(100.0 * count() / (SELECT count() FROM b), 1) AS pct_of_trading_days
FROM b GROUP BY bucket, ord ORDER BY ordL'indice ha chiuso su un nuovo massimo solo nel 29.7% dei giorni di trading. Si è posizionato entro il 5% da un massimo in un altro 38.7%, e a più del 20% al di sotto di esso nel 2.8%. Essere in territorio negativo è la condizione normale del mercato, non un segnale di allarme. I cali profondi sono rari, mentre quelli superficiali sono quasi costanti.
La storia dei drawdown del mercato dal 2016
Il grafico mostra il peggior drawdown aperto per ogni mese e l'andamento dell'ultimo decennio. Ogni episodio registra un calo, per poi tornare alla linea dello zero quando l'indice stabilisce un nuovo record. Un valore pari a zero indica che il mercato ha toccato un nuovo massimo in quel mese.
L'esatto SQL dietro ogni numero
WITH d AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2016-01-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY dt
),
dd AS (
SELECT dt, c,
max(c) OVER (ORDER BY dt ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS peak
FROM d
)
SELECT toStartOfMonth(dt) AS month, round(min((c / peak - 1) * 100), 1) AS worst_drawdown_pct
FROM dd GROUP BY month ORDER BY monthI due minimi profondi sono inconfondibili. Il crash COVID di marzo 2020 ha ridotto l'indice di circa un terzo in poche settimane. Il bear market del 2022 ha registrato cali continui per gran parte dell'anno. Attorno a questi si trovano i comuni pullback: un difficile dicembre nel 2018, un autunno turbolento nel 2019 e ripetuti cali del 5-10% che non hanno mai occupato le prime pagine. Ognuno di essi è tornato alla linea dello zero. Il grafico rappresenta un decennio di timori, ognuno cancellato dal successivo nuovo massimo.
Ogni drawdown finora è stato recuperato
Il recupero è sempre più evidente di anno in anno. Per ogni anno solare riportato di seguito, il peggior drawdown subito dall'indice rispetto al suo massimo relativo è affiancato al rendimento del prezzo effettivamente registrato nell'anno.
L'esatto SQL dietro ogni numero
WITH d AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2016-01-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY dt
),
dd AS (
SELECT dt, toYear(dt) AS yr, c,
(c / max(c) OVER (ORDER BY dt ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - 1) * 100 AS ddpct
FROM d
)
SELECT toString(yr) AS year,
round(min(ddpct), 1) AS worst_drawdown_pct,
round((argMax(c, dt) / argMin(c, dt) - 1) * 100, 1) AS year_return_pct
FROM dd GROUP BY yr ORDER BY yrIl 2020 è l'esempio più chiaro. Il peggior drawdown ha raggiunto -34.2%, e l'anno si è concluso comunque a 15.1%. Il 2019 è sceso fino a -16.8% nel suo punto minimo e ha chiuso a 28.6%. L'unico anno in perdita nel periodo è stato il 2022, con un minimo intra-year di -25.4% e un rendimento del prezzo annuale di -20%. L'indice ha recuperato quel terreno l'anno successivo, quando il 2023 ha reso 24.8%. Un drawdown a doppia cifra durante l'anno è stato la regola piuttosto che l'eccezione, e la maggior parte di quegli anni si è conclusa comunque con un rendimento positivo.
Il pattern non è magico. Dividere l'indice in un gruppo di mega-cap e tutto il resto spiega gran parte dei drawdown moderni, un punto trattato nel nostro studio sulla concentrazione dell'indice. Un crash colpisce duramente anche i titoli con beta più elevato, mentre i titoli più stabili perdono meno. Il recupero, tuttavia, si è manifestato su tutto il mercato finora.
La situazione attuale del mercato
Un indicatore mette in relazione l'andamento attuale con l'intero periodo considerato.
L'esatto SQL dietro ogni numero
WITH d AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2016-01-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY dt
),
dd AS (
SELECT dt,
(c / max(c) OVER (ORDER BY dt ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - 1) * 100 AS ddpct
FROM d
)
SELECT round(-min(ddpct), 1) AS deepest_fall_pct,
round(-argMax(ddpct, dt), 1) AS current_fall_pct,
round(100.0 * countIf(ddpct < -0.5) / count(), 0) AS pct_days_below_high,
round(100.0 * countIf(ddpct < -5) / count(), 0) AS pct_days_below_5,
round(100.0 * countIf(ddpct < -10) / count(), 0) AS pct_days_below_10,
count() AS trading_days
FROM ddDal 2016, il calo più profondo dell'S&P 500 rispetto ai massimi è stato del 34.2%, il minimo raggiunto durante il COVID. Al termine dell'ultima sessione, l'indice si trova 0.6% sotto il suo massimo. Su 2647 giorni di trading, ha chiuso sotto il picco precedente in 70% occasioni, con un calo superiore al 5% in 32% dei casi e superiore al 10% in 16%. Il mercato ha trascorso circa un terzo del suo tempo a una distanza significativa dai massimi e, finora, è riuscito a raggiungere un nuovo record dopo ogni singolo di questi cali.
Nessuna di queste informazioni costituisce una previsione. I recuperi passati descrivono eventi accaduti, non l'andamento di un futuro crash; un indice che si è ripreso da un calo del 34% potrebbe comunque scendere ulteriormente la prossima volta. L'utilità del dato storico risiede nella prospettiva: un drawdown rappresenta sia lo stato di riposo del mercato sia la sua fase di emergenza, e la reazione di vendita durante tali fasi, in questo intervallo temporale, si è trasformata in acquisti durante la fase di recupero.
FAQ
I crash del mercato azionario si recuperano sempre?
Ogni drawdown dell'S&P 500 dal 2016 si è recuperato raggiungendo nuovi massimi ad oggi, incluso il crash COVID di circa 34.2% e il bear market del 2022. I recuperi passati sono una cronologia di eventi avvenuti, non una garanzia per eventuali cali futuri.
Quanto tempo impiega il mercato a recuperare da un crash?
I tempi sono variati ampiamente. Il crash del 2020 ha recuperato i suoi massimi in pochi mesi, mentre il bear market del 2022 si è protratto fino al 2024. Il grafico underwater sopra mostra come ogni drawdown torni alla linea dello zero con i propri tempi.
Quanto tempo il mercato azionario rimane sotto il suo massimo?
Dal 2016 l'S&P 500 ha chiuso sotto un massimo precedente in circa il 70% dei giorni di trading. Ha raggiunto un nuovo massimo solo nel 29.7% di essi. Rimanere sotto un picco è lo stato normale del mercato.
Qual è stato il peggior drawdown del mercato azionario dal 2016?
Il crash COVID dell'inizio del 2020, quando l'indice è sceso di circa il 34.2% dal suo massimo in poche settimane. Il bear market del 2022 è stato il successivo per profondità, con un minimo intra-year vicino al -25.4%.
È una buona idea comprare azioni dopo un crash?
Questo post non offre consigli. I dati storici mostrano che il mercato ha trascorso gran parte del suo tempo sotto un massimo e si è recuperato da ogni crash nel periodo considerato, sebbene non si sappia se ciò continuerà ad accadere. Consulta il nostro studio dei dati sull'acquisto durante la paura per vedere l'andamento dei giorni di massima paura del mercato.
Ogni numero riportato deriva da una query salvata che è possibile aprire e verificare sotto ogni grafico. Esegui lo stesso test underwater su qualsiasi ticker sul terminale Strasmore.