Strasmore Research
Uchunguzi wa kina Matt ConnorNa Matt Connor · Imeboreshwa 2026-07-25

Machi 24, 2020 siku soko lililogeuka

Machi 24, 2020 kutoka kwenye kanda ya dakika: ajali na mbio ya pesa taslimu, kifurushi cha Fed kilichotofautiana, upana wa sekta, na jaribio la kurudia linaloonekana ambalo halikutokea.

Tarehe Machi 23, 2020, Federal Reserve ilitangaza ununuzi wa dhana bila ukomo — QE bila kikomo kilichotajwa — pamoja na kitu ambacho hakuwahi kufanya kabla: vituo cha kununua madeni ya makampuni. Machi 24, 2020 ilikuwa jibu la soko: rally ya msukumo wa COVID, mojawapo ya ongezeko kubwa zaidi la hisa za Marekani katika siku moja kati ya zilizorekodiwa, na — kinachoonekana tu kwa kuangalia nyuma — siku ya pili ya soko jipya la ng'ombe. Chini yenyewe ilikuwa imefungwa alasiri kabla tangazo kufika.

Ajali kabla ya mwelekeo

Ajali yenyewe ina ukurasa wake; hapa hapa ni ushahidi ambao huu unategemea — kila kipindi kutoka kilele cha wakati wote hadi chini, pamoja na yield ya Treasury ya miaka kumi kwa basis points:

UlizaSPY close ya kila siku, drawdown, na yield ya miaka 10 — Feb 19 hadi Mar 23, 2020
SQL halisi nyuma ya kila namba
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

Kutoka kwenye kufungwa kwa kilele cha wakati wote cha $338.31 tarehe 2020-02-19, SPY ilishuka hadi $222.51 tarehe 2020-03-23 — kupungua kwa -34.2%, huku kila kipindi cha mteremko kikiwa ndani ya safu 24 za paneli.

Safu ya yield ndio dalili. Kupitia 2020-03-09 yield ya miaka kumi iliporomoka kutoka basis points 156 hadi rekodi ya wakati huo 54 — mwelekeo wa kawaida wa kukimbilia usalama, pesa ikiondoka kwenye hisa na kuingia kwenye bonds. Kisha muundo ulivunjika: tarehe 2020-03-18 yield iliongezeka zaidi ya mara mbili hadi basis points 118 huku kupungua kwa SPY kikizidi kutoka -18.9% hadi -28.8%. Hisa na Treasury kuanguka pamoja ndio saini ya uuzaji wa kulazimishwa — wamiliki wakikusanya pesa taslimu kwa kuuza chochote ambacho bado kina bei. Mwishoni mwa Machi tatizo lilikuwa ni miundombinu ya mikopo yenyewe, si bei ya hisa.

Fed ilitangaza nini kimsingi — na kilichokuwa hakijafanya kazi

Ukataji wa viwango vya riba ulishajaribiwa. Mfuatano wa tarehe, kila ingizo linawezakusomwa kwenye paneli hapo juu:

  • 2020-03-03 — ukataji wa dharura wa nusu pointi, ukataji wa kwanza nje ya mkutano tangu 2008. SPY ilifungwa kwa $300.34, -11.2% chini ya kilele, na kushuka kukaendelea.
  • Machi 15, Jumapili — viwango viliyoshushwa hadi sufuru pamoja na mpango wa ununuzi wa mali wa $700 billion. Kikao kijacho, 2020-03-16, kilifungwa -29.2% chini ya kilele cha Februari — miongoni mwa vikao vibaya zaidi vya siku moja katika ajali nzima.
  • Machi 23, saa 8:00 asubuhi ET — Fed iliondoa dari: ununuzi wa Treasuries na dhamana zinazohakikishwa na mikopo utaendelea "kwa kiasi kinachohitajika," bila kikomo. Vilikuwapo PMCCF na SMCCF — vituo vya kwanza vya Fed vya kununua dhamana za makampuni — na TALF iliyofufuzwa ikikipa tegemezi mikopo ya watumiaji. SPY bado ilifungwa kwa chini ya dubu siku hiyo alasiri.
  • Machi 24 — kikao kilichopo hapo chini. Usiku uliofuata, Congress ilikubaliana juu ya CARES Act ya takriban $2 trillion; ilitiwa saini Machi 27, ndani ya mlipuko wa siku tatu uliothibitishwa zaidi chini.

