הורדת דירוג ארה"ב 2011: קלטת יום שני השחור
8 באוגוסט 2011: יום המסחר הראשון לאחר ש-S&P שללה מארה"ב את דירוג ה-AAA. הקלטת צנחה כל היום ונסגרה קרוב לשפל, עם הקבלות בפנים.
לאחר הסגירה ביום שישי, 5 באוגוסט 2011, הורידה סטנדרד אנד פור'ס את דירוג האשראי של ארצות הברית מ-AAA ל-AA+ — הורדת הדירוג הראשונה של ארה"ב בהיסטוריה. יום שני, 8 באוגוסט, היה ההזדמנות הראשונה של השוק להצביע עליה, בשיאו של משבר החוב האירופי של אותו קיץ. עמוד זה משחזר את ההצבעה מתוך קלטת הדקות: מה ירד, מה עלה, היכן מדורג היום, וכמה זמן לקח לנזק להתאחות. כל מספר הוא שאילתה שמורה; הרחב כל פאנל לקבלת ה-SQL.
מדוע S&P הורידה את דירוג ארה"ב
הורדת הדירוג הייתה המערכה האחרונה בעימות תקרת החוב של 2011. תקרת החוב היא מגבלה חוקית על סך ההלוואות הפדרליות; ברגע שהממשלה מגיעה אליה, האוצר אינו יכול להנפיק חוב חדש כדי לממן הוצאות שהקונגרס כבר אישר. ארה"ב הגיעה למגבלת 14.3 טריליון דולר ב-16 במאי 2011, והאוצר החל ב"צעדים חריגים" — תמרונים חשבונאיים שקנו זמן עד 2 באוגוסט, התאריך החזוי שלו לכלות המזומנים. הקונגרס העביר את חוק הפיקוח התקציבי, והנשיא חתם עליו, ב-2 באוגוסט עצמו: חדלות פירעון נמנעה שעות ספורות לפני המועד.
שלושה ימים לאחר מכן, לאחר הסגירה ביום שישי, S&P הורידה את הדירוג בכל זאת. בהודעתה הוצגו שני טיעונים. ראשית, התהליך: חודשים של הימור על הסף בשאלה אם ארה"ב תחמיץ תשלומים מרצונה הפכו, במילותיה של S&P, את קביעת המדיניות האמריקאית ל"פחות יציבה, פחות אפקטיבית ופחות צפויה". שנית, החשבון: החיסכון הצפוי של החוק, כ-2.1 טריליון דולר על פני עשר שנים, נפל ממה ש-S&P ראתה כדרוש לייצוב מסלול החוב של הממשלה. מחלקת האוצר חלקה בפומבי על המתמטיקה, וזיהתה פער של 2 טריליון דולר בהנחות; S&P תיקנה את המספרים והותירה את הדירוג החדש על כנו. מודי'ס ופיץ', שתי הסוכנויות הגדולות האחרות, אשררו את דירוג ה-AAA שלהן באותו קיץ — כך שהפתיחה ביום שני הייתה השוק המדרג את שיקול הדעת של סוכנות אחת.
היום, בשורה אחת
ה-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('2011-08-05 00:00:00') AND window_start < toDateTime('2011-08-08 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('2011-08-08 04:00:00') AND window_start < toDateTime('2011-08-08 23:59:00')SPY נפתח בפער של -2.6% מתחת לשער הסגירה של יום שישי, $120.03, ומעולם לא התאושש באמת: השפל של $112.02 נרשם בשעה 14:25 שעון החוף המזרחי, ושער הסגירה, $112.28, היה -6.5% — בין הימים הבודדים הגרועים ביותר בין משבר 2008 ל-2020, ולוח הדירוג למטה נותן מספר מדויק לטענה הזו. מחזור המסחר עמד על 695.2 מיליון מניות SPY, וכל 390 עמודות הדקות של הסשן הרגיל הודפסו: סשן מלא, ללא עצירת מסחר, ובכל זאת הסגירה הזו.
מדרגות, לא בור אוויר
ה-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('2011-08-08 04:00:00') AND window_start < toDateTime('2011-08-08 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השוו את הצורה להתרסקות הבזק חמישה-עשר חודשים קודם לכן: אין בור אוויר חד-פעמי, אין התאוששות מיידית — רק שלוש-עשרה חצאי-שעות שבהן כמעט כל שער סגירה נמוך מקודמו, תוך האצה אל תוך שעות אחר-הצהריים. זוהי ירידה מתוך שכנוע: נזילות נותרה נוכחת והמחירים עדיין ירדו, לאורך כל הסשן. מכניקה שונה, משמעות שונה, אותו מספר אדום — סיבה אחת לכך שקריאת הצורה התוך-יומית חשובה לא פחות מהשינוי היומי.
מה צנח הכי חזק — ומה עלה
הורדת דירוג ריבונית לא פוגעת בכל מניה באותה מידה; הטייפ ממיין את השמות לפי החשיפה. הנה תשע מניות נזילות, מהסגירה הרשמית ביום שישי לזו של יום שני, מהגרוע לטוב ביותר:
ה-SQL המדויק מאחורי כל מספר
SELECT
ticker,
round(fri_close, 2) AS fri_close_usd,
round(mon_close, 2) AS mon_close_usd,
round((mon_close / fri_close - 1) * 100, 1) AS change_pct
FROM (
SELECT
ticker,
argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2011-08-05') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS fri_close,
argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2011-08-08') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS mon_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('VXX', 'BAC', 'C', 'GS', 'XLF', 'SPY', 'KO', 'XLU', 'GLD')
AND window_start >= toDateTime('2011-08-05 00:00:00') AND window_start < toDateTime('2011-08-09 04:00:00')
GROUP BY ticker
)
ORDER BY mon_close / fri_close ASC, ticker ASCהמכירה התרכזה בבנקים. בנק אוף אמריקה נפל ב--20% — בערך דולר אחד מכל חמישה דולר משווי השוק שלו, שנעלם במושב אחד — כאשר סיטיגרופ רשמה -15.8% ו-XLF, קרן הסקטור הפיננסי, רשמה -9.6%, כולם הרחק מעבר ל--6.5% של SPY. מניית מוצרי הצריכה קוקה-קולה ויתרה על -2.3% בלבד. ושתי שורות סיימו בירוק: GLD, קרן הזהב, הוסיפה 3.3%, ו-VXX — שטר נסחר בבורסה העוקב אחר חוזים עתידיים קצרי-טווח על מדד VIX, "מדד הפחד" של השוק — קפץ ב-14.6%. טייפ אחד, שלושה סיפורים בו-זמנית: מפולת בבנקים, הורדת סיכון מסודרת במדד הרחב, ובריחה לביטוח.
היכן מדורג ה-8 באוגוסט בין הימים הגרועים ביותר
האם המושב של הורדת הדירוג היה היסטורי, או סתם גרוע? דרך אחת לענות: לחשב את השינוי מסגירה לסגירה עבור כל מושב של SPY מ-2003 עד 2025 ולדרג אותם.
ה-SQL המדויק מאחורי כל מספר
WITH daily AS (
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
argMax(toFloat64(close), window_start) AS close_usd
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
AND window_start >= toDateTime('2003-01-01 00:00:00') AND window_start < toDateTime('2026-01-01 00:00:00')
GROUP BY et_date
),
changes AS (
SELECT et_date, close_usd,
lagInFrame(close_usd) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM daily
),
ranked AS (
SELECT et_date, close_usd,
round((close_usd / prev_close - 1) * 100, 1) AS change_pct,
row_number() OVER (ORDER BY close_usd / prev_close ASC, et_date ASC) AS day_rank
FROM changes
WHERE prev_close > 0
),
enriched AS (
SELECT et_date, change_pct, day_rank,
max(if(et_date = toDate('2011-08-08'), day_rank, 0)) OVER () AS downgrade_rank,
sum(if(day_rank <= 10 AND toYear(et_date) NOT IN (2008, 2020), 1, 0)) OVER () AS top10_outside_crises,
round((max(if(et_date = toDate('2011-08-05'), close_usd, 0)) OVER () / max(if(et_date = toDate('2011-07-22'), close_usd, 0)) OVER () - 1) * 100, 1) AS two_week_slide_pct
FROM ranked
)
SELECT
toString(et_date) AS session,
change_pct,
downgrade_rank,
top10_outside_crises,
two_week_slide_pct
FROM enriched
WHERE day_rank <= 10
ORDER BY day_rankה-8 באוגוסט 2011 מדורג במקום ה-9 בגריעותו על פני עשרים ושלוש השנים הללו — וזהו היום היחיד בעשירייה הראשונה שמקורו אינו במשבר הפיננסי של 2008–09 או בהתרסקות הקורונה של מרץ 2020. אולם, ההקשר פועל לשני הכיוונים: השוק כבר היה בנסיגה לפני ש-S&P פעלה. SPY צנח ב--10.8% במהלך השבועיים שקדמו ליום שישי של הורדת הדירוג, בעוד העימות על תקרת החוב נמשך עד הרגע האחרון ומשבר החוב הריבוני באירופה התפשט לעבר איטליה וספרד. יום שני מדד שני דברים בו-זמנית — את ההלם מאובדן דירוג ה-AAA וירידה שכבר הייתה בתנועה — ושום שאילתה אינה מפרידה ביניהם לחלוטין. מה שהנתונים יכולים לומר: המושב הגרוע ביותר היחיד של אותו תיקון כולו נחת ביום המסחר הראשון לאחר הורדת הדירוג.
הנכס שהורד דירוג עלה
הנה החלק שכל סיפור חוזר של הפרשה הזו חייב להתמודד איתו: נייר הערך ש-S&P הורידה את דירוגו היה החוב של ממשלת ארה"ב — והוא זינק.
ה-SQL המדויק מאחורי כל מספר
SELECT
toString(date) AS date,
round(yield_3_month, 2) AS yield_3_month,
round(yield_2_year, 2) AS yield_2_year,
round(yield_10_year, 2) AS yield_10_year,
round(yield_30_year, 2) AS yield_30_year
FROM global_markets.treasury_yields
WHERE date BETWEEN '2011-08-01' AND '2011-08-15'
ORDER BY dateתשואת אג"ח ל-10 שנים סגרה ביום שישי של הורדת הדירוג על 2.58%, ירדה ל-2.4% ביום שני השחור, ונגעה ב-2.2% למחרת. תשואת אג"ח יורדת כשמחירה עולה, כך שתשואות נמוכות יותר משמען שמשקיעים שילמו יותר עבור החוב הממשלתי שדירוגו זה עתה נחתך — גיוס זול יותר ללווה שהורד דירוגו. הביקוש לביטחון הכריע כל ספק לגבי נכס הביטחון עצמו, כאשר האג"ח לשנתיים סיימה את יום שלישי ההוא על 0.19%, צמודה לאפס. מסביר עקום התשואה 2s10s מכסה מכשירים אלו ואת מה שהפער ביניהם מודד.
השבוע התנודתי
ה-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('2011-08-05 00:00:00') AND window_start < toDateTime('2011-08-12 23:59:00')
GROUP BY et_date
)
)
WHERE et_date >= toDate('2011-08-08') AND et_date <= toDate('2011-08-12')
ORDER BY et_dateמה שבא אחר כך היה אחד השבועות האלימים ביותר שנרשמו, בשני הכיוונים: יום שלישי +4.6%, יום רביעי -4.4%, יום חמישי +4.5%, יום שישי +0.7% — ארבעה ימי מסחר רצופים שהתחלפו בין צניחה לזינוק. העלייה ביום שלישי חפפה להצהרת הפדרל ריזרב מתשיעי באוגוסט, שהתחייבה להשאיר את ריבית הפד קרוב לאפס "לפחות עד אמצע 2013" — הפעם הראשונה שה-FOMC קשר את ההנחיה לתאריך קלנדרי במקום לנוסח הישן "תקופה ממושכת", הבטחה לשנתיים של כסף חינם שהוזרמה לתוך שוק מבוהל. שבועות תנודתיים בעוצמה כזו הם האופן שבו משטרי תנודתיות מכריזים על עצמם; הכיוון נקבע מאוחר יותר.
כמה זמן באמת לקח להתאושש
"השוק התאושש תוך חודשים" הוא התקציר הרגיל של האירוע הזה. התשובה המאוחסנת מדויקת יותר, ומעניינת יותר.
ה-SQL המדויק מאחורי כל מספר
WITH daily AS (
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
argMax(toFloat64(close), window_start) AS close_usd
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
AND window_start >= toDateTime('2011-08-05 00:00:00') AND window_start < toDateTime('2012-07-01 00:00:00')
GROUP BY et_date
),
(SELECT close_usd FROM daily WHERE et_date = toDate('2011-08-05')) AS pre_close,
(SELECT close_usd FROM daily WHERE et_date = toDate('2011-08-08')) AS mon_close,
(SELECT min(et_date) FROM daily WHERE et_date > toDate('2011-08-05') AND close_usd >= pre_close) AS reclaim_d
SELECT
round(pre_close, 2) AS predowngrade_close,
toString(reclaim_d) AS first_reclaim_date,
countIf(et_date > toDate('2011-08-05') AND et_date < reclaim_d) AS sessions_before_first_reclaim,
toString(argMinIf(et_date, (close_usd, et_date), et_date > toDate('2011-08-05'))) AS bottom_date,
round(minIf(close_usd, et_date > toDate('2011-08-05')), 2) AS bottom_close,
round((minIf(close_usd, et_date > toDate('2011-08-05')) / pre_close - 1) * 100, 1) AS bottom_vs_predowngrade_pct,
round((minIf(close_usd, et_date > toDate('2011-08-05')) / mon_close - 1) * 100, 1) AS bottom_vs_downgrade_monday_pct,
toString(maxIf(et_date, close_usd < pre_close)) AS last_close_below,
countIf(et_date > toDate('2011-08-05') AND close_usd < pre_close) AS total_sessions_below
FROM dailySPY סגר לראשונה בחזרה מעל הרמה שלפני הורדת הדירוג — $120.03, השער של ה-5 באוגוסט — ב-2011-08-15, אחרי 5 ימי מסחר בלבד מתחתיה. החזרה הזו לא החזיקה מעמד. משבר אירופה העמיק במהלך הסתיו, והשפל האמיתי של התיקון נרשם ב-2011-10-03 בשער של $109.92 — -8.4% מתחת לשער שלפני הורדת הדירוג ו--2.1% אפילו מתחת לשער של יום שני השחור. בסך הכול, SPY סגר מתחת לרמת ה-5 באוגוסט במשך 41 ימי מסחר, האחרון שבהם ב-2011-11-28. כך שציר הזמן האמיתי הוא דו-צדדי: השקע שהותירה הורדת הדירוג עצמה נמחק תוך שבוע, בעוד התיקון שבתוכו היא נחתה נמשך כמעט ארבעה חודשים נוספים.
מה היום הזה מלמד
שני מנגנונים שכדאי לזכור. ראשית, זעזועים סמליים מתמחרים מהר וחוזרים מהר: הורדת הדירוג לא שינתה תזרים מזומנים בשום מקום, והתמחור מחדש של -6.5% נמחק בתוך 5 ימי מסחר — אף על פי שהתיקון הרחב סביבו ארך חודשים. שנית, המכשיר ש"ניזוק" אינו תמיד זה שנופל: אג"ח ממשלתיות עלו דווקא בזמן הורדת הדירוג שלהן, בעוד שמניות — מניות בנקים בראשן — ספגו את המכה. כשכותרת מציינת נכס, בדוק היכן נוחתות המכירות בפועל לפני שאתה מאמין שהסיפור כותב את עצמו.
שאלות נפוצות על הורדת הדירוג של ארה"ב
מה קרה למניות כשארה"ב הורדה בדירוג?
ביום המסחר הראשון אחרי הורדת הדירוג בליל שישי — יום שני, 8 באוגוסט 2011 — SPY ירד ב--6.5%, ונסגר קרוב לשפל שלו, המושב ה-9 הגרוע ביותר של SPY בין 2003 ל-2025. לאחר מכן הגיע שבוע של התרסקויות ועליות של אחוזים רבים לסירוגין.
מהי תקרת החוב, ומה הקשר שלה להורדת הדירוג?
תקרת החוב היא מגבלה חוקית על סך ההלוואות הפדרליות של ארה"ב; הגעה אליה חוסמת את משרד האוצר מלהנפיק חוב חדש כדי לשלם חשבונות שהקונגרס כבר אישר. העימות ב-2011 סביב העלאתה נמשך עד שעות לפני מועד חדלות הפירעון הצפוי, ו-S&P ציינה את מדיניות הסף הזה כסיבה מרכזית להסרת דירוג ה-AAA שלושה ימים לאחר מכן.
כמה גדולה הייתה קפיצת התנודתיות באוגוסט 2011?
VXX, שטר הנסחר בבורסה העוקב אחר חוזים עתידיים קצרי טווח על מדד הפחד VIX, קפץ ב-14.6% ב-8 באוגוסט בלבד, והשבוע שלאחר מכן התחלף בין מושבים של +4.6% ו--4.4% במדד S&P — תנודות יומיות בסדר גודל שנראה חוץ מזה רק ב-2008 וב-2020.
האם ארה"ב הורדה שוב בדירוג מאז 2011?
כן. פיץ' הורידה את ארה"ב ל-AA+ באוגוסט 2023, ומודי'ס הלכה בעקבותיה ל-Aa1 במאי 2025 — האחרונה מבין שלוש הסוכנויות הגדולות שהסירה את הציון העליון שלה. אף אחת מההורדות החוזרות לא חפפה למהלך יומי במניות הדומה ל-8 באוגוסט 2011; הורדת הדירוג הראשונה נשאה את ההלם של התקדים, בעוד שהמאוחרות יותר אישרו מסלול שהשווקים כבר הכירו.
איך ההתרסקות של 2011 משתווה ל-2008 או 2020?
זה היה תמחור מחדש של הלם בודד בתוך שוק שורי קיים, ולא התפרקות אשראי מערכתית: חמור, מהיר, וחזר במלואו תוך חודשים — בעוד ש-2008 המשיכה לרדת במשך חצי שנה, ו-2020 דחסה שוק דובי לתוך ארבעה שבועות.
כל פאנל למעלה הוא שאילתה שמורה ומתועדת גרסה על פני קלטת המסחר ההיסטורית — הרחב את ה-SQL כדי לראות כל מדידה. רוצה להרגיש את היום הזה במקום לקרוא עליו? זהו אחד התרחישים הניתנים להפעלה ב-סימולטור המסחר של Strasmore Labs.