股市崩盘后的市场恢复机制
自2016年以来,SPY 每次崩盘后均已反弹。本文分析了市场回撤的历史深度与频率。
自2016年以来,S&P 500指数的每一次崩盘至今都已反弹并创下新高。2020年初,该指数在五周内下跌了约三分之一,但在六个月内便重回历史高点。2022年,该指数下跌了四分之一,并在2024年收复了失地。市场大部分时间都处于前期高点之下,而到目前为止,每一次低点都是暂时的。
最后这句话即是本文的核心。崩盘看起来像是图表上的断裂,但在历史记录中,它只是指数最终总能爬出的回撤。这并不保证下一次也是如此。它展示的是过去十年中,基于可审计的历史价格所发生的真实情况。
市场通常处于高点下方多少
投资者通常将市场视为一条上升的曲线。但大多数时候,它处于已有的高点之下。回撤是指从历史最高收盘价到当前价格的跌幅,直到指数创下新高,该回撤状态才会结束。下表根据 SPY ETF 的表现,将自2016年以来的每个交易日按其收盘价低于当前高点的幅度进行了分类。
每个数字背后的完整 SQL
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 ord该指数仅在 29.7% 的交易日创下全新高点。有 38.7% 的交易日处于高点 5% 范围内,而有 2.8% 的交易日跌破高点超过 20%。处于“水下”是市场的常态,而非警报。深幅回撤较为罕见,而浅幅回撤几乎是常态。
2016年以来市场的“水下”历史
绘制每月最大的未完成回撤,即可看出过去十年的走势。每一次波动都会向下挖掘,然后随着指数创下新高而重新回到零线。数值为零意味着该月市场触及了新高。
每个数字背后的完整 SQL
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 month两个深谷非常明显。2020年3月的COVID崩盘 在短短几周内使指数缩水约三分之一。2022年的熊市在大部分时间里持续走低。在这些波动之间是普通的调整:2018年艰难的12月、2019年剧烈的秋季,以及多次未引起关注的5%至10%的跌幅。它们最终都回到了零线。这张图表记录了十年的恐慌,每一次恐慌都被下一个新高所抹平。
迄今为止,每一次回撤都已收复
按年份来看,反弹趋势更加清晰。对于下表中的每个日历年,指数相对于其运行高点的最大回撤,与该年实际实现的收益率并列显示。
每个数字背后的完整 SQL
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 yr2020年是最典型的例子。最大回撤达到 -34.2%,但该年最终仍以 15.1% 收盘。2019年低点跌幅达 -16.8%,收盘于 28.6%。该期间内唯一的亏损年份是2022年,年内低点为 -25.4%,全年价格收益率为 -20%。该指数在次年收复了失地,2023年的收益率为 24.8%。年内出现两位数回撤是常态而非例外,且大多数年份最终仍以上涨收盘。
这种模式并非魔法。将指数分为少数几家超大市值股和其他股票,可以解释大部分现代回撤的原因,这一点在 我们的指数集中度研究 中有所阐述。崩盘对高贝塔(high-beta)股票的影响也最大,而 最平稳的股票 跌幅较小。不过,到目前为止,反弹已体现在整个市场中。
市场现状
一份评分表将当前状况与整个历史时期进行了对比。
每个数字背后的完整 SQL
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 dd自2016年以来,S&P 500从高点下跌的最深幅度是 34.2%,即COVID低点。截至最近一个交易日,其目前处于高点下方 0.6%。在 2647 个交易日中,有 70% 的交易日收盘低于前期高点,其中 32% 的跌幅超过5%,16% 的跌幅超过10%。市场大约有三分之一的时间处于远离高点的状态,且到目前为止,它已从每一次此类低点中爬升并创下新高。
以上内容不构成预测。过去的反弹描述的是已发生的事实,而非未来崩盘的表现;一个曾从34%跌幅中恢复的指数,下一次仍可能进一步下跌。历史记录的价值在于提供视角:回撤既是市场的常态,也是其紧急状态;而在这一观察期内,在回撤中卖出的行为,最终都错过了随后的反弹。
常见问题
股市崩盘总会反弹吗?
自2016年以来,S&P 500的每一次回撤至今都已反弹并创下新高,包括约 34.2% 的COVID崩盘和2022年熊市。过去的反弹是历史记录,而非对未来下跌的保证。
市场从崩盘中恢复需要多长时间?
时间差异很大。2020年的崩盘在几个月内就收复了高点,而2022年的熊市一直持续到2024年。上方的“水下”图表显示,每次回撤都以各自的速度回到零线。
股市处于高点以下的时间比例是多少?
自2016年以来,S&P 500在约 70% 的交易日中收盘低于前期高点。仅有 29.7% 的交易日创下全新高点。处于高点之下是市场的常态。
2016年以来最严重的股市回撤是什么?
2020年初的COVID崩盘,当时指数在几周内从高点下跌了约 34.2%。2022年的熊市是下一次深幅回撤,年内低点接近 -25.4%。
崩盘后买入股票是个好主意吗?
本文不提供任何建议。历史记录显示,市场大部分时间处于高点之下,且在此期间已从每一次崩盘中恢复,但这种趋势是否会持续尚不可知。有关市场最恐慌时期的表现,请参阅 我们关于恐慌期买入的数据研究。
本文中的每个数字均来自可供查阅的存储查询。您可以在Strasmore终端上对任何代码运行相同的“水下”测试。