Strasmore Research
تحليلات معمّقة Matt Connorبقلم Matt Connor · آخر تحديث في 2026-07-23

أحداث 24 مارس 2020 وتحول السوق

استرجع تفاصيل يوم 24 مارس 2020 وما شهده من انهيار والهروب نحو السيولة، مع تحليل حزم الفيدرالي وتأثيرها على القطاعات لتفهم كيف بدأ السوق الصاعد الجديد.

في 23 مارس 2020، أعلن الاحتياطي الفيدرالي عن عمليات شراء أصول غير محددة المدة — أي تيسير كمي بدون سقف محدد — بالإضافة إلى إجراء لم يسبق له القيام به، وهو توفير تسهيلات لشراء سندات الشركات. وجاء رد السوق في 24 مارس 2020 متمثلاً في طفرة صعودية مدفوعة بحزم تحفيز كوفيد، وكانت واحدة من أكبر مكاسب الأسهم الأمريكية في يوم واحد على الإطلاق، كما مثلت — كما يتضح لاحقاً — اليوم الثاني في سوق صاعدة جديدة. وقد سجلت نقطة القاع إغلاقها في فترة ما بعد الظهر قبل صدور الإعلان.

الانهيار الذي سبق التحول

توجد صفحة مستقلة تشرح الانهيار نفسه؛ أما هنا فنعرض البيانات التي استند إليها هذا الانهيار — حيث تظهر كل جلسة من أعلى مستوى تاريخي إلى القاع، مع توضيح عائد سندات الخزانة لأجل 10 سنوات بنقاط الأساس:

الاستعلامإغلاق SPY اليومي، والتراجع، وعائد الـ 10-year — من 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

انخفض مؤشر SPY من إغلاق تاريخي عند $338.31 في تاريخ 2020-02-19 إلى $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 الذي تبلغ قيمته حوالي 2 تريليون دولار؛ وتم توقيعه في 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')

بعد إغلاق $222.51 في 23 مارس — وهو الإغلاق الأخير للسوق الهابطة — حقق مؤشر SPY فجوة سعرية صاعدة بنسبة +5.4% ليفتتح عند $234.42. سجل المؤشر أدنى مستوى له خلال الجلسة عند $233.8 في الدقائق الأولى من الافتتاح (09:31 ET)، ثم لم يتراجع لهذا المستوى مجدداً؛ حيث انتهت الجلسة عند $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 مليون سهم. بدأت الجلسة بانخفاض عند منتصف النهار وجد مشترين، ثم انتهت عند أعلى المستويات مع ذروة حجم التداول.

Broad rally, or narrow?

An index can be dragged higher by a handful of mega-caps. That is not what this was. Twelve funds — the three major index trackers plus nine S&P sector funds — on the same two closes:

الاستعلام24 مارس 2020 عبر صناديق index و sector ETFs — كل شيء يرتفع، والأسهم الدورية أولاً
استعلام 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

All 12 closed higher. Energy (XLE) led at +16.4%, with industrials (XLI, +12.8%) and financials (XLF, +12.7%) right behind — the most economically-sensitive corners of the market, the ones a shutdown threatens first. The Dow tracker DIA gained 11.3% — the move behind that week's "best day since 1933" headlines, a superlative that belongs to the Dow's longer price history. The smallest gains sat in the classic defensives, consumer staples (XLP, +5.1%) and healthcare (XLV, +7.4%), and the Nasdaq-100's QQQ (+7.7%) trailed SPY's +9.5%. A cyclicals-led, everything-green tape is the opposite shape of a narrow mega-cap squeeze — breadth was the day's signature.

ما مدى أهمية هذا الحدث تاريخياً؟

تصف صحف ذلك الأسبوع اليوم بأنه "أكبر يوم منذ عام 1933" وفقاً لإحصائيات مؤشر Dow. إليك ما يمكن لبياناتنا التحقق منه، ضمن النطاق الذي تغطيه فعلياً:

الاستعلام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 من مكاسب الجلسات الثلاث في العينة بأكملها. وضمن كل ما يمكن لمستودع بياناتنا فحصه، لا يوجد ما يضاهي هذا الارتفاع المفاجئ.

أما حجم التداول فيكشف عن صورة أقل صخباً: فقد بلغ حجم تداول SPY نحو 232 مليون سهم، وهو ما يعادل 2.86 من متوسط العام الماضي — و1.12 فقط من متوسط الجلسات الثلاثين السابقة. وبالمقارنة مع أي فترة تاريخية عادية، كان النشاط استثنائياً؛ أما بالمقارنة مع أسابيع الانهيار التي سبقت ذلك، فقد كان مجرد يوم آخر وسط العاصفة. فالأحداث التاريخية لا تعلن عن نفسها دائماً عبر أحجام تداول تاريخية.

الطفرة التي استمرت ثلاثة أيام

الاستعلامإغلاق 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-18 — أي بعد 103 من جلسات التداول منذ القاع، في رحلة صعود وهبوط استغرقت 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 صباحاً - 4:00 مساءً بتوقيت شرق الولايات المتحدة) من السجل الزمني؛ وقد تختلف عن إغلاقات المزاد الرسمية ببضعة سنتات.
  • تواريخ التعافي تعتمد على السعر فقط؛ بينما يعود مقياس العائد الإجمالي (إعادة استثمار التوزيعات) في وقت أقرب بطبيعته.
  • ينضم عائد السندات لأجل 10 سنوات إلى السلسلة اليومية للخزانة في تواريخ التداول؛ ونقاط الأساس هي أجزاء من مئة من النقطة المئوية.
  • تبدأ عينة لوحة التصنيف من 2003-09-10 — وعبارة "منذ عام 2003" في هذه الصفحة تعني تلك الفترة، وليس كامل تاريخ السوق المسجل.

كل لوحة أعلاه هي استعلام مخزن ومحدد الإصدار عبر السجل التاريخي — يمكنك توسيع استعلام SQL لرؤية كل قياس. هل تريد تجربة هذا اليوم بدلاً من قراءته؟ إنه أحد السيناريوهات القابلة للتشغيل في محاكي ستراسمور لابس للتداول.

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