Strasmore Research
深度研究 Matt Connor作者: Matt Connor · 更新于 2026-09-28

2020年新冠暴跌:四次熔断与峰谷跌幅

复盘2020年新冠暴跌:四次熔断、3月9日逐分钟记录缺口,以及SPY从峰值到谷值的完整路径,查看数据证据与SQL查询。

2020年的新冠疫情暴跌使标普500指数从2月19日的历史收盘高点,在23个交易日内录得-34.2%的峰谷跌幅。期间发生了四次全市场熔断,这是1997年以来的首次。

本页根据交易记录回放了整个过程:暴跌路径;3月9日熔断交易日的逐分钟走势;数据中缺失的分钟记录——这是本页最有力的证据;跌幅最大的股票;以及美国国债和期权交易记录同期的表现。所有数字均来自存储查询。展开任一面板即可查看SQL。

整场崩盘,一行呈现

先看那一天之前的整体图景。通过一次查询,统计 SPY 常规交易时段的日收盘价,即可确定峰值、谷值、下跌速度和恢复情况;同时对 2008 年熊市进行相同测算,以便比较规模。

查询COVID暴跌:从峰值到谷底再到复苏:SPY日收盘价,单行
峰值日期峰值收盘价谷值日期谷值收盘价跌幅(%)峰值至谷值交易日数日历天数至下跌30%交易日数2008年金融危机至下跌30%交易日数恢复日期谷值至恢复交易日数
2020-02-19338.312020-03-23222.51-34.22333222502020-08-18103
每个数字背后的完整 SQL
WITH dailies AS (
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS d,
        argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS c
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2020-02-01 00:00:00') AND window_start < toDateTime('2020-09-01 00:00:00')
    GROUP BY d
),
peak AS (SELECT argMax(d, (c, -toInt32(d))) AS pd, max(c) AS pc FROM dailies WHERE d < toDate('2020-03-01')),
trough AS (SELECT argMin(d, (c, toInt32(d))) AS td, min(c) AS tc FROM dailies WHERE d < toDate('2020-04-01')),
gfc AS (
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS d,
        argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS c
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2007-06-01 00:00:00') AND window_start < toDateTime('2009-01-01 00:00:00')
    GROUP BY d
),
gpeak AS (SELECT argMax(d, (c, -toInt32(d))) AS pd, max(c) AS pc FROM gfc WHERE d < toDate('2008-01-01'))
SELECT
    toString((SELECT pd FROM peak)) AS peak_date,
    round((SELECT pc FROM peak), 2) AS peak_close,
    toString((SELECT td FROM trough)) AS trough_date,
    round((SELECT tc FROM trough), 2) AS trough_close,
    round(((SELECT tc FROM trough) / (SELECT pc FROM peak) - 1) * 100, 1) AS decline_pct,
    countIf(d > (SELECT pd FROM peak) AND d <= (SELECT td FROM trough)) AS sessions_peak_to_trough,
    dateDiff('day', (SELECT pd FROM peak), (SELECT td FROM trough)) AS calendar_days,
    countIf(d > (SELECT pd FROM peak) AND d <= (SELECT min(d) FROM dailies WHERE c <= 0.7 * (SELECT pc FROM peak))) AS sessions_to_minus_30,
    (SELECT countIf(d > (SELECT pd FROM gpeak) AND d <= (SELECT min(d) FROM gfc WHERE c <= 0.7 * (SELECT pc FROM gpeak))) FROM gfc) AS gfc_2008_sessions_to_minus_30,
    toString((SELECT min(d) FROM dailies WHERE d > (SELECT td FROM trough) AND c >= (SELECT pc FROM peak))) AS recovery_date,
    countIf(d > (SELECT td FROM trough) AND d <= (SELECT min(d) FROM dailies WHERE d > (SELECT td FROM trough) AND c >= (SELECT pc FROM peak))) AS sessions_trough_to_recovery
FROM dailies
自己运行这个查询

SPY 的峰值收盘价为 $338.31,日期为 2020-02-19。谷值收盘价为 $222.51,日期为 2020-03-23,较峰值低 -34.2%。这轮熊市在 23 个交易日、33 个日历日内完成压缩。市场经常引用的“有记录以来最快下跌 30%”这一说法,也能在同一行数据中得到验证:SPY 收盘价仅在第 22 个交易日就首次跌破峰值下方 30% 的位置。采用相同方法、以 2007 年 10 月的峰值收盘价为起点测算,2008 年熊市用了 250 个交易日才下跌同样的 30%。2008 年大约需要一年的跌幅,2020 年只用了约一个月。

