Strasmore Research
Дослідження Matt ConnorВід Matt Connor · Оновлено 2026-07-24

Ринок 24 березня 2020 року розворот

Аналіз ринку 24 березня 2020 року: паніка та дефіцит готівки, пакети допомоги від Fed, охоплення секторів та відсутність повторних тестів мінімумів.

23 березня 2020 року Federal Reserve оголосила про безстрокову програму викупу активів — QE без встановленого ліміту — а також про нову для себе міру: створення механізмів для купівлі корпоративних облігацій. 24 березня 2020 року ринок відреагував на це: розпочалося ралі на фоні стимулів проти COVID, що стало одним із найбільших одноденних зростань фондового ринку США в історії та — як стало зрозуміло згодом — другим днем нового бичачого ринку. Сама точка мінімуму була зафіксована вдень перед оголошенням.

Обвал перед розворотом

Самий обвал описано на окремій сторінці; тут наведено дані, що його підтверджують — кожна торгова сесія від історичного максимуму до мінімуму, а також дохідність 10-річних Treasury у базисних пунктах:

ЗапитЦіна закриття SPY, просадка та доходність 10-річних Treasury — з 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

Від історичного максимуму ціни закриття у $338.31 на 2020-02-19, індекс SPY впав до $222.51 до 2020-03-23 — просадка склала -34.2%, при цьому кожна сесія падіння відображена у 24 рядках панелі.

Стовпець дохідності є ключовим показником. Протягом 2020-03-09 дохідність 10-річних облігацій впала з 156 базисних пунктів до тодішнього рекордного рівня 54 — це класичний перехід у захисні активи, коли капітал виходить з акцій у облігації. Потім цей патерн змінився: до 2020-03-18 дохідність зросла більш ніж удвічі до 118 базисних пунктів, тоді як просадка SPY поглибилася з -18.9% до -28.8%. Одночасне падіння акцій та Treasuries є ознакою примусових продажів — власники активів накопичують готівку, продаючи все, що має попит. До середини березня криза стосувалася механізмів кредитування, а не лише цін на акції.

Що насправді оголосив Fed — і що не спрацювало

Зниження ставок уже застосовувалося. Послідовність подій, кожна з яких відображена на панелі вище:

  • 2020-03-03 — екстрене зниження ставки на пів відсотка, перше зниження між засіданнями з 2008 року. SPY закрився на рівні $300.34, що на -11.2% нижче максимуму, і падіння тривало.
  • 15 березня, неділя — ставки знижено до нуля плюс програма викупу активів на $700 мільярдів. На наступній сесії, 2020-03-16, закрилися на -29.2% нижче лютневого максимуму — одна з найгірших одиночних сесій за весь період обвалу.
  • 23 березня, 8:00 ET — Fed зняв обмеження: викуп Treasuries та іпотечних цінних паперів триватиме «у необхідних обсягах», безстроково. Були додані PMCCF та SMCCF — перші в історії Fed механізми викупу корпоративних облігацій — та відновлений TALF для підтримки споживчого кредитування. Тимчасово SPY закрився на мінімумах ведмежого ринку того дня.
  • 24 березня — сесія наведено нижче. Протягом ночі Конгрес узгодив CARES Act на суму приблизно $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')

Після закриття 23 березня за ціною $222.51 — останнього закриття в ведмежому ринку — ETF SPY продемонстрував розрив у бік зростання на +5.4% і відкрився на рівні $234.42. Протягом перших хвилин торгів (09:31 ET) було зафіксовано мінімум сесії на рівні $233.8, після чого ціна не повернулася до цього значення: закриття на рівні $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 мільйонів. Середній за днем спад був викупленим, після чого сесія завершилася на максимумах при пікових обсягах.

Широке ралі чи вузьке?

Показник індексу може зростати лише завдяки кільком компаніям з величезною капіталізацією. Цього разу ситуація була іншою. Дванадцять фондів — три основні індексні трекери та дев'ять секторних фондів S&P — продемонстрували однакові результати за два дні закриття:

Запит24 березня 2020: індексні та секторні ETF — усе зростає, спочатку циклічні
Точний 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%) сектори — найбільш чутливі до економічних циклів сегменти ринку, які першими страждають від зупинки фінансування уряду. Трекер Dow DIA зріс на 11.3% — це зростання стало основою для заголовків про «найкращий день з 1933 року», що є характеристикою для тривалої історії цін Dow. Найменший приріст зафіксовано у класичних захисних секторах: споживчих товарах повсякденного попиту (XLP, +5.1%) та охороні здоров'я (XLV, +7.4%). QQQ (Nasdaq-100) показав приріст +7.7%, що менше за результат SPY (+9.5%). Загальне зростання ринку, очолюване циклічними секторами, протилежне за структурою вузькому зростанню через дефіцит акцій мега-капіталізації — головною ознакою дня стала широта ринку.

Наскільки це справді було історичним?

«Найбільший день з 1933 року» — така статистика Dow наведена у газетах того тижня. Ось що може підтвердити наш власний аналіз у межах доступних даних:

