Strasmore Research
Phân tích chuyên sâu Matt ConnorBởi Matt Connor · Cập nhật 2026-07-23

Diễn biến thị trường ngày 9 tháng 3 năm 2009

Khám phá thực tế về ngày đáy của cuộc khủng hoảng tài chính năm 2009. Dữ liệu từ ETF SPY cho thấy sự tĩnh lặng bất ngờ thay vì những biến động mạnh mẽ.

Ngày 9 tháng 3 năm 2009 là một trong những ngày quan trọng nhất trong lịch sử thị trường hiện đại: đó là mức đáy của cuộc khủng hoảng tài chính — -56.5% thấp hơn đỉnh điểm tháng 10 năm 2007 — và là ngày đầu tiên của một thị trường bull kéo dài hơn một thập kỷ. Các sách lịch sử ghi lại chỉ số của ngày thứ Hai đó: S&P 500 đạt 676.53, Dow đạt 6,547. Các dữ liệu dưới đây sử dụng SPY, một ETF mô phỏng S&P 500, mà cơ sở dữ liệu này lưu trữ dữ liệu giao dịch từng phút từ năm 2003. Và đây là sự thật khó chấp nhận mà dữ liệu lưu trữ lại: không có dấu hiệu nào báo trước về phiên giao dịch đó. Không có sự bán tháo ồ ạt, không có sự đảo chiều mạnh mẽ — chỉ là một ngày thứ Hai giảm điểm âm thầm và mệt mỏi, nhưng tình cờ lại là ngày cuối cùng của đà giảm. Mọi con số đều là kết quả từ một truy vấn được lưu trữ; bạn có thể mở rộng bất kỳ bảng nào để xem mã SQL.

Con đường dẫn đến đáy

Cuộc khủng hoảng diễn ra theo từng giai đoạn, và các mốc thời gian dưới đây rất quan trọng để hiểu toàn bộ nội dung. Bear Stearns đã được bán cho JPMorgan vào tháng 3 năm 2008. Lehman Brothers nộp đơn phá sản vào thứ Hai, ngày 15 tháng 9 năm 2008 — xem phiên giao dịch tại đây. Quốc hội đã thông qua TARP, quỹ cứu trợ ngân hàng trị giá 700 tỷ USD, vào ngày 3 tháng 10. Các gói cứu trợ chính phủ cho AIG đã được mở rộng hai lần. Citigroup nhận gói hỗ trợ liên bang lần thứ hai vào tháng 11. Đợt hồi phục vào mùa đông đã suy yếu, và đến cuối tháng 2 năm 2009, các chỉ số trung bình đã phá vỡ mức thấp của tháng 11 và tiếp tục giảm. Một hàng dữ liệu dưới đây tóm tắt giai đoạn kéo dài mười bảy tháng đó:

Truy vấnTừ đỉnh đến đáy và chu kỳ hồi phục — toàn bộ cuộc khủng hoảng trong một hàng
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH daily AS (
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
        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 close_usd
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2007-01-02 00:00:00') AND window_start < toDateTime('2013-07-01 00:00:00')
    GROUP BY et_date
),
(SELECT max(close_usd) FROM daily WHERE et_date < toDate('2008-01-01')) AS peak_close_usd
SELECT
    round(peak_close_usd, 2) AS peak_close,
    toString(argMaxIf(et_date, (close_usd, et_date), et_date < toDate('2008-01-01'))) AS peak_date,
    round(minIf(close_usd, et_date BETWEEN toDate('2008-07-01') AND toDate('2009-06-30')), 2) AS trough_close,
    toString(argMinIf(et_date, (close_usd, et_date), et_date BETWEEN toDate('2008-07-01') AND toDate('2009-06-30'))) AS trough_date,
    round((minIf(close_usd, et_date BETWEEN toDate('2008-07-01') AND toDate('2009-06-30')) / peak_close_usd - 1) * 100, 1) AS decline_pct,
    toString(minIf(et_date, et_date > toDate('2009-03-09') AND close_usd >= peak_close_usd)) AS recovered_date
FROM daily