这轮崩盘的时间线如下,所有数字均来自本页各面板:

  • 2020 年 2 月 19 日,SPY 创纪录收盘,报 $338.31。
  • 3 月 9 日,自 1997 年以来首次触发全市场熔断;SPY 收跌 -7.7%。下文将按分钟提供数据记录。
  • 3 月 12 日、16 日和 18 日,又发生三次一级熔断。3 月 16 日收跌 -11.6%,为本轮崩盘中最糟糕的单日表现。
  • 3 月 23 日,收盘低点为 $222.51,较峰值低 -34.2%。
  • 3 月 24 日,市场转向。3 月 24 日的刺激措施驱动反弹推动了这轮行情。
  • 2020-08-18,SPY 收盘价再次高于 2 月峰值,距低点已过去 103 个交易日。

2020年3月9日:触发熔断机制的交易时段

全市场熔断机制以标普500指数为依据。因此,本节通过SPY(标普500 ETF)读取停牌情况,而不是使用其他代理标的。此前周末,疫情引发的重新定价与供应冲击叠加(下文将详述),市场始终未能以有序方式真正开盘。

查询2020年3月9日的SPY:熔断交易日,成交明细
前收盘价常规时段开盘价跳空幅度(%)停牌首次缺失ET时间停牌缺失分钟数常规时段最低价最低价ET时间常规时段收盘价日变动(%)日成交股数(百万)常规时段分钟K线数
297.42275.3-7.409:3514273.4514:44274.4-7.7304.6376
每个数字背后的完整 SQL
WITH
    (
        SELECT argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime('2020-03-06 00:00:00') AND window_start < toDateTime('2020-03-09 04:00:00')
    ) AS prior_rth_close,
    (
        SELECT (formatDateTime(toTimeZone(addMinutes(prev_bar, 1), 'America/New_York'), '%H:%i'), gap_minutes - 1)
        FROM (
            SELECT
                lagInFrame(window_start) OVER (ORDER BY window_start ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_bar,
                dateDiff('minute', prev_bar, window_start) AS gap_minutes
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'SPY'
              AND window_start >= toDateTime('2020-03-09 04:00:00') AND window_start < toDateTime('2020-03-09 23:59:00')
              AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
        )
        WHERE prev_bar > toDateTime('2020-03-09 00:00:00')
        ORDER BY gap_minutes DESC
        LIMIT 1
    ) AS halt_gap
SELECT
    round(prior_rth_close, 2) AS prior_close,
    round(toFloat64(argMinIf(open, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)), 2) AS rth_open,
    round((toFloat64(argMinIf(open, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / prior_rth_close - 1) * 100, 1) AS gap_pct,
    halt_gap.1 AS halt_first_missing_et,
    halt_gap.2 AS halt_missing_minutes,
    round(minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS rth_low,
    formatDateTime(toTimeZone(argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 'America/New_York'), '%H:%i') AS low_et,
    round(toFloat64(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)), 2) AS rth_close,
    round((toFloat64(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / prior_rth_close - 1) * 100, 1) AS day_change_pct,
    round(toFloat64(sum(volume)) / 1e6, 1) AS day_shares_m,
    countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS rth_minute_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
  AND window_start >= toDateTime('2020-03-09 04:00:00') AND window_start < toDateTime('2020-03-09 23:59:00')
自己运行这个查询

先看两个数字。第一是跳空幅度:SPY开盘价为$275.3,较周五收盘价$297.42低-7.4%。开盘后最初几分钟内,标普500指数跌幅达到7%的一级熔断阈值。第二个数字更值得关注:本交易时段有376根分钟K线,而通常为390根。行情在上午9:34后停止:从美国东部时间09:35开始,连续14分钟完全没有任何成交记录。市场各处都没有成交。数据中的这段空白,正是熔断机制。该交易时段最终以$274.4收盘,跌幅为-7.7%,成交量为304.6百万股。

暂停交易时段的走势形态

查询SPY半小时走势:2020年3月9日常规交易时段,最后半小时收盘撮合价
ET时间区间收盘价区间最低价成交股数(百万)
09:30279.93273.517.4
10:00280.72275.623.4
10:30278.61275.519.1
11:00281.03275.517.2
11:30282.69280.0619.1
12:00281.01280.9517.2
12:30279.71275.9513.4
13:00278.59278.2411.5
13:30275.84275.3419.4
14:00274.95274.0621.2
14:30276.59273.4525.9
15:00277.9275.5524.5
15:30274.4274.3750.2
每个数字背后的完整 SQL
SELECT
    b.et_time                                                                   AS et_time,
    b.bucket_close                                                              AS bucket_close,
    b.bucket_low                                                                AS bucket_low,
    round((b.bar_shares + if(b.et_time = '15:30', p.print_shares, 0)) / 1e6, 1) AS shares_m
FROM
(
    SELECT
        formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
        round(toFloat64(argMax(close, window_start)), 2) AS bucket_close,
        round(min(toFloat64(low)), 2) AS bucket_low,
        toFloat64(sum(volume)) AS bar_shares
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2020-03-09 04:00:00') AND window_start < toDateTime('2020-03-09 23:59:00')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY et_time
) AS b
CROSS JOIN
(
    SELECT toFloat64(maxIf(size, has(conditions, 8))) AS print_shares
    FROM global_markets.stocks_trades
    WHERE ticker = 'SPY'
      AND sip_timestamp >= toDateTime('2020-03-09 20:00:00', 'UTC')
      AND sip_timestamp <  toDateTime('2020-03-09 20:15:00', 'UTC')
) AS p
ORDER BY et_time
自己运行这个查询

开盘时段同时包含了暴跌、暂停交易和恢复交易:该时段低点为$273.5,与全天低点$273.45仅相差几美分;东部时间14:44的午后成交价只是再次测试了早盘水平。恢复交易后,行情几乎没有进一步变化:每个半小时收盘价都处于恢复交易价格上下几美元的范围内,全天跌幅在开盘后的最初几分钟内就已形成。成交量也从反方向印证了这一点。最后半小时成交量达到50.2百万股,是全天成交量最大的时段,因为收盘资金流在此时完成交叉撮合。熔断机制正是为了形成这种走势:阻止瀑布式下跌,强制进行重新开盘拍卖,并让连续交易在重新定价后的水平恢复。如今,市场时钟已将这套机制永久嵌入其中。

八个交易日内四次熔断

3月9日只是第一次。

查询2020年3月四个熔断交易日:SPY收盘价、变动、成交量
交易时段收盘价(美元)涨跌幅成交股数(百万)
2020-03-09274.4-7.7304.6
2020-03-12248.1-9.6389.3
2020-03-16239.41-11.6291.5
2020-03-18241.01-5.2324.7
每个数字背后的完整 SQL
SELECT
    toString(et_date) AS session,
    close_usd,
    change_pct,
    shares_m
FROM (
    SELECT et_date, close_usd, shares_m,
           round((close_usd / lagInFrame(close_usd) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) - 1) * 100, 1) AS change_pct
    FROM (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
            round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS close_usd,
            round(toFloat64(sum(volume)) / 1e6, 1) AS shares_m
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime('2020-03-06 00:00:00') AND window_start < toDateTime('2020-03-19 00:00:00')
        GROUP BY et_date
    )
)
WHERE toString(et_date) IN ('2020-03-09', '2020-03-12', '2020-03-16', '2020-03-18')
ORDER BY et_date
自己运行这个查询

3月12日也触发了一级熔断(收于-9.6%);3月16日触发熔断(收于-11.6%,标普指数单日跌幅为1987年以来最大,收于$239.41);3月18日盘中暂停交易(收于-5.2%)。八个交易日内出现四次全市场熔断,而此前已有二十三年未发生过此类情况。需要注意的是,从未触发更高级别的熔断:每次都是一级熔断,即7%这一档。13%和20%两档从未触发。即使在3月16日,熔断后跌势也有所放缓,最终收盘点位仍处于二级熔断线以内。

跌幅最大的股票

指数只显示一个整体数字,掩盖了其下的分化。将同样的日收盘价计算方法应用于几只具有代表性的大盘股,可以看出这场崩跌实际冲击了哪些股票,包括3月9日当天以及2月19日至3月23日整段下跌期间的表现。

查询3月9日及全面暴跌行情:邮轮、航空、能源、银行、科技、必需消费品对比SPY
ticker3月9日涨跌幅崩盘跌幅
CCL-19.9-72.3
UAL-10.4-66.9
XOM-12.2-47.9
JPM-13.7-42.6
SPY-7.7-34.2
AAPL-7.9-31
WMT-0.1-2.9
每个数字背后的完整 SQL
WITH dailies AS (
    SELECT
        ticker,
        toDate(toTimeZone(window_start, 'America/New_York')) AS d,
        argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS c
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('UAL', 'CCL', 'XOM', 'JPM', 'AAPL', 'WMT', 'SPY')
      AND window_start >= toDateTime('2020-02-18 00:00:00') AND window_start < toDateTime('2020-03-25 00:00:00')
    GROUP BY ticker, d
)
SELECT
    ticker,
    round((anyIf(c, d = toDate('2020-03-09')) / anyIf(c, d = toDate('2020-03-06')) - 1) * 100, 1) AS mar9_pct,
    round((anyIf(c, d = toDate('2020-03-23')) / anyIf(c, d = toDate('2020-02-19')) - 1) * 100, 1) AS crash_pct
FROM dailies
GROUP BY ticker
ORDER BY crash_pct ASC
自己运行这个查询

样本中跌幅最大的股票是CCL(邮轮运营商嘉年华),仅3月9日就下跌了-19.9%,从峰值到谷底累计下跌-72.3%。联合航空在这轮崩跌中下跌了-66.9%;埃克森美孚下跌-47.9%;摩根大通下跌-42.6%。相比之下,SPY下跌-34.2%,跌幅显得温和得多;苹果大致跟随市场下跌-31%;沃尔玛销售食品杂货和必需品,在封锁期间仍保持营业,同一时期仅下跌-2.9%。旅行和能源股重新反映了一个停摆世界的估值,而必需消费品股几乎没有变动。

简述油价战

上方的能源行值得用一段话解释,因为“油价战”涵盖了3月9日报道的另一半内容。2020年3月6日(星期五),沙特阿拉伯与俄罗斯之间的 OPEC+ 产量谈判未能达成协议。周末,沙特阿拉伯下调官方销售价格,并宣布计划提高产量。当时,全球出行需求已经开始停滞。这是供给冲击叠加需求冲击。周一股市开盘时,两种冲击同时显现。上方图表记录了结果:ExxonMobil 当天跌幅为 -12.2%,而 SPY 为 -7.7%。

避险潮,以及它逆转的那一周

股市只是其中一半。另一半发生在美国国债市场。经典的避险潮曾达到纪录水平,但随后在非同寻常的一周内逆转。

查询暴跌期间10年期和3个月期美国国债收益率:日收盘价
31 rows (showing 20)
日期10年期涨跌幅3个月涨跌幅
2020-02-181.551.58
2020-02-191.561.58
2020-02-201.521.58
2020-02-211.461.56
2020-02-241.381.53
2020-02-251.331.53
2020-02-261.331.53
2020-02-271.31.45
2020-02-281.131.27
2020-03-021.11.13
2020-03-031.020.95
2020-03-041.020.72
2020-03-050.920.62
2020-03-060.740.45
2020-03-090.540.33
2020-03-100.760.44
2020-03-110.820.42
2020-03-120.880.33
2020-03-130.940.28
2020-03-160.730.24
每个数字背后的完整 SQL
SELECT
    toString(date) AS date,
    round(yield_10_year, 2) AS ten_year_pct,
    round(yield_3_month, 2) AS three_month_pct
FROM global_markets.treasury_yields
WHERE date >= '2020-02-18' AND date <= '2020-03-31'
  AND isNotNull(yield_10_year)
ORDER BY date
自己运行这个查询

2月19日股市见顶时,10年期国债收益率为1.56%。截至3月9日,也就是熔断交易日,收益率收于0.54%,创历史新低。买家接受了连续十年每年仅半个百分点的回报,以换取安全性。随后走势发生逆转:截至3月18日,10年期收益率上升至1.18%,而股市继续下跌。这就是“争相获取现金”的一周。基金、企业和海外持有者纷纷卖出包括美国国债在内的各种高流动性资产,以筹集美元。与此同时,3个月期国库券当日收于0.02%,现金等价物收益率被压至零。当最安全的资产与风险最高的资产同时下跌时,市场买入的其实是流动性本身。收益率曲线将这一幕永久记录在其历史中。

期权交易记录显示了什么

SPY的上市期权是市场主要的对冲场所。其交易记录反映了这场恐慌,而时点尤其值得关注。

查询SPY期权:看跌期权与看涨期权成交量,2020年3月2日至13日(百万张合约)
交易时段看跌期权合约数(百万)看涨期权合约数(百万)看跌/看涨比率
2020-03-023.742.541.47
2020-03-033.142.241.4
2020-03-043.062.271.35
2020-03-053.141.821.73
2020-03-064.642.381.95
2020-03-094.352.381.83
2020-03-103.612.41.5
2020-03-113.752.441.54
2020-03-124.533.431.32
2020-03-134.633.271.41
每个数字背后的完整 SQL
SELECT
    toString(toDate(toTimeZone(sip_timestamp, 'America/New_York'))) AS session,
    round(sumIf(toFloat64(size), substring(ticker, 12, 1) = 'P') / 1e6, 2) AS put_contracts_m,
    round(sumIf(toFloat64(size), substring(ticker, 12, 1) = 'C') / 1e6, 2) AS call_contracts_m,
    round(sumIf(toFloat64(size), substring(ticker, 12, 1) = 'P') / sumIf(toFloat64(size), substring(ticker, 12, 1) = 'C'), 2) AS put_call_ratio
FROM global_markets.options_trades
WHERE ticker >= 'O:SPY2' AND ticker < 'O:SPY3'
  AND sip_timestamp >= toDateTime('2020-03-02 00:00:00') AND sip_timestamp < toDateTime('2020-03-14 00:00:00')
GROUP BY session
ORDER BY session
自己运行这个查询

3月6日星期五,在触发熔断的交易日之前,看跌期权与看涨期权的成交量比率升至 1.95,即每成交一份看涨期权,几乎对应两份看跌期权。3月9日当天,成交量为4.35百万份看跌期权、2.38百万份看涨期权,比例为1.83。到3月12日这一-9.6%交易日,随着看涨期权成交量与看跌期权同步增加,该比率回落至1.32。看跌期权偏斜最严重的阶段出现在这轮下跌初期,而不是底部:市场较早买入保护性期权;随后更大幅度的下跌日中,期权交易的多空方向更为均衡。

市场范围熔断机制究竟如何运作

由于这类机制很少启动,使用间隔一长就容易被遗忘。市场范围熔断以标普500指数较前一交易日收盘点位的跌幅为依据:若在美东时间下午3:25前触及7%(一级)或13%(二级),市场将暂停交易15分钟;触及20%(三级)则直接结束当日交易。暂停期间,所有交易所均停止交易。订单会排队等待重新开盘竞价,将累积的买卖意愿集中到一个价格上,机制与每天早晨的开盘竞价相同。这套设计源于2010年闪崩后的改革。当年的事件表明,旧有阈值过于宽松,即使市场出现真正的连锁暴跌,也可能无法触发熔断。

2020年3月是这套设计首次、迄今唯一一次实盘检验。上方图表已经给出了结果:一级熔断共触发四次,每次之后都实现了有序重开;二级和三级熔断从未触发。在该指数历史上最快速的大幅回撤期间,23个交易日的市场均保持正常运作。此后,相关规则继续有效:以标普500指数为基准的7%/13%/20%阈值至今仍在执行。系统出现弯曲,但市场基础设施经受住了考验。

COVID-19暴跌常见问题

2020年3月9日是什么触发了熔断机制?

开盘几分钟内,标普500指数较前一收盘价下跌7%,达到全市场一级熔断阈值。全市场交易暂停15分钟,随后通过集合竞价恢复。该停牌在本页的分钟级成交记录中显示为从09:35 ET开始连续缺失的14根K线。

COVID-19暴跌期间股市下跌了多少?

按SPY的日收盘价计算,从2020年2月19日的$338.31跌至2020年3月23日的$222.51,跌幅为-34.2%,期间共经历23个交易日。

2020年3月触发了多少次熔断?

共触发四次全市场一级熔断,日期分别为3月9日、12日、16日和18日。这是自1997年10月以来首次触发全市场熔断。

2020年是否触发过二级或三级熔断?

没有。2020年的四次停牌全部属于一级熔断(7%)。在现行机制下,全市场二级熔断(13%)或三级熔断(20%)从未触发过,包括3月16日这次暴跌中跌幅最大的交易日,当日跌幅为-11.6%。

市场是否完全收复了COVID-19暴跌期间的失地?

是。SPY于2020-08-18收盘价超过2020年2月19日的峰值,距离3月23日低点仅103个交易日。这是如此深度的熊市中最快的全面复苏之一。


以上每个面板都是基于历史成交记录生成的、带版本控制的查询。展开SQL即可查看每项测量的具体过程。想亲身感受这一天,而不是只阅读相关内容?您可以在Strasmore Labs交易模拟器中体验这一场景。

#market history#covid crash#circuit breakers#spy