Strasmore Research
חקירות Matt Connorמאת Matt Connor · עודכן 2026-07-25

24 במרץ 2020: היום שבו השוק התהפך

שידור חוזר של 24 במרץ 2020, דקה אחר דקה: ההתרסקות והמרוץ למזומן, חבילת הפד שעשתה את ההבדל, רוחב סקטוריאלי, והמבחן החוזר שמעולם לא הגיע.

ב-23 במרץ 2020, הפדרל ריזרב הכריז על רכישות נכסים בהיקף פתוח — הרחבה כמותית ללא תקרה מוצהרת — ועל דבר שמעולם לא עשה קודם: מסגרות לרכישת אג"ח קונצרניות. 24 במרץ 2020 היה תשובת השוק: ראלי התמריצים של הקורונה, אחד הזינוקים היומיים הגדולים ביותר במניות בארה"ב אי פעם, ו — גלוי רק בדיעבד — יומו השני של שוק שורי חדש. השפל עצמו ננעל בשעות הצהריים לפני שההכרזה נחתה.

ההתרסקות שלפני המפנה

להתרסקות עצמה יש עמוד משלה; הנה התשתית שעליה היא נשענת — כל יום מסחר מהשיא של כל הזמנים ועד לתחתית, לצד תשואת אג"ח ארה"ב ל-10 שנים בנקודות בסיס:

שאילתהסגירה יומית של SPY, משיכה ותשואת אג'ח ל-10 שנים — 19 בפברואר עד 23 במרץ 2020
ה-SQL המדויק מאחורי כל מספר
WITH daily AS (
    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
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2020-02-19 00:00:00') AND window_start < toDateTime('2020-03-24 04:00:00')
    GROUP BY et_date
    HAVING et_date >= toDate('2020-02-19') AND et_date <= toDate('2020-03-23') AND close_usd > 0
)
SELECT
    toString(d.et_date) AS session,
    d.close_usd,
    round((d.close_usd / (SELECT max(close_usd) FROM daily) - 1) * 100, 1) AS drawdown_pct,
    round(t.yield_10_year * 100) AS y10_bps
FROM daily AS d
LEFT JOIN global_markets.treasury_yields AS t ON t.date = d.et_date
ORDER BY d.et_date

מסגירת השיא של כל הזמנים ב-$338.31 ב-2020-02-19, SPY נפל ל-$222.51 עד 2020-03-23 — נסיגה של -34.2%, כאשר כל יום מסחר במהלך הצניחה נמצא בתוך 24 השורות של הפאנל.

עמודת התשואה היא הרמז. במהלך 2020-03-09 תשואת ה-10 שנים קרסה מ-156 נקודות בסיס לשפל שיא דאז של 54 — הבריחה הקלאסית לביטחון, כסף עוזב מניות ועובר לאג"ח. ואז התבנית נשברה: עד 2020-03-18 התשואה יותר מהכפילה את עצמה ל-118 נקודות בסיס בעוד הנסיגה של SPY העמיקה מ--18.9% ל--28.8%. מניות ואג"ח ממשלתיות נופלות יחד הוא סימן ההיכר של מכירה כפויה — מחזיקים מגייסים מזומן על ידי מכירת כל מה שעדיין לו קונה. עד אמצע מרץ המשבר נגע לצנרת האשראי עצמה, לא למחיר המניות.

מה הפד הכריז בפועל – ומה לא עבד

הורדות ריבית כבר נוסו. הרצף המתוארך, כל פריט קריא בחלונית למעלה:

  • 2020-03-03 — הורדת ריבית חירום של חצי אחוז, ההורדה הראשונה בין ישיבות מאז 2008. SPY נסגר ב-$300.34, -11.2% מתחת לשיא, והגלישה נמשכה.
  • 15 במרץ, יום ראשון — ריבית ירדה לאפס בתוספת תוכנית רכישת נכסים בהיקף 700 מיליארד דולר. במושב הבא, 2020-03-16, נסגר -29.2% מתחת לשיא פברואר – בין המושבים הגרועים של ההתרסקות כולה.
  • 23 במרץ, 8:00 בבוקר שעון החוף המזרחי — הפד הסיר את התקרה: רכישות אג"ח ממשלתיות וניירות ערך מגובי משכנתאות יימשכו "בסכומים הנדרשים", ללא הגבלה. צורפו להן PMCCF ו-SMCCF – מסגרות רכישת אג"ח קונצרניות ראשונות אי-פעם של הפד – ו-TALF מחודשת המגבה אשראי צרכני. SPY עדיין נסגר בשפל של שוק הדובי באותו אחר הצהריים.
  • 24 במרץ — המושב שלמטה. בן-לילה, הקונגרס התכנס סביב CARES Act בהיקף של כשני טריליון דולר; החוק נחתם ב-27 במרץ, בתוך פרץ שלושת הימים המתועד בהמשך.

