2020 మార్చి 24: మార్కెట్ మలుపు తిరిగిన రోజు
2020 మార్చి 24, నిమిషం టేప్ నుండి ప్లే చేయబడింది: పతనం, నగదు పరుగు, భిన్నమైన ఫెడ్ ప్యాకేజీ, రంగ వెడల్పు, మరియు ఎప్పుడూ రాని రీటెస్ట్.
2020 మార్చి 23న ఫెడరల్ రిజర్వ్ ఓపెన్-ఎండెడ్ ఆస్తి కొనుగోళ్లను — ప్రకటించిన పరిమితి లేని QEని — ప్రకటించింది, అలాగే ఇంతకు ముందెన్నడూ చేయని ఒక పనిని కూడా చేసింది: కార్పొరేట్ బాండ్లను కొనుగోలు చేసే సౌకర్యాలను ఏర్పాటు చేసింది. 2020 మార్చి 24 మార్కెట్ సమాధానం: COVID స్టిములస్ ర్యాలీ, రికార్డులో ఉన్న అతిపెద్ద ఏక-దిన US ఈక్విటీ లాభాల్లో ఒకటి, మరియు — వెనుకటి దృష్టితో మాత్రమే కనిపించేది — కొత్త బుల్ మార్కెట్ రెండవ రోజు. ప్రకటన అందే ముందు మధ్యాహ్నం ముందే బాటమ్ ముగిసింది.
మలుపు ముందు పతనం
ఆ పతనానికి దాని సొంత పేజీ ఉంది; ఇక్కడ ఈ పేజీ నిలబడే ఆధారం ఉంది — అన్ని సెషన్లు ఆల్-టైమ్ హై నుండి అడుగుకి, 10-సంవత్సరాల ట్రెజరీ లాభదాయకతను బేసిస్ పాయింట్లలో పక్కన:
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన 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_date2020-02-19 నాటి $338.31 ఆల్-టైమ్-హై క్లోజ్ నుండి, SPY 2020-03-23 నాటికి $222.51కి పడిపోయింది — ఒక -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 ET — ఫెడ్ పరిమితిని తొలగించింది: ట్రెజరీలు మరియు హైపోథికేషన్-బ్యాక్డ్ సెక్యూరిటీల కొనుగోలు "అవసరమైన మేరకు" కొనసాగుతుందని, ఎటువంటి గడువు లేకుండా ప్రకటించింది. దీనికి అనుబంధంగా PMCCF మరియు SMCCF — ఫెడ్ చరిత్రలో మొట్టమొదటి కార్పొరేట్-బాండ్ కొనుగోలు సౌకర్యాలు — మరియు వినియోగదారు రుణానికి ఆధారంగా పునరుజ్జీవింపజేయబడిన TALF ఉన్నాయి. ఆ సాయంత్రం SPY ఇంకా ఎలుగెద్దు కనిష్టం వద్ద మూసుకుంది.
- మార్చి 24 — క్రింది సెషన్. రాత్రిపూట, కాంగ్రెస్ సుమారు $2 ట్రిలియన్ల CARES Act పై ఏకాభిప్రాయానికి వచ్చింది; ఇది మార్చి 27న సంతకం చేయబడింది, దిగువ మూడు రోజుల పేలుపు లోపల స్వీకరించబడింది.
రెండు రూపకల్పన తేడాలు మార్చి 23 ప్యాకేజీని దాని ముందు ప్రయత్నాల నుండి వేరుచేశాయి. స్థిర-పరిమాణ కార్యక్రమానికి ఒత్తిడిలో ఉన్న మార్కెట్ దాటి చూడగలిగే ఒక ముగింపు తేదీ ఉంటుంది; "అవసరమైన మేరకు" అనేది కాదు. మరియు కార్పొరేట్ సౌకర్యాలు క్రెడిట్ మార్కెట్లలో, ఇక్కడ ప్లంబింగ్ స్తంభించిపోయింది, ఒక పబ్లిక్ కొనుగోలుదారును నేరుగా ఉంచాయి. ఆ తేడాలే ముఖ్యమైనవా కాదా అనేది ఒక తీర్పు; టేప్ క్రమాన్ని నమోదు చేస్తుంది — రెండు తీవ్రతరాలు, కొనసాగుతున్న పతనం, మూడవ రూపకల్పన, ఆపై మలుపు.
ఒకే వరుసలో ఆ రోజు
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన 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 వద్ద తెరవబడి, ఆరంభ నిమిషాల్లోనే (09:31 ET) సెషన్ కనిష్ట $233.8 ను నమోదు చేసింది, ఆ తర్వాత ఆ స్థాయికి తిరిగి రాలేదు: $243.59 వద్ద ముగింపు రోజుకు +9.5%. మొదటి నిమిషంలోనే కనిష్టాన్ని నమోదు చేసే ర్యాలీ, కనిష్టంపై ముగిసే క్రాష్కు అద్దంలాంటి ప్రతిబింబం. అయితే, ఒకే వరుస ఆ మార్గాన్ని చదునుగా చూపిస్తుంది — క్రింది అర్ధగంట టేప్ ఆ సెషన్ భరించవలసి వచ్చిన మందగమనాన్ని చూపిస్తుంది.
సెషన్ ఆకృతి
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన 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 రంగ ఫండ్లు:
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన 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%), మరియు నాస్డాక్-100 యొక్క QQQ (+7.7%) SPY యొక్క +9.5% కంటే వెనుక ఉంది. చక్రీయ రంగాలు నేతృత్వంలో, అన్నీ పచ్చగా ఉన్న టేప్ — ఇరుకైన మెగా-క్యాప్ ఒత్తిడికి వ్యతిరేక ఆకారం — వెడల్పు ఆ రోజు యొక్క గుర్తింపు.
నిజంగా ఎంత చరిత్రాత్మకమైనది?
"1933 నుండి అతిపెద్ద రోజు" అనేది ఆ వారం వార్తాపత్రికల నుండి వచ్చిన డౌ గణాంకం. మా స్వంత టేప్ ధృవీకరించగలిగేది ఇక్కడ ఉంది, అది నిజంగా ఏమి కవర్ చేస్తుందో దానికి పరిధి పెట్టి:
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన 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 భయాందోళనలోపల. మూడు-రోజుల క్రమం ఇంకా అరుదైనది: మార్చి 23 క్లోజ్ నుండి మార్చి 26 క్లోజ్ వరకు ఉన్న +17.5% రన్కు నమూనాలో ఎక్కడైనా 0 పెద్ద మూడు-సెషన్ లాభాలు ఉన్నాయి. ఈ గిడ్డంగి తనిఖీ చేయగలిగే ప్రతిదట్టంలో, ఈ పేలుడుకు సమానమైనది ఏదీ లేదు.
వాల్యూమ్ నిశ్శబ్ద కథను చెబుతుంది: 232 మిలియన్ SPY షేర్లు ట్రెయిలింగ్-సంవత్సరం సగటుకు 2.86× ఉన్నాయి — మరియు మునుపటి 30 సెషన్ల సగటుకు కేవలం 1.12×. చరిత్ర యొక్క ఏదైనా సాధారణ విభాగంతో పోలిస్తే కార్యకలాపం అసాధారణమైనది; దానికి ముందు ఉన్న క్రాష్ వారాలతో పోలిస్తే, అది తుఫాను లోపల ఒక మామూలు రోజు మాత్రమే. చరిత్రాత్మక మలుపులు చరిత్రాత్మక వాల్యూమ్తో తమను తాము ప్రకటించుకోవు.
మూడు రోజుల పేలుడు
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన 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మలుపు వెంటనే తీవ్రమైంది: 24న +9.5%, 25న +1.3%, 26న +5.9% — ఇది వారాల కొద్దీ కొనసాగిన పతనాన్ని ఒకేసారి రద్దు చేసిన మూడు సెషన్ల వరుస, ఇంతకంటే పెద్దదైనది ఈ నమూనాలో ఎక్కడా కనిపించలేదు. మార్చి 2020 లోని క్రమం మార్చి 2009 తో ఉద్దేశపూర్వకంగా సారూప్యం కలిగి ఉంది: రెండింటిలోనూ, నిర్ణయాత్మక విధాన ప్రతిస్పందన కనిష్ఠానికి దగ్గర్లో వచ్చింది, మొదటి ర్యాలీ దశ తీవ్రంగా ఉంది, గరిష్ఠ అవకాశం ఉన్న రోజు — ఆ ఉదయం — మరో ఎలుగుబంటి మార్కెట్ బౌన్స్ను పోలి ఉంది.
ర్యాలీ నిలబడిందా?
నిజ సమయంలో "ఎలుగుబంటి-మార్కెట్ బౌన్స్" అన్నది ఏకాభిప్రాయ విశ్లేషణ, మరియు అనుమానవాదులకు తమ స్వంత ఆధారాలు ఉన్నాయి: ఆ రోజుకు పదకొండు రోజుల ముందు టేప్ ఇప్పటికే దాదాపు ఇంత పరిమాణంలో ర్యాలీని ఇచ్చింది — 2020-03-12 న $248.1 నుండి 2020-03-13 న $270.93 వరకు — మరియు దాని తర్వాతి సెషన్ $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 పోలిక: SPY యొక్క 2007-10-09 గరిష్టం కొత్త ముగింపు గరిష్టాన్ని 2013-03-14 వరకు చూడలేదు, 1983 రోజుల తర్వాత. రెండు సంక్షోభాలు, రెండు వేగాలు, మధ్యలో తన జీవక్రియను మార్చుకున్న ఒక మార్కెట్.
ఈ రోజు నేర్పించేది
మూడు రసీదులు గుర్తుంచుకోదగ్గవి. మొదటిది, అంతరం పనిచేసింది: రోజంతటి లాభంలో ఎక్కువ భాగం మార్కెట్ తెరవడానికి ముందే ఉంది — క్రమపద్ధతిలో తెరిచే సమయం కోసం ఎదురుచూసిన వారు రోజంతా ఎక్కువ ధర చెల్లించారు — ఓవర్నైట్ అంతరం యంత్రాంగం గరిష్ట వ్యాప్తిలో ఉన్నది. రెండవది, దిగువన నిర్ధారణకు ముందే వచ్చింది: మార్చి 23 ముగింపు కనిష్ఠం, ఇలాంటి సెషన్లు ఆ స్థాయిని తిరిగి తాకడానికి నిరాకరించిన తర్వాత మాత్రమే ఇది కనిపించింది. మూడవది, వేగం రెండు వైపులా పనిచేస్తుంది: పై 24 అడ్డు వరుసలలో -34.2% నష్టాన్ని కుదించిన అదే మార్కెట్ నిర్మాణం ప్రాథమిక రికవరీని మూడు సెషన్లలో కుదించింది. వేగం మంచి వార్తల వల్లా లేదా చెడు వార్తల వల్లా కాదు, ఆ కాలపు మార్కెట్ వ్యవస్థ లక్షణం.
ఆ వారంలో సందేహవాదులు మూర్ఖులు కాదు: వెడల్పు, పేలుపు, రీటెస్ట్ రాకపోవడం — మార్చి 24ను విఫల ర్యాలీల నుండి వేరు చేసే ప్రతి రసీదు ఒక్కటే తర్వాతి దృష్టిలో మాత్రమే కొలవదగినది. బేర్-మార్కెట్ ర్యాలీకి, కొత్త బుల్ మార్కెట్కి మధ్య తేడా మొదటి రోజున కనిపించదు, కొన్ని నెలల్లో తేలికగా కనిపిస్తుంది.
కోవిడ్ ర్యాలీ ఎఫ్ఏక్యూ
2020 మార్చి 24న ఏం జరిగింది?
ఫెడ్ యొక్క అపరిమిత QE ప్రకటన తర్వాత మొదటి పూర్తి సెషన్: SPY ఓపెన్లో +5.4% గ్యాప్ అప్ అయింది మరియు +9.5% వద్ద ముగిసింది — మా మినిట్ టేప్ కవర్ చేస్తున్న 5613 సెషన్లలో #3 సింగిల్-డే గెయిన్, అక్టోబర్ 2008లోని రెండు రోజుల తర్వాత మాత్రమే.
2020 మార్చి 23న ఫెడ్ ఏం ప్రకటించింది?
ట్రెజరీ మరియు మార్గేజ్-బ్యాక్డ్ సెక్యూరిటీల యొక్క ఓపెన్-ఎండెడ్ కొనుగోళ్లు — "అవసరమైన మొత్తాలలో" — ప్లస్ PMCCF మరియు SMCCF, కార్పొరేట్ బాండ్లు కొనడానికి దాని మొట్టమొదటి సౌకర్యాలు, మరియు వినియోగదారు క్రెడిట్ కోసం పునరుజ్జీవించిన TALF. ప్రకటన ఓపెన్కు ముందు ఉదయం 8:00 గంటలకు ETకి వెలువడింది; SPY ఆ రోజు ఇంకా దాని బేర్-మార్కెట్ కనిష్ట వద్ద ముగిసింది.
2020 మార్చి 23 కోవిడ్ క్రాష్ దిగువన ఉందా?
అవును, ముగింపు ధర ప్రకారం: SPY యొక్క తక్కువ ముగింపు $222.51 మార్చి 23న, ఫెడ్ ప్రకటన జరిగిన కొన్ని గంటల తర్వాత ముద్రించబడింది. ఇది ఎప్పుడూ తిరిగి సందర్శించబడలేదు — తర్వాత అత్యల్ప ముగింపు 2020-03-24న వచ్చింది, దిగువకు 9.5% పైన.
స్టాక్ మార్కెట్ దాని కోవిడ్-పూర్వ గరిష్టాన్ని ఎప్పుడు పునరుద్ధరించుకుంది?
SPY మొదటిసారి దాని ఫిబ్రవరి 19, 2020 ఆల్-టైమ్-హై ముగింపు కంటే ఎక్కువగా 2020-08-18న ముగిసింది, దిగువ తర్వాత 103 ట్రేడింగ్ సెషన్లు — ఒక 181-రోజుల రౌండ్ ట్రిప్, 2008 క్రాష్ సమాన ప్రయాణం కోసం 1983 రోజులకు వ్యతిరేకంగా.
వార్త తర్వాత మీరు కొనుగోలు చేసి ఇంకా బాగా చేయగలరా?
రెగ్యులర్ ట్రేడింగ్ ప్రారంభానికి ముందు ఓపెన్ +5.4% గ్యాప్ అప్ అయింది, మరియు రోజు ఎగబాకుతూనే ఉంది — ప్రతి తర్వాతి ఎంట్రీ మునుపటి ముగింపు కంటే ఎక్కువ ఖర్చు అయింది, మరియు ఇంకా ఆగస్టు 2020 పునరుద్ధరణ వద్ద మార్కెట్ ఎక్కడ ఉందో అక్కడికి చాలా దిగువన ఉంది.
డేటా నోట్స్
- ముగింపులు రెగ్యులర్-సెషన్ (ఉదయం 9:30-సాయంత్రం 4:00 ET) మినిట్ టేప్ నుండి చివరి ప్రింట్లు; అవి అధికారిక వేలం ముగింపుల నుండి కొన్ని సెంట్ల వ్యత్యాసంతో ఉండవచ్చు.
- పునరుద్ధరణ తేదీలు ధర-మాత్రమే; మొత్తం-రిటర్న్ కొలత (డివిడెండ్లు పునీకరించబడతాయి) నిర్మాణం ప్రకారం త్వరగా పునరుద్ధరిస్తుంది.
- 10-సంవత్సరాల యీల్డ్ ట్రేడింగ్ తేదీలపై ట్రెజరీ యొక్క రోజువారీ సిరీస్లో చేరుతుంది; బేసిస్ పాయింట్లు శాతం బిందువు యొక్క వందవ వంతులు.
- ర్యాంక్ ప్యానెల్ యొక్క నమూనా 2003-09-10 ప్రారంభమవుతుంది — ఈ పేజీలో "2003 నుండి" అంటే ఆ విండో, మొత్తం రికార్డ్ చేయబడిన మార్కెట్ చరిత్ర కాదు.
పైన ఉన్న ప్రతి ప్యానెల్ చారిత్రాత్మక టేప్ పై నిల్వ చేయబడిన, వెర్షన్ చేయబడిన ప్రశ్న — ప్రతి కొలతను చూడటానికి SQLని విస్తరించండి. చదవడం బదులు ఈ రోజును అనుభవించాలనుకుంటున్నారా? ఇది Strasmore Labs ట్రేడింగ్ సిమ్యులేటర్లో ఆడగలిగే దృశ్యాలలో ఒకటి.