2009 మార్చి 9: టేప్లో నమోదైన అట్టడుగు
2009 మార్చి 9 ఆర్థిక సంక్షోభం ఖచ్చితమైన అట్టడుగు తేదీ, మరియు టేప్ ఒక ప్రశాంత, అనిశ్చిత సోమవారాన్ని చూపిస్తుంది. తరం తరం దిగువ స్థాయులు దగ్గరగా ఎలా ఉంటాయో ఇక్కడ తెలుస్తుంది.
2009 మార్చి 9 ఆధునిక మార్కెట్ చరిత్రలో అత్యంత ముఖ్యమైన తేదీలలో ఒకటి: ఆర్థిక సంక్షోభం ముగింపు దిగువ స్థాయి — 2007 అక్టోబర్ శ్రేణి గరిష్ఠం కంటే -56.5% దిగువన — మరియు పదేళ్లకు పైగా కొనసాగిన ఎద్దుల మార్కెట్ మొదటి రోజు. చరిత్ర పుస్తకాలు ఆ సోమవారం నాటి సూచీ స్థాయిలను ఉటంకిస్తాయి: S&P 500 వద్ద 676.53, డౌ వద్ద 6,547. క్రింది రసీదులు SPY, S&P 500 ETF ను ఉపయోగిస్తాయి, దీని నిమిషం-నిమిషం టేప్ ఈ డేటాబేస్లో 2003 నుండి నిల్వ ఉంది. ఆ టేప్ భద్రపరిచే అసౌకర్యమైన నిజం ఇక్కడ ఉంది: ఆ సెషన్ గురించి ఏదీ దాన్ని ప్రకటించలేదు. ఏ విధమైన అప్పగింత ఉద్వేగం లేదు, తిరోగమన ఆనందోత్సవాలు లేవు — ఒక ప్రశాంతమైన, నిరంతరం కొనసాగిన ఎరుపు సోమవారం, అది ఆఖరుదైనది. ప్రతి సంఖ్య ఒక నిల్వ ప్రశ్న; ఏ ప్యానెల్ కోసం అయినా SQL ను విస్తరించండి.
అట్టడుగునకు దారి
సంక్షోభం దశలవారీగా వచ్చింది, మరియు క్రింది అంశాలన్నింటినీ చదవడానికి తేదీలు ముఖ్యమైనవి. బేర్ స్టెర్న్స్ను 2008 మార్చిలో జేపీ మోర్గాన్ కొనుగోలు చేసింది. లెమన్ బ్రదర్స్ 2008 సెప్టెంబర్ 15 సోమవారం దివాళాకోరు పిటిషన్ దాఖలు చేసింది — ఈ సెషన్కు దాని స్వంత పేజీ ఇక్కడ ఉంది. కాంగ్రెస్ TARP, 700 బిలియన్ డాలర్ల బ్యాంక్ రెస్క్యూ ఫండ్ను అక్టోబర్ 3న ఆమోదించింది. AIG ప్రభుత్వ రెస్క్యూను రెండుసార్లు విస్తరించారు. నవంబర్లో సిటిగ్రూప్ రెండో ఫెడరల్ బ్యాక్స్టాప్ను తీసుకుంది. శీతాకాలపు ర్యాలీ అస్పష్టమైంది, మరియు 2009 ఫిబ్రవరి చివరి నాటికి సూచీలు నవంబర్ కనిష్ఠాలను ఛేదించి మరింత పడిపోయాయి. ఆ పదిహేడు నెలల పరుగును ఒక్క అడ్డువరుస సంగ్రహిస్తుంది:
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
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 daily2007-10-09న $156.41 ముగింపు గరిష్ఠం నుండి, SPY 2009-03-09న $68.07కు పడిపోయింది — -56.5% పతనం, 1930ల తర్వాత అత్యంత లోతైనది. అదే అడ్డువరుస దీర్ఘకాలిక పెట్టుబడిదారులు తర్వాత అడిగే సంఖ్యను కూడా మోస్తుంది: రౌండ్ ట్రిప్. SPY తన 2007 గరిష్ఠం కంటే మళ్లీ 2013-03-14 వరకు పైకి మూగలేదు — కనిష్ఠం తర్వాత నాలుగు సంవత్సరాలు, గరిష్ఠం తర్వాత ఐదున్నర సంవత్సరాలు. ఆ గణితం యొక్క రెండు సగభాగాలకూ దిగువన వాటి స్వంత రసీదులు ఉన్నాయి.
ఒకే వరుసలో ఆ రోజు
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన 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('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 శుక్రవారం $68.84 ముగింపు నుండి $67.95 వద్ద తెరిచింది — ఇది -1.3% కిందికి గ్యాప్ — ఉదయం 10:13 ETకి $70ను తాకింది, రోజు చివర్లో (15:17 ET) $67.73 కనిష్టానికి పడిపోయింది, $68.07 వద్ద ముగిసింది — రోజుకు -1.1%. మొత్తం సెషన్ పరిధి సుమారు రెండు డాలర్లు. తరం తరబడి చూస్తే అత్యంత ప్రభావవంతమైన ముగింపు ధర ఒక్క డ్రమాటిక్ నిమిషం లేకుండానే వచ్చింది.
ఒంటరి సంఖ్య మాత్రమే ఇచ్చే జవాబు కన్నా ఎక్కువ ప్రశ్నకు వాల్యూమ్ సమాధానం చెబుతుంది: 357.4 మిలియన్ షేర్లు బిగ్గరగా ఉన్నాయా లేక పెద్దగా లేవా? మార్చి 2009కి, పెద్దగా లేవు. గత ఇరవై సెషన్లలో రోజుకు సగటున 406.3 మిలియన్ SPY షేర్లు ఉండేవి — ఈ కనిష్టం ఆ సగటు ప్రకారం -12% — గత ఆరు పదుల సెషన్ల సగటు 337.9 మిలియన్. క్యాపిట్యులేషన్ పురాణం ప్రకారం, తరం తరబడి నమోదయ్యే కనిష్టాలు భారీ, రికార్డు స్థాయి టర్నోవర్పై వస్తాయి. ఆధునిక యుగంలో అత్యంత ప్రసిద్ధ కనిష్టం తన సొంత నెలలోని ఒక సాధారణ రోజు కన్నా తక్కువ ట్రేడ్ అయింది.
సెషన్ ఆకృతి
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన 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('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అర్ధగంట మార్గం చాలా పునర్వివరణలు సరళీకరించే ఒక వివరాన్ని సరిచేస్తుంది: మార్చి 9 ఏకముఖ పతనం కాదు. గ్యాప్ డౌన్ తర్వాత, SPY ఉదయం మధ్య భాగం వరకు పుంజుకుంది — 10:00 ET బకెట్ $69.49 వద్ద ముగిసింది, 10:13 వద్ద ముద్రించబడిన $70 రోజు గరిష్టానికి కొద్దిగా దిగువన — ఆపై మధ్యాహ్నం పూర్తిగా ఇవ్వడం, $67.73 కనిష్టానికి 15:17 వద్ద కిందికి జారుకుంటూ, మోదరంగా ముగింపులోకి తిరిగి వచ్చింది. పుంజుకోవడం, ఫేడ్, చిన్న బౌన్స్: అసాధారణమైన ఆకృతి. నీటి ప్రవాహం లేదు, భయాందోళన వాల్యూమ్ గుర్తు లేదు, v-బాటమ్ లేదు. దీనిని లెహ్మన్ సోమవారం యొక్క క్లోజ్-ఆన్-ది-లో అత్యవసరత లేదా ఫ్లాష్ క్రాష్ యొక్క గాలి ఖాళీలో పోల్చండి: ఇది పూర్తిగా మూడవ రకం, అలసిపోయిన టేప్. ఆ శీతాకాలంలో బహుళ-శాతం క్రాష్లు మునుపటి వారాలలో జరిగాయి. దిగువనే విక్రేతలు సరిగ్గా అయిపోయిన రోజు.
టేప్ను తిప్పినది ఏమిటి
సోమవారం డేటాలో మంగళవారాన్ని వివరించేది ఏదీ లేదు — ఈ మలుపు టేప్ వల్ల కాదు, వార్తల చక్రం వల్ల వచ్చింది. మంగళవారం ఓపెన్ అయ్యే ముందు, సిటీగ్రూప్ చీఫ్ ఎగ్జిక్యూటివ్ విక్రమ్ పాండిట్ రాసిన ఒక అంతర్గత మెమో పత్రికలోకి లీక్ అయింది: ఆ బ్యాంకు 2009 జనవరి, ఫిబ్రవరిలో లాభాల్లో ఉందని, 2007 తర్వాత అత్యుత్తమ రెండు నెలల విభాగమని దానిలో ఉంది. సిటీగ్రూప్ — సంక్షోభం యొక్క కేంద్రబిందువు, సోమవారం ముగింపుకు $1.05 వద్ద ట్రేడ్ అవుతోంది — నెలల తరబడి ప్రాథమిక-మూలం మంచి వార్తను ఒక్క ముక్క కూడా ఇవ్వలేదు. అత్యల్ప స్థాయి తర్వాత వచ్చిన ఐదు సెషన్లలో టేప్ ఏమి నమోదు చేసిందో ఇక్కడ ఉంది:
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
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మార్చి 10 ఎక్కువగా ఓపెన్ అయి, ఆ లాభాన్ని ఎప్పుడూ తిరిగి ఇవ్వలేదు: SPY $72.21 వద్ద ముగిసింది, 6.1% పెరిగింది, 401.3 మిలియన్ షేర్లపై — అత్యల్ప రోజు కంటే భారీ వాల్యూమ్. సిటీగ్రూప్ $1.44 వద్ద ముగిసింది. శుక్రవారం నాటికి, SPY $76.09 వద్ద, సిటీగ్రూప్ $1.78 వద్ద నిలిచాయి. అదే మంగళవారం 10 సంవత్సరాల ట్రెజరీ ధర 2.89% నుండి 2.99% కు పెరిగింది — ఈక్విటీ ర్యాలీతో పాటు అత్యంత సురక్షిత ఆస్తి నుండి డబ్బు బయటకు వెళ్ళింది, ఫ్లైట్-టు-క్వాలిటీ ట్రేడ్ తిరిగి వెనుకకు నడిచింది.
నిజాయితీ హెచ్చరిక: ఆ శీతాకాలంలో ఇప్పటికే అనేక బహుళ-శాతం ర్యాలీలు వచ్చి విఫలమయ్యాయి, మరియు మార్చి 10 న ఈ ర్యాలీ భిన్నమైనదని ధృవీకరించేది ఏదీ లేదు. పాండిట్ మెమో అనేది చరిత్రకారులు ఆ మలుపుకు అతికించే గుర్తు; టేప్ చూపగలిగేది — పైన చూపించినట్లే — సమయం యొక్క ఏకకాల సంఘటన.
అడుగుదిగువన ఉండి ఉందా?
అడుగుదిగువన అంటే అది నిజమైన అడుగుదిగువనే — అది మార్కెట్ తిరిగి వెళ్ళకపోతేనే. ఈ ప్యానెల్ 2009 జూన్ చివరి వరకు SPYని వారం వారం ట్రాక్ చేస్తుంది — ప్రతి వారం యొక్క అత్యల్ప ట్రేడ్ మరియు తుది క్లోజ్, చివరి నిలువులో నడుస్తున్న కనిష్టంతో:
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
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మార్చి 9 తర్వాత పదహారు వారాలలో SPY ట్రేడ్ అయిన అత్యల్ప ధర $69.37 — మరియు ఆ ప్రింట్ అడుగుదిగువ నుండి మొదటి వారంలోనే వచ్చింది (2009-03-09). SPY తన మార్చి 9 క్లోజైన $68.07 కంటే మళ్ళీ ఎప్పుడూ తక్కువకు ట్రేడ్ అవలేదు, $67.73 ఇంట్రాడే కనిష్టం గురించి చెప్పనవసరం లేదు. ఎటువంటి రీటెస్ట్ లేదు, రెండవ అవకాశం లేదు, పాత స్థాయికి పుల్బ్యాక్ లేదు: 2009-05-04 వారంలో SPY $93.04 వద్ద క్లోజ్ అయింది, తొమ్మిది వారాలలో అడుగుదిగువన కంటే మూడింట ఒక వంతు పైన. నిర్ధారణ కోసం వేచి ఉండటానికి ఒక ధర ఉంది, మరియు ప్యానెల్ దానిని ఖచ్చితంగా చెబుతుంది.
ఏడాది కనిష్టం నుండి ఎవరు నాయకత్వం వహించారు
నష్టానికి కేంద్రంగా ఉన్న బ్యాంకులే పునరుత్థానానికి కూడా కేంద్రంగా ఉన్నాయి. మార్చి 9, 2010 దగ్గర కనిష్ట ముగింపు నుండి ఒక సంవత్సరం:
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
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బోర్డు పైభాగంలో: BAC +349%, C +265% (షేరుకు $1.05 నుండి), WFC +190% — అత్యంత దెబ్బతిన్న పెద్ద ఆర్థిక సంస్థలు, అత్యంత చెత్తని ఊహించిన ధరల నుండి మూడు నాలుగు రెట్లు పెరిగాయి. బోర్డు మొత్తం బ్యాంకులది కాదు — అదే సంవత్సరంలో AAPL 168% రిటర్న్ ఇచ్చింది — కానీ ప్యానల్ పరిమితమైన వాదన ఏమిటంటే, ఏకైక అత్యుత్తమ ప్రదర్శనకర్త ఒక ఆర్థిక సంస్థ. ఇదే సమయంలో విస్తృత మార్కెట్ (SPY) 68% సంపాదించింది, మరియు XOM, పతనంలో అత్యుత్తమంగా పటిష్టంగా ఉన్న రక్షణాత్మక దిగ్గజం, కేవలం 3% సంపాదించింది. పునరుత్థానం పతనం యొక్క లీడర్బోర్డ్ను దాదాపు ఖచ్చితంగా తలక్రిందులు చేసింది.
ఇతర అడుగులతో పోల్చితే
ఇక్కడ నిమిష టేప్ సెప్టెంబర్ 2003 నుండి మొదలవుతుంది, కాబట్టి అక్టోబర్ 2002 డాట్-కామ్ కనిష్టం రసీదు పరిధి వెలుపల ఉంది. అప్పటి నుండి మూడు అత్యంత లోతైన ముగింపు కనిష్టాలతో పోల్చితే, మార్చి 2009 ఇలా ఉంది:
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
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_session2009 అడుగు నుండి, SPY మూడు నెలల్లో 38.5% మరియు ఒక సంవత్సరంలో 68.1% సంపాదించింది — బలహీనమైన పదిహేనేళ్ళలో చూసిన అత్యంత బలమైన పన్నెండు నెలలు, సంక్షోభం యొక్క అత్యంత సాధారణ రోజున ప్రారంభమైంది. మార్చి 2020 కోవిడ్ కనిష్టం మాత్రమే అదే తరగతిలో ఉంది, దాని మొదటి సంవత్సరంలో +75.1% — ఈ మలుపు యొక్క 2020 స్టిములస్ ర్యాలీ నిర్మాణానికి దాని స్వంత పేజీ ఉంది. 2011 మరియు 2018 దిద్దుబాటు కనిష్టాలు — ఆ క్షణంలో నిజమైన భయాలు — వాటి మొదటి సంవత్సరాలలో 31.4% మరియు 37.1% అందించాయి. నాలుగింటిలోనూ కనిపించే నమూనా: రంధ్రం లోతుగా ఉంటే, బయటకు వచ్చే మొదటి కాలు ఎక్కువ వాలుగా ఉంటుంది, మరియు మొదటి కాలు ఎప్పుడూ కోలుకునే ప్రక్రియలో అత్యంత వాలుగా ఉంటుంది.
కొండలు ఎందుకు వెనుకకు మాత్రమే కనిపిస్తాయి
నిజాయితీగల విధానం: ఒక కొండను ఆ తర్వాత ఏం జరగదు అనే దానితో నిర్వచిస్తారు — తక్కువ కనిష్టం ఉండదు — ఇది నిర్మాణాత్మకంగా నిజ సమయంలో తెలుసుకోలేనిది. ఇప్పటివరకు ప్రతిపాదించిన ప్రతి పరిమాణాత్మక "కొండ సంకేతం" 2008 చివరి భాగంలో కిందికి ప్రయాణించే మార్గంలో పదేపదే మండింది; మార్చి 9 సెషన్ కూడా వాటన్నింటిలో అసాధారణంగా స్కోర్ చేసింది — సాధారణ ఆకారం, సగటుకన్నా తక్కువ వాల్యూమ్, మరుసటి ఉదయమే వచ్చిన వార్తా కారకం. తమ సూచిక ఈ రోజుని పిలిచిందని చెప్పే వారంతా మనుగడను వర్ణిస్తున్నారు, మరియు వారి సూచిక కూడా పిలిచిన అనేక మునుపటి "కొండలు" దానికి రసీదు.
ఆ రోజు నేర్పించేది: బిందువుల కంటే ఫలితాల శ్రేణుల కోసం స్థానాన్ని ఏర్పాటు చేయడం. మార్చి 2009 నుండి బాగా చేసిన పెట్టుబడిదారులు, ఎక్కువగా, షెడ్యూల్ ప్రకారం మొత్తం దుర్భరమైన శీతాకాలం అంతా కొనుగోలు చేస్తూ ఉన్నవారు — రిటర్న్-కొలత పద్ధతులు ఇంకొకవైపు ఊహించే విధానం — పిక్సెల్-ఖచ్చితమైన కనిష్టాన్ని కనుగొన్నవారు కాదు. ఆ క్రమశిక్షణలో టేప్ పాత్ర ప్రవచనం కాదు, క్యాలిబ్రేషన్: సాధారణం ఏమిటో తెలుసుకోవడమే నిజానికి ఇప్పుడే ముగిసిన పతనం యొక్క మరో రోజుగా ఒక ప్రశాంతమైన సోమవారాన్ని తప్పుగా గుర్తించకుండా నిరోధిస్తుంది.
మార్చి 2009 దిగువ ఎఫ్ఎక్యూ
2008-2009 పతనం యొక్క ఖచ్చితమైన దిగువ ఏమిటి?
క్లోజింగ్ దిగువ సోమవారం, మార్చి 9, 2009న నమోదైంది: SPY $68.07 వద్ద, S&P 500 ఇండెక్స్ దాని విస్తృతంగా ఉటంకించబడిన 676.53 వద్ద. ఇండెక్స్పై ప్రసిద్ధ ఇంట్రాడే "666" ఒక సెషన్ ముందు, మునుపటి శుక్రవారం, మార్చి 6న నమోదైంది.
2007 నుండి 2009 వరకు స్టాక్ మార్కెట్ ఎంత పడిపోయింది?
SPY క్లోజింగ్ ఆధారంగా -56.5% పడిపోయింది — 2007-10-09 న $156.41 నుండి 2009-03-09 న $68.07 వరకు — 1930ల తర్వాత అత్యంత లోతైన US ఈక్విటీ డ్రాడౌన్.
మార్చి 10, 2009న ఏం జరిగింది?
దిగువ తర్వాత మొదటి సెషన్: బ్యాంక్ జనవరి మరియు ఫిబ్రవరిలో లాభదాయకంగా ఉందని తెలిపే సిటీగ్రూప్ అంతర్గత మెమో రాత్రిపూట లీక్ అయిన తర్వాత SPY 6.1% పెరిగింది. సిటీగ్రూప్ స్వయంగా $1.44 వద్ద ముగిసింది, దిగువ వద్ద $1.05 నుండి పైకి.
2009 దిగువ నుండి మార్కెట్ ఎంత వేగంగా కోలుకుంది?
మొదటి సంవత్సరం చరిత్రాత్మకమైనది: దిగువ క్లోజ్ నుండి SPY 68.1% సంపాదించింది. మొత్తం సంక్షోభ డ్రాడౌన్ను తిరిగి పొందడానికి చాలా ఎక్కువ సమయం పట్టింది — అక్టోబర్ 2007 గరిష్ఠానికి తిరిగి మొదటి క్లోజ్ 2013-03-14 న వచ్చింది.
దిగువకు ముందుగా ఏదైనా సంకేతం ఇచ్చిందా?
టేప్పై ఏదీ మార్చి 9ని దాని చుట్టూ ఉన్న వారాల నుండి వేరు చేయలేదు — సెషన్ ప్రశాంతంగా ఉంది మరియు వాల్యూమ్ దాని స్వంత 20-రోజుల సరాసరి కంటే తక్కువగా నడిచింది. ఎప్పటికీ కట్ చేయబడకపోవడం ద్వారా దిగువ తర్వాత దిగువగా తేలింది: తర్వాతి పదహారు వారాల అత్యల్ప ట్రేడ్ కూడా మార్చి 9 క్లోజ్ కంటే పైనే ఉంది.
పైన ఉన్న ప్రతి ప్యానెల్ చరిత్రాత్మక టేప్పై నిల్వ చేయబడిన, వెర్షన్ చేయబడిన ప్రశ్న — ప్రతి కొలత చూడటానికి SQL ను విస్తరించండి. చదవడం కంటే ఈ రోజును అనుభవించాలనుకుంటున్నారా? ఇది Strasmore Labs ట్రేడింగ్ సిమ్యులేటర్లోని ఆడగలిగే దృశ్యాలలో ఒకటి.