Tofauti mbili za muundo zilitenganisha kifurushi cha Machi 23 na majaribio yaliyotangulia. Mpango wa ukubwa maalum una tarehe ya mwisho ambayo soko lenye shida linaweza kuiona; "kwa kiasi kinachohitajika" haina. Na vituo vya makampuni viliweka mnunuzi wa umma moja kwa moja ndani ya soko la mikopo ambapo mabomba yalikuwa yamejaa. Kama tofauti hizo ndizo zilizokuwa na umuhimu ni uamuzi wa mtu binafsi; rekodi inaonyesha mfuatano — nyongeza mbili, kushuka kukaendelea, muundo wa tatu, kisha mgeuko.

Siku hiyo, kwa safu moja

UlizaSPY Machi 24, 2020 — mgeuko, umeandikwa
SQL halisi nyuma ya kila namba
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')

Kutoka kufungwa kwa tarehe Machi 23 kwa dola 222.51 — kufungwa kwa mwisho kwa soko la kushuka — SPY ilifanya nafasi ya +5.4% kufungua kwa dola 234.42, ilirekodi chini yake ya kipindi cha dola 233.8 katika dakika za kwanza za kufungua (09:31 ET), na haikurudi kamwe kwa hiyo: kufungwa kwa dola 243.59 kilikuwa +9.5% kwa siku hiyo. Kupanda ambapo bei ya chini inarekodiwa katika dakika ya kwanza ni kioo cha kuanguka ambako hufungwa kwa bei yake ya chini. Hata hivyo, safu moja huibapa njia — kanda ya nusu saa hapa chini inaonyesha mabadiliko ya chini ambayo kipindi hicho kilipaswa kuyashughulikia.

Muundo wa kikao

UlizaSPY kwa nusu saa — kikao cha kawaida cha Machi 24, 2020
SQL halisi nyuma ya kila namba
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

Paneli ni ya wazi: njia ilipinda. Chini ya $233.8 ilitokea katika dakika ya kwanza ya ufunguzi na haikurudiwa tena — sehemu hiyo ya hadithi ya mwelekeo mmoja ni ya kweli. Lakini baada ya kufikia $242.24 kufikia kipimo cha saa za mchana, bei ilirudi nyuma kwa masaa mawili — kipimo cha 13:30 kiliisha kwa $237.25, kipimo cha 14:00 kiliandika chini ya kirefu zaidi ya mchana, $235.05 — kipindi ambacho siku ingeweza kuwa mmoja wa kurudi chini bila mafanikio. Badala yake, kurudi nyuka kuliishia juu sana kuliko chini ya ufunguzi, na nusu saa ya mwisho ilitoa kufungwa kwa kipimo cha juu zaidi cha kikao, $243.59, kwa hisa 34.7 milioni — kipimo kizito zaidi cha siku ya hisa 232.4 milioni, hata juu ya milioni 27.3 za ufunguzi. Kushuka kwa mchana kunapopata wanunuzi, kisha kufunga juu kwa bei za juu katika kiwango kikubwa zaidi cha biashara.

Kuongezeka kwa bei kwa pana, au kwa upana mdogo?

Faharasa inaweza kuvutwa juu na kampuni chache zenye ukubwa wa soko kubwa. Hilo si hili lililotokea. Mishahara kumi na mbili — watrackaji watatu wakuu wa faharasa pamoja na mishahara tisa ya sekta za S&P — kwenye mifungu miwili sawa ya kufunga:

UlizaMachi 24, 2020 katika index na ETFs za sekta — vyote vimepanda, cyclicals kwanza
SQL halisi nyuma ya kila namba
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

Yote 12 yalifunga juu. Nishati (XLE) iliongoza kwa +16.4%, ikifuatiwa karibu na viwanda (XLI, +12.8%) na fedha (XLF, +12.7%) — maeneo yanayohisi zaidi mabadiliko ya kiuchumi, ambayo kufungwa kwa serikali kunatishia kwanza. Dow tracker DIA ilipata faida ya 11.3% — mwendo unaowajibu makala ya "siku bora tangu 1933" ya wiki hiyo, sifa inayomilikiwa na historia ndefu ya bei ya Dow. Faida ndogo zilipatikana katika sekta za kawaida za ulinzi, bidhaa za watumiaji (XLP, +5.1%) na afya (XLV, +7.4%), na QQQ ya Nasdaq-100 (+7.7%) ilifuata nyuma ya +9.5% ya SPY. Soko linaloongozwa na sekta za mzunguko, ambalo kila kitu kimeongezeka, ni kinyume cha mkazo wa upana mdogo wa kampuni zenye ukubwa wa soko kubwa — upana ulikuwa saini ya siku hiyo.