שני הבדלי תכנון הפרידו בין חבילת 23 במרץ לניסיונות שלפניה. לתוכנית בגודל קבוע יש תאריך סיום ששוק לחוץ יכול לראות מעבר לו; "בסכומים הנדרשים" – לא. והמסגרות הקונצרניות הציבו קונה ציבורי ישירות בתוך שוקי האשראי היכן שהצנרת נתקעה. האם ההבדלים האלה הם מה ששינה – זו שאלה של שיפוט; הטייפ מתעד את הרצף – שתי הסלמות, ירידה מתמשכת, תכנון שלישי, ואז המפנה.

היום, בשורה אחת

שאילתהSPY ב-24 במרץ 2020 — המפנה, מתועד
ה-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-23 00:00:00') AND window_start < toDateTime('2020-03-24 04:00:00')
    ) AS prior_rth_close
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(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(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,
    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((minIf(toFloat64(low), (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 low_vs_prior_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-24 04:00:00') AND window_start < toDateTime('2020-03-24 23:59:00')

מהסגירה ב-23 במרץ על $222.51 — הסגירה האחרונה של שוק הדובי — SPY קפץ בפער של +5.4% ונפתח ב-$234.42, רשם את השפל התוך-יומי שלו ב-$233.8 בדקות הפתיחה (09:31 שעון החוף המזרחי), ומעולם לא חזר לשם: הסגירה ב-$243.59 הייתה +9.5% ביום. ראלי שהשפל שלו נרשם בדקה הראשונה הוא תמונת ראי של התרסקות שנסגרת בשפל שלה. שורה אחת, עם זאת, משטחת את המסלול — הטייפ של חצי השעה למטה מראה את הדעיכה שהמסע נאלץ לספוג.

צורת המסחר

שאילתהSPY בחצאי שעה — מושב רגיל, 24 במרץ 2020
ה-SQL המדויק מאחורי כל מספר
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('2020-03-24 04:00:00') AND window_start < toDateTime('2020-03-24 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

הפאנל כן: המסלול התעקם. השפל של $233.8 נרשם בדקה הראשונה ולא נבחן שוב — עד כאן הסיפור החד-כיווני אמיתי. אבל אחרי שהגיע ל-$242.24 לקראת דלי הצהריים, ויתר הרציף על שטח במשך שעתיים — דלי 13:30 נסגר ב-$237.25, דלי 14:00 רשם את השפל העמוק של אחר הצהריים, $235.05 — הקטע שבו היום היה יכול להפשות לעוד ניסיון התאוששות כושל. במקום זאת, הוויתור נשאר הרבה מעל שפל הפתיחה, וחצי השעה האחרונה סיפקה את סגירת הדלי הגבוהה של המסחר, $243.59, על 34.7 מיליון מניות — הדלי הכבד ביותר ביום של 232.4 מיליון מניות, מעל אפילו 27.3 המיליון של הפתיחה. נסיגה של אמצע היום שמוצאת קונים, ואז סגירה בשיאים בנפח שיא.

עלייה רחבה, או צרה?

קומץ מניות ענק יכול למשוך מדד כלפי מעלה. זה לא מה שקרה כאן. שתים-עשרה קרנות — שלוש עוקבות המדדים המרכזיים ועוד תשע קרנות סקטוריאליות של S&P — בשתי הסגירות האלה:

שאילתה24 במרץ 2020 במדדים ותעודות סל סקטוריאליות — הכל עולה, מחזוריים ראשונים
ה-SQL המדויק מאחורי כל מספר
SELECT
    ticker,
    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 AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2020-03-23')), 2) AS mar23_close,
    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 AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2020-03-24')), 2) AS mar24_close,
    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 AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2020-03-24')) / argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959 AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2020-03-23')) - 1) * 100, 1) AS change_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'DIA', 'QQQ', 'IWM', 'XLE', 'XLI', 'XLF', 'XLK', 'XLY', 'XLV', 'XLU', 'XLP')
  AND window_start >= toDateTime('2020-03-23 00:00:00') AND window_start < toDateTime('2020-03-25 00:00:00')
GROUP BY ticker
ORDER BY change_pct DESC

כל 12 נסגרו בעלייה. האנרגיה (XLE) הובילה בעלייה של +16.4%, כשהיצרניות (XLI, +12.8%) והפיננסים (XLF, +12.7%) צמודים מאחור — פינות השוק הרגישות ביותר לכלכלה, אלו שהשבתה מאיימת עליהן ראשונות. עוקבת הדאו DIA עלתה 11.3% — המהלך שמאחורי הכותרות של אותו שבוע על "היום הטוב ביותר מאז 1933", תואר השייך להיסטוריית המחירים הארוכה יותר של הדאו. העליות הקטנות ביותר נרשמו במגננות הקלאסיות, מוצרי צריכה בסיסיים (XLP, +5.1%) ובריאות (XLV, +7.4%), ו-QQQ של נאסד"ק-100 (+7.7%) פיגר אחרי +9.5% של SPY. רצועת עליות ירוקה בכל הסקטורים בהובלה מחזורית היא הצורה ההפוכה מסחיטה צרה של מניות ענק — הרוחב היה החותם של היום.

עד כמה היסטורי היה המהלך, באמת?

"היום הגדול ביותר מאז 1933" הוא נתון של מדד הדאו ג'ונס מהעיתונים של אותו שבוע. הנה מה שהנתונים שלנו יכולים לאמת, בהיקף שהם מכסים בפועל:

שאילתה24 במרץ 2020 מדורג מול כל מושב SPY בקלטת הדקות
ה-SQL המדויק מאחורי כל מספר
SELECT
    countIf(isFinite(day_pct)) AS sessions_measured,
    toString(min(et_date)) AS first_session,
    round(mar24_d, 1) AS mar24_gain_pct,
    countIf(isFinite(day_pct) AND day_pct > mar24_d) AS bigger_days,
    countIf(isFinite(day_pct) AND day_pct > mar24_d) + 1 AS mar24_rank,
    arrayStringConcat(arraySort(groupArrayIf(toString(et_date), isFinite(day_pct) AND day_pct > mar24_d)), ', ') AS bigger_day_dates,
    round(mar26_b, 1) AS burst3_gain_pct,
    countIf(isFinite(burst3_pct) AND burst3_pct > mar26_b) AS bigger_bursts,
    round(mar24_r30, 2) AS vol_vs_30d,
    round(mar24_r250, 2) AS vol_vs_250d,
    round(mar24_shares / 1e6, 0) AS mar24_shares_m
FROM (
    SELECT
        et_date, day_pct, burst3_pct,
        max(if(et_date = toDate('2020-03-24'), day_pct, -999)) OVER () AS mar24_d,
        max(if(et_date = toDate('2020-03-26'), burst3_pct, -999)) OVER () AS mar26_b,
        max(if(et_date = toDate('2020-03-24'), shares / vol_avg_30, -999)) OVER () AS mar24_r30,
        max(if(et_date = toDate('2020-03-24'), shares / vol_avg_250, -999)) OVER () AS mar24_r250,
        max(if(et_date = toDate('2020-03-24'), shares, -999)) OVER () AS mar24_shares
    FROM (
        SELECT
            et_date,
            (close_usd / lagInFrame(close_usd, 1) OVER (ORDER BY et_date ASC ROWS BETWEEN 3 PRECEDING AND CURRENT ROW) - 1) * 100 AS day_pct,
            (close_usd / lagInFrame(close_usd, 3) OVER (ORDER BY et_date ASC ROWS BETWEEN 3 PRECEDING AND CURRENT ROW) - 1) * 100 AS burst3_pct,
            shares,
            avg(shares) OVER (ORDER BY et_date ASC ROWS BETWEEN 30 PRECEDING AND 1 PRECEDING) AS vol_avg_30,
            avg(shares) OVER (ORDER BY et_date ASC ROWS BETWEEN 250 PRECEDING AND 1 PRECEDING) AS vol_avg_250
        FROM (
            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,
                toFloat64(sum(volume)) AS shares
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'SPY' AND window_start < toDateTime('2026-01-01 00:00:00')
            GROUP BY et_date
            HAVING close_usd > 0
        )
    )
)
GROUP BY mar24_d, mar26_b, mar24_r30, mar24_r250, mar24_shares

מאז 2003-09-10 — המושב הראשון של נתוני הדקה שלנו — SPY רשם 5613 תשואות יומיות מסגירה לסגירה. התשואה של ה-24 במרץ 2020, +9.5% , מדורגת במקום #3 : בדיוק 2 מושבים עקפו אותה (2008-10-13, 2008-10-28), כולם בתוך הפאניקה של אוקטובר 2008. הרצף התלת-יומי נדיר אף יותר: לריצה של +17.5% מהסגירה ב-23 במרץ לסגירה ב-26 במרץ יש 0 עליות תלת-מושביות גדולות יותר בכל המדגם. בתוך כל מה שהמחסן הזה יכול לבדוק, שום דבר לא משתווה לפרץ.

המחזור מספר סיפור שקט יותר: 232 מיליון מניות SPY היו פי 2.86 מהממוצע השנתי הנגרר — ופי 1.12 בלבד מהממוצע של 30 המושבים הקודמים. מול כל רצועת זמן נורמלית בהיסטוריה, הפעילות הייתה יוצאת דופן; מול שבועות הקריסה שקדמו לה, זה היה סתם עוד יום בתוך הסערה. תפניות היסטוריות אינן מכריזות על עצמן במחזור היסטורי.

פרץ שלושת הימים

שאילתהסגירות SPY, 23–26 במרץ 2020 — ההתפרצות בת שלושת הימים
ה-SQL המדויק מאחורי כל מספר
SELECT
    toString(et_date) AS session,
    close_usd,
    round(if(prev_close = 0, NULL, (close_usd / prev_close - 1) * 100), 1) AS change_pct,
    shares_m
FROM (
    SELECT et_date, close_usd, shares_m,
           lagInFrame(close_usd) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
    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-20 00:00:00') AND window_start < toDateTime('2020-03-26 23:59:00')
        GROUP BY et_date
    )
)
WHERE et_date >= toDate('2020-03-23') AND et_date <= toDate('2020-03-26')
ORDER BY et_date

המפנה התעצם מיד: +9.5% ב-24, +1.3% ב-25, +5.9% ב-26 — רצף של שלושה ימי מסחר שמחק שבועות של קריסה, ללא רצף גדול יותר בשום מקום במדגם שלעיל. דפוס מרץ 2020 מתחרז במכוון עם מרץ 2009: בשניהם, תגובת המדיניות המכרעת הגיעה סמוך לשפל, הרגל הראשונה של העלייה הייתה אלימה, ויום ההזדמנות המרבית נראה — באותו בוקר — בלתי ניתן להבחנה מקפיצה נוספת של שוק דובי.

האם הראלי החזיק מעמד?

בזמן אמת, "קפיצת ראש מת של שוק דובי" הייתה הקונצנזוס, ולספקנים היו קבלות משלהם: אחד-עשר ימים קודם לכן הטייפ כבר ייצר ראלי כמעט בגודל הזה — מ-$248.1 ב-2020-03-12 ל-$270.93 ב-2020-03-13 — והיום שלאחר מכן נסגר ב-$239.41, היום הגרוע ביותר של כל ההתרסקות. יום ירוק אחד לא הוכיח דבר. מה שמבדיל את ה-24 במרץ הוא מה שבא אחריו:

שאילתההאם זה החזיק? המבחן החוזר שמעולם לא הגיע, ושני שעוני התאוששות
ה-SQL המדויק מאחורי כל מספר
SELECT
    round(ath_close, 2) AS feb19_ath_close,
    round(bottom_close, 2) AS mar23_bottom_close,
    toString(rec_date) AS recovery_date,
    countIf(et_date > toDate('2020-03-23') AND et_date <= rec_date) AS sessions_to_new_high,
    dateDiff('day', toDate('2020-03-23'), rec_date) AS days_low_to_new_high,
    dateDiff('day', toDate('2020-02-19'), rec_date) AS round_trip_days,
    round(minIf(close_usd, et_date > toDate('2020-03-23') AND et_date <= rec_date), 2) AS lowest_close_after,
    toString(argMinIf(et_date, (close_usd, et_date), et_date > toDate('2020-03-23') AND et_date <= rec_date)) AS lowest_close_date,
    round((minIf(close_usd, et_date > toDate('2020-03-23') AND et_date <= rec_date) / bottom_close - 1) * 100, 1) AS closest_retest_pct,
    toString(peak07_date) AS peak_2007_date,
    toString(rec07_date) AS recovery_2013_date,
    dateDiff('day', peak07_date, rec07_date) AS round_trip_2008_days
FROM (
    SELECT
        et_date, close_usd, ath_close, bottom_close, peak07_date,
        min(if(et_date > toDate('2020-03-23') AND close_usd >= ath_close, et_date, toDate('2099-01-01'))) OVER () AS rec_date,
        min(if(et_date >= toDate('2008-01-01') AND close_usd >= peak07_close, et_date, toDate('2099-01-01'))) OVER () AS rec07_date
    FROM (
        SELECT
            et_date, close_usd,
            max(if(et_date = toDate('2020-02-19'), close_usd, -999)) OVER () AS ath_close,
            max(if(et_date = toDate('2020-03-23'), close_usd, -999)) OVER () AS bottom_close,
            max(if(et_date >= toDate('2007-01-01') AND et_date < toDate('2008-01-01'), (close_usd, et_date), (-999., toDate('1970-01-01')))) OVER () .1 AS peak07_close,
            max(if(et_date >= toDate('2007-01-01') AND et_date < toDate('2008-01-01'), (close_usd, et_date), (-999., toDate('1970-01-01')))) OVER () .2 AS peak07_date
        FROM (
            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('2021-01-01 00:00:00')
            GROUP BY et_date
            HAVING close_usd > 0
        )
    )
)
GROUP BY ath_close, bottom_close, rec_date, peak07_date, rec07_date

המבחן החוזר מעולם לא הגיע. אחרי ה-23 במרץ, שער הסגירה הנמוך ביותר ש-SPY הדפיס אי-פעם היה $243.59 — ב-2020-03-24, יום ראלי התמריצים עצמו. השוק מעולם לא נסגר שוב בטווח של 9.5% מהתחתית. שיא טרום-הקורונה של $338.31 נכבש מחדש ב-2020-08-18103 ימי מסחר אחרי השפל, מסע הלוך-ושוב בן 181 ימים משיא כל הזמנים חזרה לשיא כל הזמנים. ההשוואה ל-2008, מחושבת באותה צורה: שיא 2007-10-09 של SPY לא ראה שער סגירה שיא חדש עד 2013-03-14, 1983 ימים מאוחר יותר. שני משברים, שתי מהירויות, שוק אחד ששינה את חילוף החומרים שלו ביניהם.

מה מלמד היום הזה

שלוש תובנות שכדאי להפנים. ראשית, הפער עשה את העבודה: רוב העלייה של היום התקיימה עוד לפני הפתיחה — מי שחיכה לכניסה בשעות המסחר הרגילות שילם ביוקר כל היום — מכניקת הפער הלילי בעוצמה מלאה. שנית, התחתית הקדימה את האישור: הסגירה של 23 במרץ הייתה השפל, שנראה ככזה רק אחרי שימים כמו זה סירבו לבחון אותו מחדש. שלישית, המהירות פועלת לשני הכיוונים: אותו מבנה שוק שדחס -34.2% נפילה לתוך 24 השורות שלמעלה, דחס את ההתאוששות הראשונית לשלושה ימי מסחר. המהירות היא תכונה של תשתית השוק בעידן הזה, לא של חדשות טובות או רעות.

הספקנים של אותו שבוע לא היו טיפשים: הרוחב, ההתפרצות, המבחן החוזר שמעולם לא הגיע — כל תובנה שמפרידה בין 24 במרץ לבין העליות שנכשלו ניתנת למדידה רק בדיעבד. ההבדל בין עלייה בשוק דובי לבין שוק שורי חדש הוא בלתי נראה ביום הראשון, וחד-משמעי בתוך חודשים.

שאלות נפוצות על הראלי של הקורונה

מה קרה ב-24 במרץ 2020?

זה היה יום המסחר המלא הראשון אחרי הודעת הפד על הרחבה כמותית ללא הגבלה: SPY פתח בפער חיובי של +5.4% ונסגר בעלייה של +9.5% — העלייה היומית ה-#3 בגודלה ב-5613 ימי המסחר שקלטת הדקות שלנו מכסה, אחרי יומיים בלבד באוקטובר 2008.

מה הפד הודיע ב-23 במרץ 2020?

רכישות פתוחות של אג"ח ממשלתיות וניירות ערך מגובי משכנתאות — "בסכומים הנדרשים" — בתוספת ה-PMCCF וה-SMCCF, המתקנים הראשונים אי פעם לרכישת אג"ח קונצרניות, והחייאה של תוכנית ה-TALF לאשראי צרכני. ההודעה פורסמה בשעה 8:00 בבוקר שעון החוף המזרחי, לפני הפתיחה; SPY עדיין סגר באותו יום בשפל של שוק הדובי.

האם 23 במרץ 2020 היה התחתית של התרסקות הקורונה?

כן, לפי שער הסגירה: שער הסגירה הנמוך של SPY, $222.51, נרשם ב-23 במרץ, שעות אחרי הודעת הפד. השער הזה לא נראה שוב לעולם — שער הסגירה הנמוך ביותר אחריו היה ב-2020-03-24, 9.5% מעל התחתית.

מתי שוק המניות התאושש לשיא שלפני הקורונה?

SPY סגר לראשונה מעל שער הסגירה של השיא ההיסטורי מה-19 בפברואר 2020 ב-2020-08-18, 103 ימי מסחר אחרי התחתית — מסע הלוך-ושוב של 181 ימים, לעומת 1983 ימים למסע המקביל בהתרסקות 2008.

האם יכולת לקנות אחרי החדשות ועדיין להצליח?

הפתיחה זינקה בפער של +5.4% לפני תחילת המסחר הרגיל, והיום המשיך לטפס — כל כניסה מאוחרת יותר עלתה יותר משער הסגירה הקודם, ועדיין הייתה הרחק מתחת למקום שבו עמד השוק בהתאוששות של אוגוסט 2020.

הערות על הנתונים
  • שערי סגירה הם ההדפסות האחרונות מקלטת הדקות של מושב המסחר הרגיל (9:30–16:00 שעון החוף המזרחי); הם יכולים להיות שונים בכמה סנטים משערי הסגירה הרשמיים של המכרז.
  • תאריכי התאוששות הם על בסיס מחיר בלבד; מדד תשואה כוללת (דיבידנדים מושקעים מחדש) מתאושש מוקדם יותר מעצם הגדרתו.
  • תשואת האג"ח ל-10 שנים מצטרפת לסדרה היומית של משרד האוצר בימי מסחר; נקודות בסיס הן מאיות של נקודת אחוז.
  • המדגם של לוח הדירוג מתחיל ב-2003-09-10 — "מאז 2003" בעמוד זה פירושו חלון זמן זה, לא כל ההיסטוריה המתועדת של השוק.

כל פאנל למעלה הוא שאילתה שמורה ומתועדת בגרסאות על קלטת המסחר ההיסטורית — הרחב את ה-SQL כדי לראות כל מדידה. רוצה להרגיש את היום הזה במקום לקרוא עליו? זהו אחד התרחישים הניתנים להפעלה ב-סימולטור המסחר של Strasmore Labs.

#market history#covid rally#bull markets#federal reserve#spy