Từ mức đỉnh chốt phiên là $156.41 vào ngày 2007-10-09, SPY đã giảm xuống $68.07 vào ngày 2009-03-09 — mức giảm -56.5%, mức giảm sâu nhất kể từ những năm 1930. Cũng hàng dữ liệu đó chứa con số mà các nhà đầu tư dài hạn quan tâm tiếp theo: chu kỳ hồi phục hoàn toàn. SPY đã không thể chốt phiên trên mức đỉnh năm 2007 cho đến tận 2013-03-14 — bốn năm sau mức đáy, và năm năm rưỡi sau mức đỉnh. Chi tiết của cả hai giai đoạn này được trình bày dưới đây.

Diễn biến trong ngày

Truy vấnSPY ngày 9/3/2009 — đáy lịch sử đã được xác nhận
Câu lệnh SQL chính xác đằng sau mỗi con số
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('2009-03-06 00:00:00') AND window_start < toDateTime('2009-03-09 04:00:00')
    ) AS prior_rth_close,
    (
        SELECT round(avg(day_shares) / 1e6, 1)
        FROM (
            SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, toFloat64(sum(volume)) AS day_shares
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'SPY'
              AND window_start >= toDateTime('2008-12-01 00:00:00') AND window_start < toDateTime('2009-03-09 04:00:00')
            GROUP BY d
            ORDER BY d DESC
            LIMIT 20
        )
    ) AS avg20_shares,
    (
        SELECT round(avg(day_shares) / 1e6, 1)
        FROM (
            SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, toFloat64(sum(volume)) AS day_shares
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'SPY'
              AND window_start >= toDateTime('2008-12-01 00:00:00') AND window_start < toDateTime('2009-03-09 04:00:00')
            GROUP BY d
            ORDER BY d DESC
            LIMIT 60
        )
    ) AS avg60_shares
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,
    round(maxIf(toFloat64(high), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS rth_high,
    formatDateTime(toTimeZone(argMaxIf(window_start, (toFloat64(high), -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 high_et,
    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,
    avg20_shares AS avg20_shares_m,
    avg60_shares AS avg60_shares_m,
    round((toFloat64(sum(volume)) / 1e6 / avg20_shares - 1) * 100, 0) AS vol_vs_20d_pct,
    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('2009-03-09 04:00:00') AND window_start < toDateTime('2009-03-09 23:59:00')

SPY mở cửa ở mức $67.95 — giảm -1.3% so với mức đóng cửa $68.84 của thứ Sáu — chạm mức $70 vào lúc 10:13 ET, giảm xuống mức thấp nhất là $67.73 vào cuối ngày (15:17 ET), và đóng cửa ở mức $68.07 — tăng -1.1% trong ngày. Biên độ dao động của cả phiên là khoảng hai đô la. Mức giá đóng cửa quan trọng nhất của một thế hệ đã xuất hiện mà không có một phút giây kịch tính nào.

Khối lượng giao dịch giải đáp một câu hỏi mà con số thuần túy không thể trả lời: liệu 357.4 triệu cổ phiếu là mức cao hay thấp? Đối với tháng 3 năm 2009, đó là mức thấp. Trung bình hai mươi phiên gần nhất đạt 406.3 triệu cổ phiếu SPY mỗi ngày — mức thấp nhất đạt được là -12% so với mức trung bình đó — và trung bình sáu mươi phiên là 337.9 triệu. Các lý thuyết về sự bán tháo (capitulation) cho rằng các mức đáy thế hệ thường xuất hiện khi khối lượng giao dịch đạt mức kỷ lục. Tuy nhiên, đáy nổi tiếng nhất của kỷ nguyên hiện đại lại có khối lượng giao dịch ít hơn một ngày bình thường trong cùng tháng đó.

Diễn biến phiên giao dịch

Truy vấnSPY theo nửa giờ — phiên giao dịch ngày 9/3/2009
Câu lệnh SQL chính xác đằng sau mỗi con số
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,
    round(toFloat64(sum(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
  AND window_start >= toDateTime('2009-03-09 04:00:00') AND window_start < toDateTime('2009-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
ORDER BY et_time

Diễn biến trong nửa giờ qua đã làm rõ một chi tiết mà hầu hết các báo cáo thường bỏ qua: ngày 9 tháng 3 không phải là một đà giảm liên tục. Sau khi khoảng trống giảm giá (gap down) xuất hiện, SPY đã hồi phục vào giữa buổi sáng — bucket ET 10:00 đóng cửa ở mức $69.49, ngay dưới mức cao nhất trong ngày là $70 được ghi nhận lúc 10:13 — sau đó mất dần đà tăng vào buổi chiều, trượt xuống mức thấp $67.73 lúc 15:17 và hồi phục nhẹ trước khi đóng cửa. Tăng, giảm, hồi phục nhẹ: một hình thái hoàn toàn bình thường. Không có cú rơi tự do, không có dấu hiệu khối lượng hoảng loạn, không có đáy chữ V. So với sự khẩn cấp khi Lehman Monday đóng cửa ở mức thấp nhất hoặc "túi khí" của cú flash crash, đây là một loại hình hoàn toàn khác: trạng thái cạn kiệt lực bán. Các đợt sụt giảm nhiều phần trăm của mùa đông đó đều đã xảy ra trong những tuần trước đó. Điểm đáy chính là thời điểm phe bán đơn giản là đã cạn kiệt.

Điều gì đã làm thay đổi thị trường

Dữ liệu ngày thứ Hai không giải thích được diễn biến của ngày thứ Ba — sự xoay chuyển đến từ các tin tức, không phải từ dòng lệnh giao dịch. Trước giờ mở cửa ngày thứ Ba, một bản ghi nhớ nội bộ từ Giám đốc điều hành Citigroup Vikram Pandit đã bị rò rỉ cho báo chí: bản ghi nhớ cho biết ngân hàng này đã có lãi trong tháng một và tháng hai năm 2009, đây là giai đoạn hai tháng tốt nhất kể từ năm 2007. Citigroup — tâm điểm của cuộc khủng hoảng, chốt phiên thứ Hai ở mức $1.05 — đã không có tin tức tích cực nào từ các nguồn tin sơ cấp trong nhiều tháng. Dưới đây là những gì dòng lệnh ghi lại trong năm phiên tiếp theo sau mức đáy:

Truy vấnTuần xoay chuyển — SPY, Citigroup và lợi suất 10 năm, ngày 9-13/3
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH daily AS (
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
        argMaxIf(toFloat64(close), window_start, ticker = 'SPY' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS spy_close_raw,
        round(argMaxIf(toFloat64(close), window_start, ticker = 'C' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS citi_close,
        round(toFloat64(sumIf(volume, ticker = 'SPY')) / 1e6, 1) AS spy_shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'C')
      AND window_start >= toDateTime('2009-03-06 04:00:00') AND window_start < toDateTime('2009-03-14 00:00:00')
    GROUP BY et_date
)
SELECT
    toString(d.et_date) AS session,
    round(d.spy_close_raw, 2) AS spy_close,
    round((d.spy_close_raw / d.prev_close - 1) * 100, 1) AS spy_change_pct,
    d.spy_shares_m,
    d.citi_close,
    t.ten_year_pct
FROM (
    SELECT *, lagInFrame(spy_close_raw) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
    FROM daily
) AS d
LEFT JOIN (
    SELECT date, round(toFloat64(yield_10_year), 2) AS ten_year_pct
    FROM global_markets.treasury_yields
    WHERE date BETWEEN '2009-03-09' AND '2009-03-13'
) AS t ON d.et_date = t.date
WHERE d.et_date >= toDate('2009-03-09')
ORDER BY d.et_date

Ngày 10 tháng ba mở cửa ở mức cao hơn và không giảm trở lại: SPY đóng cửa ở mức $72.21, tăng 6.1%, với 401.3 triệu cổ phiếu — khối lượng giao dịch lớn hơn cả ngày chạm đáy. Citigroup đóng cửa ở mức $1.44. Đến thứ Sáu, SPY đứng ở mức $76.09 và Citigroup ở mức $1.78. Lợi suất trái phiếu Kho bạc kỳ hạn 10 năm tăng từ 2.89% lên 2.99% trong cùng ngày thứ Ba đó — dòng tiền rút khỏi tài sản an toàn nhất song song với đà tăng của cổ phiếu, giao dịch flight-to-quality đã đảo ngược.

Một lưu ý khách quan: nhiều đợt tăng trưởng nhiều phần trăm đã xảy ra và thất bại trong mùa đông đó, và không có gì vào ngày 10 tháng ba xác nhận đợt này là khác biệt. Bản ghi nhớ của Pandit là cột mốc mà các nhà sử học dùng để đánh dấu sự xoay chuyển; những gì dòng lệnh có thể cho thấy — và đã thể hiện ở trên — chính là sự trùng hợp về mặt thời gian.

Mức đáy có được giữ vững?

Một đáy chỉ thực sự là đáy nếu thị trường không bao giờ quay trở lại mức đó. Bảng này theo dõi SPY theo từng tuần cho đến cuối tháng 6 năm 2009 — bao gồm mức giá thấp nhất và giá đóng cửa cuối cùng của mỗi tuần, với cột cuối cùng là mức thấp nhất lũy kế:

Truy vấn16 tuần sau đáy — mức thấp nhất tuần, giá đóng cửa và mức giảm tối thiểu
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH daily AS (
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
        minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS day_low,
        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 day_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2009-03-10 04:00:00') AND window_start < toDateTime('2009-06-27 00:00:00')
    GROUP BY et_date
)
SELECT
    week_of,
    week_low,
    week_close,
    round(min(week_low) OVER (), 2) AS lowest_low_after_mar9
FROM (
    SELECT
        toString(toMonday(et_date)) AS week_of,
        round(min(day_low), 2) AS week_low,
        round(argMax(day_close, et_date), 2) AS week_close
    FROM daily
    GROUP BY week_of
)
ORDER BY week_of

Mức giá thấp nhất của SPY trong mười sáu tuần sau ngày 9 tháng 3 là $69.37 — và mức giá này xuất hiện vào tuần đầu tiên sau khi chạm đáy (2009-03-09). SPY không bao giờ giao dịch dưới mức đóng cửa ngày 9 tháng 3 là $68.07 một lần nữa, chưa nói đến mức thấp nhất trong ngày là $67.73. Không có sự kiểm tra lại (retest), không có cơ hội thứ hai, không có đợt giảm giá nào quay lại mức cũ: tính đến tuần 2009-05-04, SPY đóng cửa ở mức $93.04, cao hơn mức đáy một phần ba sau chín tuần. Việc chờ đợi sự xác nhận đã phải trả giá, và bảng dữ liệu đã thể hiện chính xác điều đó.

Những cổ phiếu dẫn dắt sự phục hồi từ đáy

Các ngân hàng vốn là tâm điểm của đợt sụt giảm cũng chính là tâm điểm của đợt phục hồi. Một năm kể từ mức đáy gần ngày 9 tháng 3 năm 2010:

Truy vấnMột năm kể từ đáy — tâm điểm khủng hoảng so với thị trường chung
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT
    ticker,
    round(b_close, 2) AS close_mar9_2009,
    round(y_close, 2) AS close_mar9_2010,
    round((y_close / b_close - 1) * 100, 0) AS pct_1yr,
    fin AS financial
FROM (
    SELECT
        ticker,
        argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2009-03-09') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS b_close,
        argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2010-03-09') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS y_close,
        max(ticker IN ('C', 'BAC', 'WFC', 'JPM', 'GS', 'XLF')) AS fin
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('C', 'BAC', 'WFC', 'JPM', 'GS', 'XLF', 'SPY', 'AAPL', 'XOM')
      AND ((window_start >= toDateTime('2009-03-09 04:00:00') AND window_start < toDateTime('2009-03-10 04:00:00'))
        OR (window_start >= toDateTime('2010-03-09 04:00:00') AND window_start < toDateTime('2010-03-10 04:00:00')))
    GROUP BY ticker
)
ORDER BY pct_1yr DESC

Các cổ phiếu dẫn đầu: BAC tăng 349%, C tăng 265% (từ mức 1.05 một cổ phiếu), WFC tăng 190% — đây là những mã tài chính lớn bị thiệt hại nặng nề nhất, với mức tăng gấp ba và gấp bốn lần từ mức giá từng chạm đáy thấp nhất. Chỉ số không chỉ bao gồm các ngân hàng — AAPL đã tăng 168% trong cùng kỳ — nhưng nhận định chung của nhóm là cổ phiếu tăng trưởng tốt nhất thuộc nhóm tài chính. Trong khi đó, thị trường chung (SPY) tăng 68%, và XOM, cổ phiếu phòng thủ lớn từng giữ giá tốt nhất trong đợt giảm, chỉ tăng 3%. Sự phục hồi này đã đảo ngược gần như hoàn toàn danh sách các cổ phiếu giảm mạnh nhất trước đó.

So sánh với các đáy khác

Dữ liệu theo phút ở đây bắt đầu từ tháng 9 năm 2003, vì vậy mức đáy dot-com vào tháng 10 năm 2002 nằm ngoài phạm vi dữ liệu thu thập được. So với ba mức đáy đóng cửa sâu nhất kể từ đó, tháng 3 năm 2009 có diễn biến như sau:

Truy vấnBốn đáy lớn — lợi nhuận kỳ hạn của SPY tại thời điểm 3 và 12 tháng
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH daily AS (
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
        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 close_usd
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND ((window_start >= toDateTime('2009-03-09 04:00:00') AND window_start < toDateTime('2010-03-17 00:00:00'))
        OR (window_start >= toDateTime('2011-10-03 04:00:00') AND window_start < toDateTime('2012-10-10 00:00:00'))
        OR (window_start >= toDateTime('2018-12-24 04:00:00') AND window_start < toDateTime('2019-12-31 00:00:00'))
        OR (window_start >= toDateTime('2020-03-23 04:00:00') AND window_start < toDateTime('2021-03-30 00:00:00')))
    GROUP BY et_date
)
SELECT
    bottom_session,
    round(argMin(close_usd, et_date), 2) AS bottom_close,
    round((argMinIf(close_usd, et_date, et_date >= toDate(bottom_session) + 91) / argMin(close_usd, et_date) - 1) * 100, 1) AS plus_3mo_pct,
    round((argMinIf(close_usd, et_date, et_date >= toDate(bottom_session) + 365) / argMin(close_usd, et_date) - 1) * 100, 1) AS plus_1yr_pct
FROM (
    SELECT
        multiIf(et_date >= toDate('2020-03-23'), '2020-03-23',
                et_date >= toDate('2018-12-24'), '2018-12-24',
                et_date >= toDate('2011-10-03'), '2011-10-03',
                '2009-03-09') AS bottom_session,
        et_date,
        close_usd
    FROM daily
)
GROUP BY bottom_session
ORDER BY bottom_session

Từ đáy năm 2009, SPY đã tăng 38.5% trong ba tháng và 68.1% trong một năm — đây là mười hai tháng tăng trưởng mạnh nhất mà hầu hết các nhà đầu tư còn sống từng chứng kiến, bắt đầu vào một ngày trông có vẻ bình thường nhất trong cuộc khủng hoảng. Chỉ có mức đáy COVID tháng 3 năm 2020 là cùng phân khúc, với mức tăng +75.1% trong năm đầu tiên — một đợt phục hồi mà cấu trúc của đợt tăng trưởng nhờ kích thích năm 2020 có một trang riêng. Các mức đáy điều chỉnh năm 2011 và 2018 — vốn là những đợt hoảng loạn thực sự tại thời điểm đó — đã tăng trưởng 31.4% và 37.1% trong năm đầu tiên. Quy luật chung của cả bốn trường hợp là: hố càng sâu thì đợt phục hồi đầu tiên càng dốc, và đợt phục hồi đầu tiên luôn là đợt tăng mạnh nhất.

Tại sao các đáy chỉ có thể được nhìn thấy khi nhìn lại quá khứ

Bản chất thực sự là: một đáy được xác định bởi những gì không xảy ra sau đó — không có mức thấp hơn mức thấp trước đó — điều mà về mặt bản chất là không thể biết trước trong thời gian thực. Mọi "tín hiệu đáy" định lượng từng được đề xuất đều đã xuất hiện liên tục trong đợt giảm điểm kéo dài đến cuối năm 2008; bản thân phiên giao dịch ngày 9 tháng 3 cũng không đạt được kết quả gì nổi bật trên tất cả các chỉ báo đó — hình thái bình thường, khối lượng thấp hơn mức trung bình, và một tin tức thúc đẩy chỉ xuất hiện vào sáng hôm sau. Bất kỳ ai tuyên bố chỉ báo của họ đã dự báo được ngày này thực chất đang mô tả sự sống sót, và nhiều "đáy" trước đó mà nó cũng dự báo chính là minh chứng cho điều đó.

Bài học rút ra từ ngày hôm đó: hãy chuẩn bị cho các phạm vi kết quả thay vì các điểm cụ thể. Những nhà đầu tư thành công từ tháng 3 năm 2009, phần lớn, là những người đã mua theo đúng kế hoạch xuyên suốt cả mùa đông tồi tệ — cách tiếp cận mà các quy ước đo lường lợi nhuận ngầm định — chứ không phải những người tìm được mức thấp chính xác đến từng pixel. Vai trò của bảng điện trong kỷ luật đó là để hiệu chỉnh, không phải để tiên tri: hiểu được thế nào là một diễn biến bình thường sẽ giúp tránh nhầm lẫn một ngày thứ Hai bình lặng với một ngày tiếp theo của đợt giảm giá vốn dĩ thực tế đã kết thúc.

Câu hỏi thường gặp về đáy tháng 3 năm 2009

Đáy chính xác của cuộc khủng hoảng 2008-2009 là khi nào?

Mức thấp nhất khi đóng cửa được ghi nhận vào thứ Hai, ngày 9 tháng 3 năm 2009: SPY ở mức $68.07, và chỉ số S&P 500 ở mức 676.53 như các nguồn tin phổ biến thường trích dẫn. Con số "666" nổi tiếng trong phiên giao dịch của chỉ số đã xuất hiện một phiên trước đó, vào thứ Sáu trước đó, ngày 6 tháng 3.

Thị trường chứng khoán đã giảm bao nhiêu từ năm 2007 đến 2009?

SPY đã giảm -56.5% dựa trên giá đóng cửa — từ $156.41 vào 2007-10-09 xuống $68.07 vào 2009-03-09 — đây là mức sụt giảm (drawdown) sâu nhất của cổ phiếu Mỹ kể từ những năm 1930.

Chuyện gì đã xảy ra vào ngày 10 tháng 3 năm 2009?

Phiên giao dịch đầu tiên sau khi chạm đáy: SPY tăng 6.1% sau khi một bản ghi nhớ nội bộ của Citigroup bị rò rỉ qua đêm, cho biết ngân hàng này đã có lãi trong tháng một và tháng hai. Bản thân Citigroup đóng cửa ở mức $1.44, tăng từ mức $1.05 tại điểm thấp nhất.

Thị trường phục hồi nhanh như thế nào từ đáy năm 2009?

Năm đầu tiên mang tính lịch sử: SPY đã tăng 68.1% từ mức đóng cửa tại đáy. Việc phục hồi toàn bộ mức sụt giảm trong cuộc khủng hoảng mất nhiều thời gian hơn — mức đóng cửa đầu tiên quay trở lại trên đỉnh tháng 10 năm 2007 là vào ngày 2013-03-14.

Có tín hiệu nào báo trước về điểm đáy không?

Không có dữ liệu giao dịch nào cho thấy sự khác biệt giữa ngày 9 tháng 3 so với các tuần xung quanh — phiên giao dịch diễn ra lặng lẽ và khối lượng giao dịch thấp hơn mức trung bình 20 ngày của chính nó. Điểm đáy chỉ được xác định sau khi sự việc đã rồi, vì giá không bao giờ bị phá vỡ thêm: mức giao dịch thấp nhất trong mười sáu tuần tiếp theo đều nằm trên mức đóng cửa ngày 9 tháng 3.


Mỗi bảng trên là một truy vấn đã được lưu trữ và phân phiên dựa trên dữ liệu lịch sử — hãy mở rộng SQL để xem từng phép đo. Bạn muốn trải nghiệm ngày này thay vì chỉ đọc về nó? Đây là một trong các kịch bản có thể thực hiện trong trình mô phỏng giao dịch Strasmore Labs.

#market history#2009 bottom#financial crisis#bull markets#spy