Ni kihistoria kiasi gani, kweli?

"Siku kubwa zaidi tangu 1933" ni takwimu ya Dow kutoka magazeti ya wiki hiyo. Hapa kunaile inayothibitishwa na data yetu wenyewe, ndani ya upeo wake halisi:

UlizaMachi 24, 2020 ikilinganishwa na kila kikao cha SPY kwenye rekodi ya dakika
SQL halisi nyuma ya kila namba
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

Tangu 2003-09-10 — kipindi cha kwanza cha data yetu ya dakika — SPY imechapisha 5613 matokeo ya kila siku kutoka kufungwa hadi kufungwa. Ya tarehe 24 Machi 2020 +9.5% inashika nafasi ya #3: kipindi cha 2 kimezidi hayo (2008-10-13, 2008-10-28), vyote vikitokea ndani ya mshtuko wa Oktoba 2008. Mfuatano wa siku tatu ni nadra zaidi: mpito wa +17.5% kutoka kufungwa kwa tarehe 23 Machi hadi kufungwa kwa tarehe 26 Machi una 0 nyongeza kubwa zaidi za kipindi cha siku tatu popote kwenye sampuli. Ndani ya kila kitu ambacho hifadhi hii inaweza kukagua, hakuna chochote kinacholingana na mlipuko huo.

Mlengo wa biashara unaonyesha hadithi tulivu: 232 milioni hisa za SPY ilikuwa 2.86× wastani wa mwaka uliotangulia — na 1.12× tu ya wastani wa kipindi cha siku 30 kilichotangulia. Ikilinganishwa na kipindi chochote cha kawaida cha historia, shughuli ilikuwa ya kipekee; ikilinganishwa na wiki za kuanguka zilizotangulia, ilikuwa ni siku ya kawaida tu ndani ya dhoruba. Mabadiliko ya kihistoria hayajitangazi kwa mlengo wa biashara wa kihistoria.

Mlipuko wa siku tatu

UlizaFunguo za SPY, Machi 23-26, 2020 — mlipuko wa siku tatu
SQL halisi nyuma ya kila namba
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

Mgeuko ulijitokeza papo hapo: +9.5% tarehe 24, +1.3% tarehe 25, +5.9% tarehe 26 — mfuatano wa vikao vitatu uliofuta wiki za kushuka kwa kasi, bila kipimo kikubwa zaidi chochote kwenye sampuli hapo juu. Mpangilio wa Machi 2020 unaendana kwa makusudi na Machi 2009: katika zote mbili, jibu la sera la uamuzi liliwasili karibu na chini, hatua ya kwanza ya kufufuka ilikuwa ya ukali, na siku ya fursa kubwa zaidi ilionekana — asubuhi hiyo — isiyotofautishwa na kufufuka tena kwa soko duni.

Je, kupanda kushikilia?

Kwa wakati halisi, "kurudi kupanda kwa soko duni" ndilo tafsiri iliyokubalika, na wakosoaji walikuwa na ushahidi wao wenyewe: siku kumi na moja kabla, soko tayari lilikuwa limeonyesha kupanda karibu kwa ukubwa huu — kutoka $248.1 tarehe 2020-03-12 hadi $270.93 tarehe 2020-03-13 — na siku iliyofuata baada ya hilo ilifunga katika $239.41, siku mbaya zaidi ya kutoroka kote. Siku moja nzuri haikuthibitisha chochote. Kinachotofautisha Machi 24 ni kilichofuata:

UlizaIlishikilia? Jaribio la upya ambalo halikutokea, na saa mbili za kurejesha
SQL halisi nyuma ya kila namba
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

Jaribio la kushuka tena halikutokea. Baada ya Machi 23, fungasho la chini kabisa SPY lililoandika kamwe lilikuwa $243.59 — tarehe 2020-03-24, siku ya kupanda kwa msukumo yenyewe. Soko halikufunga tena ndani ya 9.5% ya chini. Kilele cha kabla ya COVID cha $338.31 kilirudishwa tarehe 2020-08-18 — kipindi cha 103 cha biashara baada ya chini, safari ya kurudi ya siku 181 kutoka kilele cha juu kabisa hadi kilele cha juu kabisa. Linganisho la 2008, lililokokotolewa kwa njia ile ile: kilele cha 2007-10-09 cha SPY hakikuona fungasho jipya la juu hadi 2013-03-14, siku 1983 baadaye. Matatizo mawili, nyeshati mbili, soko moja lililobadilisha kimetaboliki yake kati ya hayo.