Запит24 березня 2020 у порівнянні з кожною хвилиною сесії SPY з 2003 року
Точний 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 денних прибутків від закриття до закриття. Показник +9.5% за 24 березня 2020 року займає #3 місце: рівно 2 сесій перевершили його (2008-10-13, 2008-10-28), і обидві припали на паніку жовтня 2008 року. Послідовність із трьох днів зустрічається ще рідше: триденне зростання на +17.5% від закриття 23 березня до закриття 26 березня є 0 більшим за будь-яке трисесійне зростання у вибірці. Серед усіх даних, які може перевірити цей архів, ніщо не зрівняється з цим сплеском.

Обсяги торгів свідчать про інше: 232 мільйонів акцій SPY склали 2.86× від середнього показника за минулий рік — і лише 1.12× від середнього показника за попередні 30 сесій. Порівняно з будь-яким звичайним історичним періодом, ця активність була надзвичайною; порівняно з тижнями обвалу, що передували цьому дню, це був лише ще один день у центрі шторму. Історичні події не завжди супроводжуються історичними обсягами.

Триденний сплеск

ЗапитЗакриття 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 роком, розраховане аналогічним чином: пік SPY на рівні 2007-10-09 не досягав нового максимуму за ціною закриття до 2013-03-14, через 1983 днів. Дві кризи, дві швидкості, один ринок, який за цей час змінив свій метаболізм.

Чому цей день є повчальним

Слід зробити три висновки. По-перше, основну роль відіграв розрив: значна частина денного зростання відбулася ще до відкриття ринку — кожен, хто чекав на вхід у межах регулярних торгових годин, переплачував протягом усього дня — механіка overnight gap проявилася у максимальному обсязі. По-друге, мінімум передував підтвердженню: закриття 23 березня було найнижчою точкою, яку можна було розпізнати лише після того, як такі торгові сесії, як сьогоднішня, не повернулися до цього рівня. По-третже, швидкість діє в обох напрямках: та сама ринкова структура, що стиснула падіння -34.2% у межах 24 рядків вище, стиснула початкове відновлення у три сесії. Швидкість є властивістю ринкової інфраструктури цієї епохи, а не результатом хороших чи поганих новин.

Скептики того тижня не були неправедними: охоплення ринку, різкий сплеск, ретест, якого так і не стало — кожен фактор, що відрізняє 24 березня від невдалих ралі, можна виміряти лише заднім числом. Різниця між ралі ведмежого ринку та новим бичачим ринком невидима в перший день, але стає очевидною протягом кількох місяців.

FAQ щодо ралі під час COVID

Що сталося 24 березня 2020 року?

Перша повноцінна торгова сесія після оголошення Fed про необмежене QE: SPY відкрився розривом на +5.4% і закрився на +9.5% — це 3 одноденне зростання за всі 5613 сесії, які охоплює наша хвилинна стрічка котирувань, поступаючись лише двом дням у жовтні 2008 року.

Що оголосив Fed 23 березня 2020 року?

Безстрокові закупівлі Treasury та іпотечних цінних паперів — «у необхідних обсягах» — а також PMCCF та SMCCF, його перші спеціальні механізми для купівлі корпоративних облігацій, та відновлений TALF для споживчого кредитування. Заява була опублікована о 8:00 за часом ET до відкриття ринку; SPY все одно закрився того дня на мінімумі ведмежого ринку.

Чи був 23 березня 2020 року дном COVID-краху?

Так, за ціною закриття: мінімальне значення закриття SPY на рівні $222.51 було зафіксоване 23 березня, через кілька годин після оголошення Fed. Цей рівень більше не повторювався — наступний мінімальний рівень закриття був зафіксований 2020-03-24, що на 9.5% вище дна.

Коли фондовий ринок повернув свої докоvidні максимуми?

SPY вперше закрився вище свого історичного максимуму від 19 лютого 2020 року на 2020-08-18, через 103 торгових сесій після дна — це був 181-денний цикл, порівняно з 1983 днями для аналогічного шляху під час краху 2008 року.

Чи можна було купити після новин і все одно отримати прибуток?

Відкриття відбулося з розривом на +5.4% перед початком регулярних торгів, і протягом дня ціна продовжувала зростати — кожна наступна точка входу коштувала дорожче за попереднє закриття, але все одно залишалася значно нижче рівня, на якому ринок перебував під час відновлення у серпні 2020 року.

Примітки до даних
  • Ціни закриття — це останні котирування регулярної сесії (9:30–16:00 ET) з хвилинної стрічки; вони можуть відрізнятися від офіційних аукціонних цін закриття на кілька центів.
  • Дати відновлення розраховані лише за ціною; показник повної прибутковості (з реінвестуванням дивідендів) за своєю структурою досягає відновлення раніше.
  • Дохідність 10-річних Treasury додається до щоденної серії Treasury на дати торгів; базисні пункти — це соті частки відсоткового пункту.
  • Вибірка на панелі рангів починається з 2003-09-10 — «з 2003 року» на цій сторінці означає саме цей період, а не всю зафіксовану історію ринку.

Кожна панель вище є збереженим запитом з версіонуванням по історичній стрічці котирувань — розгорніть SQL, щоб побачити кожен показник. Хочете відчути цей день на практиці, а не просто читати про нього? Це один із сценаріїв, доступних для відіграшу в торговому симуляторі Strasmore Labs.

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