What this day teaches

Three receipts worth internalizing. First, the gap did the work: much of the day's gain existed before the open — anyone waiting for a regular-hours entry paid up all day — the overnight gap mechanics at maximum amplitude. Second, the bottom preceded the confirmation: March 23's close was the low, visible as such only after sessions like this one refused to revisit it. Third, velocity cuts both ways: the same market structure that compressed a -34.2% drawdown into the 24 rows above compressed the initial recovery into three sessions. Speed is a property of the era's market plumbing, not of good news or bad.

The skeptics of that week were not fools: the breadth, the burst, the retest that never came — every receipt separating March 24 from the failed rallies is measurable only in hindsight. The difference between a bear-market rally and a new bull market is invisible on day one and unmistakable within months.

Maswali ya mara kwa mara kuhusu kurudi kwa soko baada ya COVID

Nini kilichotokea Machi 24, 2020?

Kikao cha kwanza kamili baada ya tangazo la Fed kuhusu QE isiyo na kikomo: SPY ilianza kwa kupanda +5.4% na ilifunga kwa +9.5% — hili ni #3 la kupanda kwa siku moja katika kipindi cha 5613 siku ambazo data zetu za dakika zinashughulikia, likiwa nyuma ya siku mbili tu za Oktoba 2008.

Fed ilitangaza nini Machi 23, 2020?

Uununaji wa Treasury na dhamana zinazotegemea mortgage bila mpango maalum — "kwa kiasi kinachohitajika" — pamoja na PMCCF na SMCCF, ambayo ni vituo vyake vya kwanza kabisa vya kununua madeni ya mashirika, na TALF iliyofufuliwa kwa ajili ya mikopo ya watumiaji. Tamko hilo lilitolewa saa 8:00 asubuhi ET, kabla ya soko kufungua; SPY bado ilifunga siku hiyo kwa kiwango cha chini kabla cha soko la dubu.

Je, Machi 23, 2020 ilikuwa chini kabisa ya kushuka kwa soko kutokana na COVID?

Ndiyo, kwa bei ya kufungia: kufungia kwa chini kabisa cha SPY cha $222.51 kilirekodiwa Machi 23, masaa machache baada ya tangazo la Fed. Haikurudiwi tena — kufungia kwa chini kabisa baada ya hapo kilikuja 2020-03-24, ambacho kilikuwa 9.5% juu ya chini hilo.

Soko la hisa lini lilirejesha kilele chake cha kabla ya COVID?

SPY ilifunga kwa mara ya kwanza juu ya kilele chake cha wakati wote cha Februari 19, 2020 tarehe 2020-08-18, baada ya vipindi 103 vya biashara tangu chini — safari ya kurudi ya siku 181, ikilinganishwa na siku 1983 kwa safari sawa ya krashu ya 2008.

Je, ungemiliki kununua baada ya habari na bado kupata matokeo mazuri?

Soko lilianza kwa kupanda +5.4% kabla ya biashara ya kawaida kuanza, na siku hiyo iliendelea kupanda — kuingia katika soko wakati wowote baadaye kuligharimu zaidi kuliko bei ya kufungia ya siku iliyotangulia, na bado kilikuwa mbali sana na kiwango ambacho soko lilikuwa wakati wa kurudi kwa Agosti 2020.

Maelezo ya data
  • Bei za kufungia ni za mwisho za kikao cha kawaida (9:30 asubuhi-4:00 jioni ET) kutoka kwenye data za dakika; zinaweza kutofautiana na bei za kufungia rasmi kwa senti chache.
  • Tarehe za kurudi zinaangalia bei tu; kipimo cha mapato kamili (mtaji wa dividend unapowekezwa tena) hurejesha mapema kwa asili yake.
  • 10-year yield inajiunga na mfululizo wa kila siku wa Treasury katika siku za biashara; basis points ni sehemu mia ya asilimia moja.
  • Sampuli ya jopo la nafasi inaanza 2003-09-10 — "tangu 2003" kwenye ukurasa huu inamaanisha kipindi hicho, sio historia yote iliyoerekodiwa ya soko.

Kila japo hapo juu ni swali lililohifadhiwa na lenye tovo juu ya data za kihistoria — panua SQL ili kuona kila kipimo. Unataka kuhisi siku hii badala ya kuisoma? Ni mojawapo ya mazingira yanayoweza kucheza katika kiigizo cha biashara cha Strasmore Labs.

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