Strasmore Research
Аналитика Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-03

Фондовый рынок США двадцать четвертого февраля

Двадцать четвертого февраля две тысячи двадцать второго года рынок США показал резкий разворот после начала конфликта. Изучите динамику индексов, нефти, золота и облигаций в этот день.

Ранним утром двадцать четвёртого февраля две тысячи двадцать второго года Россия начала полномасштабное вторжение в Украину, и фондовый рынок США провёл одну из самых изучаемых торговых сессий десятилетия. Фьючерсы на индексы резко упали в ночные часы, ETF на индекс Nasdaq-100 QQQ открылся с понижением на -3.2%, а закрылся с результатом +3.4%. На этой странице представлены все данные по данному событию: поминутный разворот рынка, динамика S&P 500 и Dow, движение цен на нефть, золото, акции оборонных компаний, казначейские облигации и волатильность, а также обзор последующих недель. Каждое число получено из сохранённого запроса; разверните любую панель для просмотра SQL.

Перед открытием: как развивались события ночью

Вторжение не стало неожиданностью. В конце две тысячи двадцать первого и начале две тысячи двадцать второго года Россия сосредоточила войска у границ Украины; по оценкам западных стран, их численность значительно превышала сто тысяч человек, и рынки закладывали этот риск в котировки на протяжении нескольких недель. В понедельник, двадцать первого февраля, Москва признала две самопровозглашенные сепаратистские республики на востоке Украины. Американские рынки были закрыты в связи с празднованием Дня Вашингтона, поэтому первой сессией, отреагировавшей на эти новости, стал вторник, двадцать второе февраля, завершившийся снижением. В тот же вторник был введен первый пакет западных санкций, а Германия приостановила сертификацию газопровода «Северный поток — 2».

Затем, незадолго до шести утра по московскому времени в четверг, двадцать четвертого февраля — около десяти вечера в среду по нью-йоркскому времени — президент России объявил о начале операции, и в течение часа поступили сообщения о взрывах в украинских городах. Фьючерсы на американские индексы, торгующиеся в ночное время, немедленно начали падение. К рассвету единственным открытым вопросом оставалось то, насколько ниже уровня закрытия среды пройдут сделки на открывающем аукционе в девять тридцать утра.

День в одной строке

В одной строке представлены все данные: цена закрытия предыдущего дня, гэп, минимум, максимум, цена закрытия и объем торгов:

ЗапросQQQ, 24 февраля 2022 г.: разворот в день начала вторжения
Закрытие пред.Открытие RTHГэп (%)Low RTHLow (ET)High RTHЗакрытие RTHИзменение за день (%)Low к пред. (%)От min до закрытия (%)От закрытия до max (%)Открытие над low (%)Объем (млн)Минутные бары RTH
329.41318.84-3.2318.2609:30341.04340.653.4-3.470.110.18128390
Точный 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 = 'QQQ'
          AND window_start >= toDateTime('2022-02-23 00:00:00') AND window_start < toDateTime('2022-02-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(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS trough_to_close_pct,
    round((maxIf(toFloat64(high), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / toFloat64(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) - 1) * 100, 2) AS close_to_high_pct,
    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)) / minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 2) AS open_above_low_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 = 'QQQ'
  AND window_start >= toDateTime('2022-02-24 04:00:00') AND window_start < toDateTime('2022-02-24 23:59:00')
Запустите сами

Результат, который стоит проанализировать: внутридневной минимум в $318.26 был зафиксирован в 09:30 по восточному времени, на первой минуте торгов, что на -3.4% ниже цены закрытия предыдущего дня. После этой первой сделки QQQ рос в течение шести с половиной часов и завершил сессию на отметке $340.65: +3.4% за день, показав размах колебаний от минимума до закрытия в 7% при объеме торгов в 128 миллиона акций. Закрытие не было вялым: цена остановилась всего на 0.11% ниже дневного максимума в $341.04, что означает, что день завершился практически на пике. Любой, кто продал на первой минуте торгов, сделал это в пределах 0.18% от абсолютного минимума сессии; фактическая минимальная цена была зафиксирована через несколько мгновений после открытия, а не во время самого аукциона (цена аукциона составила $318.84; минимум — $318.26).

Разворот, по интервалам

Тридцатиминутные интервалы показывают динамику подъема:

ЗапросQQQ по 30-минутным интервалам: основная торговая сессия 24 февраля 2022 г.
Время (ET)Закрытие интервалаLow интервалаОбъем (млн)
09:30325.41318.2618.6
10:00326.04323.1113.8
10:30328.14324.69.5
11:00329.12327.38
11:30330.29327.66.1
12:00328.03326.936
12:30328.18327.164.7
13:00328.8327.765.1
13:30331.72328.777.6
14:00333.3330.77.6
14:30335.94333.298.1
15:00336.89335.487.3
15:30340.65336.8215
Точный 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 = 'QQQ'
  AND window_start >= toDateTime('2022-02-24 04:00:00') AND window_start < toDateTime('2022-02-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
Запустите сами

Ступенчатый рост не был идеально ровным: интервал 12:00 ET закрылся на уровне $328.03, ниже закрытия 11:30 на отметке $330.29. Однако направление движения не менялось, и последний интервал закрылся на уровне $340.65, что стало максимумом дня. Объем торгов повторил стандартную U-образную форму: 18.6 миллиона акций в первые полчаса и 15 миллиона в последние, против 4.7 миллиона в обеденное время. Это зеркальное отражение нисходящей лестницы две тысячи одиннадцатого года. Подобные сессии доказывают, почему утверждения о том, что «рынок упал на новостях о вторжении», вводят в заблуждение: фьючерсы упали ночью, а спот-сессия начала расти с первой минуты. То, какую динамику увидел инвестор, зависело исключительно от времени исполнения ордеров — это тема, которую ночные гэпы позволяют оценить в более спокойные недели.

Не только Nasdaq: разворот по всему рынку

История с одним индексом оставила бы открытым очевидный вопрос: была ли это особенность акций роста или разворот всего рынка? В приведенной ниже таблице одиннадцать тикеров приведены к единому знаменателю: три основных индексных ETF, а также активы, к которым обращаются при геополитических шоках: энергетика, золото, долгосрочные казначейские облигации, ETF на волатильность и четыре оборонных подрядчика.

ЗапросОдиннадцать тикеров, 24 февраля 2022 г.: гэп, внутридневные экстремумы, закрытие (% к предыдущему закрытию)
tickerЗакрытие пред.Гэп (%)Low к пред. (%)High к пред. (%)Изменение за день (%)
QQQ329.41-3.2-3.43.53.4
SPY421.97-2.6-2.71.61.5
DIA331.44-2.6-2.60.40.3
XLE67.642.1-3.42.2-0.9
GLD178.282.4-1.72.4-0.6
TLT136.621.8-0.320.2
VIXY20.1711.1-3.811.2-3
LMT389.142.3-0.42.51.7
NOC386.12.514.42.4
RTX92.270.8-3.22.62.1
GD216.250.2-2.21.21.1
Точный SQL-код для каждого числа
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round((rth_open / prior_close - 1) * 100, 1) AS gap_pct,
    round((rth_low / prior_close - 1) * 100, 1) AS low_vs_prior_pct,
    round((rth_high / prior_close - 1) * 100, 1) AS high_vs_prior_pct,
    round((rth_close / prior_close - 1) * 100, 1) AS day_change_pct
FROM (
    SELECT
        ticker,
        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('2022-02-23')) AS prior_close,
        argMinIf(toFloat64(open), 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('2022-02-24')) AS rth_open,
        minIf(toFloat64(low), (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('2022-02-24')) AS rth_low,
        maxIf(toFloat64(high), (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('2022-02-24')) AS rth_high,
        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('2022-02-24')) AS rth_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('QQQ', 'SPY', 'DIA', 'XLE', 'GLD', 'TLT', 'VIXY', 'LMT', 'NOC', 'RTX', 'GD')
      AND window_start >= toDateTime('2022-02-23 00:00:00') AND window_start < toDateTime('2022-02-24 23:59:00')
    GROUP BY ticker
)
ORDER BY indexOf(['QQQ', 'SPY', 'DIA', 'XLE', 'GLD', 'TLT', 'VIXY', 'LMT', 'NOC', 'RTX', 'GD'], ticker)
Запустите сами

Разворот произошел по всему рынку, но его масштаб не был прямо пропорционален глубине утреннего гэпа: QQQ открылся с гэпом -3.2% и закрылся на уровне +3.4%. SPY и DIA открылись с почти таким же гэпом, -2.6% и -2.6% соответственно, однако SPY закрылся на +1.5%, в то время как DIA показал лишь +0.3%, едва выйдя в зеленую зону. Индекс с высокой долей акций роста развернулся сильнее всего; промышленный Dow — слабее всего. Разницу между SPY и DIA определяет состав, а не размер гэпа.

Куда ушли деньги: нефть, золото, оборонный сектор, волатильность

Теперь рассмотрим нижние строки той же панели — так называемую «военную сделку». Энергетический сектор открылся на максимумах, но закрылся в красной зоне: XLE открылся с гэпом +2.1%, в течение дня опускался до -3.4% ниже уровня закрытия предыдущего дня и завершил торги на отметке -0.9%. Золото совершило аналогичный разворот: GLD открылся на +2.4% и закрылся на -0.6%. VIXY, ETF, удерживающий краткосрочные фьючерсы на VIX — наиболее близкий торгуемый инструмент к индексу волатильности, — открылся с гэпом +11.1% и закрылся на -3%, ниже уровня закрытия предыдущего дня. Классические защитные активы достигли пика ровно в момент появления самых негативных заголовков и начали снижаться вместе с восстановлением рынка акций: это был зеркальный разворот по отношению к динамике акций.

Исключением стал оборонный сектор. Все четыре компании закрылись в зеленой зоне: LMT +1.7%, NOC +2.4%, RTX +2.1%, GD +1.1%. При этом Northrop Grumman на протяжении всей сессии ни разу не опускалась ниже уровня закрытия среды (ее внутридневной минимум составил +1%) — это единственная из четырех бумаг, которая не уходила в красную зону.

Казначейские облигации: спрос на защитные активы возник с задержкой

Снижение доходности казначейских облигаций означает рост цен на них, что является классическим признаком притока капитала в защитные активы. В день начала вторжения этот приток практически не отразился на ценах закрытия:

ЗапросДоходность 2-летних и 10-летних казначейских облигаций США, 18 февраля – 8 марта 2022 г. (%)
СессияДоходность 2-лет.Доходность 10-лет.
2022-02-181.471.92
2022-02-221.561.94
2022-02-231.581.99
2022-02-241.541.96
2022-02-251.551.97
2022-02-281.441.83
2022-03-011.311.72
2022-03-021.51.86
2022-03-031.531.86
2022-03-041.51.74
2022-03-071.551.78
2022-03-081.631.86
Точный SQL-код для каждого числа
SELECT
    toString(date) AS session,
    round(yield_2_year, 2) AS yield_2_year,
    round(yield_10_year, 2) AS yield_10_year
FROM global_markets.treasury_yields
WHERE date BETWEEN '2022-02-18' AND '2022-03-08'
ORDER BY date
Запустите сами

Доходность десятилетних облигаций закрылась на уровне 1.96% 24 февраля, что лишь немногим ниже показателя предыдущего дня — 1.99%. Реальное бегство в качество произошло на следующей неделе: к 2022-03-01 доходность десятилетних бумаг составила 1.72%, что стало минимальным значением закрытия за рассматриваемый период, а доходность двухлетних облигаций за тот же отрезок времени упала с 1.58% до 1.31%. ETF на долгосрочные казначейские облигации TLT, представленный на графике выше, продемонстрировал внутридневную динамику в том же ключе: гэп вверх на 1.8% при открытии торгов к закрытию сократился до 0.2%.

Дни вокруг события

Три недели ежедневных закрытий позволяют оценить разворот в контексте и спокойно определить, удержался ли он:

ЗапросДневные цены закрытия QQQ, 22 февраля – 14 марта 2022 г.
СессияЗакрытие ($)Изменение (%)Объем (млн)
2022-02-22338.09-185.1
2022-02-23329.41-2.685.1
2022-02-24340.653.4128.5
2022-02-25345.871.577.6
2022-02-28347.150.476.4
2022-03-01341.56-1.666.8
2022-03-02347.181.669.8
2022-03-03342.26-1.470.6
2022-03-04337.35-1.475.8
2022-03-07324.83-3.789.2
2022-03-08323.28-0.5115.3
2022-03-09335.053.663.8
2022-03-10331.42-1.168.7
2022-03-11324.34-2.165.6
2022-03-14318.21-1.978.9
Точный 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 = 'QQQ'
          AND window_start >= toDateTime('2022-02-18 00:00:00') AND window_start < toDateTime('2022-03-15 23:59:00')
        GROUP BY et_date
    )
)
WHERE et_date >= toDate('2022-02-22') AND et_date <= toDate('2022-03-14')
ORDER BY et_date
Запустите сами

Сессии перед началом вторжения были «красными» (-1% и -2.6% от двадцать второго–двадцать третьего февраля), поскольку заголовки новостей были заполнены сообщениями о наращивании сил, однако в день самого вторжения рынок закрылся на +3.4%, за чем последовал рост ещё на +1.5% на следующий день. Падение рынков на фоне угрозы и ралли по факту события — это паттерн, настолько старый, что для него существует поговорка на Уолл-стрит, и данная лента сделок является его самым наглядным современным подтверждением. Но посмотрите на таблицу дальше: она заканчивается на отметке $318.21 от 2022-03-14, что ниже уровня, на котором проходили сделки в панике утром в день вторжения.

Удержалось ли ралли?

Нет, и теперь этому есть документальное подтверждение:

ЗапросПосле разворота: когда QQQ пробил минимум дня вторжения и глубина последующего падения
Закрытие (вторжение)Low (вторжение)Первое закрытие ниже low вторженияДней до нового lowЗакрытие (мартовский low)Дата (мартовский low)Мартовский low к закрытию вторжения (%)Закрытие (годовой low)Дата (годовой low)Годовой low к закрытию вторжения (%)
340.65318.262022-03-1418318.212022-03-14-6.6260.022022-12-28-23.7
Точный SQL-код для каждого числа
WITH
    daily AS (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York')) AS d,
            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 c
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'QQQ'
          AND window_start >= toDateTime('2022-02-24 04:00:00') AND window_start < toDateTime('2023-01-01 00:00:00')
        GROUP BY d
    ),
    (SELECT c FROM daily WHERE d = toDate('2022-02-24')) AS invasion_close,
    (
        SELECT round(minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'QQQ'
          AND window_start >= toDateTime('2022-02-24 04:00:00') AND window_start < toDateTime('2022-02-24 23:59:00')
    ) AS invasion_low
SELECT
    invasion_close,
    invasion_low,
    toString(minIf(d, c < invasion_low AND d > toDate('2022-02-24'))) AS first_close_below_invasion_low,
    dateDiff('day', toDate('2022-02-24'), minIf(d, c < invasion_low AND d > toDate('2022-02-24'))) AS calendar_days_to_new_low,
    round(minIf(c, d BETWEEN toDate('2022-02-25') AND toDate('2022-03-31')), 2) AS march_low_close,
    toString(argMinIf(d, (c, d), d BETWEEN toDate('2022-02-25') AND toDate('2022-03-31'))) AS march_low_date,
    round((minIf(c, d BETWEEN toDate('2022-02-25') AND toDate('2022-03-31')) / invasion_close - 1) * 100, 1) AS march_low_vs_invasion_close_pct,
    round(minIf(c, d > toDate('2022-02-24')), 2) AS year_low_close,
    toString(argMinIf(d, (c, d), d > toDate('2022-02-24'))) AS year_low_date,
    round((minIf(c, d > toDate('2022-02-24')) / invasion_close - 1) * 100, 1) AS year_low_vs_invasion_close_pct
FROM daily
Запустите сами

Спустя 18 календарных дня после начала вторжения, 2022-03-14, фонд QQQ закрылся ниже минимума паники в $318.26, зафиксированного в первую минуту торгов в день начала конфликта. Тот мартовский минимум закрытия на уровне $318.21 оказался на -6.6% ниже цены закрытия дня вторжения, и год продолжил развиваться по нисходящей: к 2022-12-28 фонд QQQ закрылся на отметке $260.02, что на -23.7% ниже уровня закрытия дня вторжения. Разворот двадцать четвертого февраля был реальным, резким и локальным. Направление рынку в две тысячи двадцать втором году задал цикл повышения процентных ставок, а не война; это тот же урок, который мартовский обвал две тысячи двадцатого года преподал в обратном направлении.

Насколько редки развороты такого масштаба?

Анализ всех торговых сессий QQQ с две тысячи третьего года по конец две тысячи двадцать пятого года выявляет ровно 2 сессий, в ходе которых котировки внутри дня опускались как минимум на три процента ниже цены закрытия предыдущего дня, но при этом завершили торги ростом не менее чем на один процент:

ЗапросТорговые сессии QQQ с 2003 г.: внутридневной минимум ≤ −3% к предыдущему закрытию И закрытие ≥ +1%
СессияLow к пред. (%)Закрытие к пред. (%)От min до закрытия (%)
2022-02-24-3.43.47
2022-10-13-3.22.35.7
Точный SQL-код для каждого числа
SELECT
    toString(d) AS session,
    low_vs_prior_pct,
    close_vs_prior_pct,
    trough_to_close_pct
FROM (
    SELECT
        d,
        round((lo / prev_c - 1) * 100, 1) AS low_vs_prior_pct,
        round((c / prev_c - 1) * 100, 1) AS close_vs_prior_pct,
        round((c / lo - 1) * 100, 1) AS trough_to_close_pct
    FROM (
        SELECT d, c, lo,
               lagInFrame(c) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_c
        FROM (
            SELECT
                toDate(toTimeZone(window_start, 'America/New_York')) AS d,
                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 c,
                minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS lo
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'QQQ'
              AND window_start >= toDateTime('2003-01-01 00:00:00') AND window_start < toDateTime('2026-01-01 00:00:00')
            GROUP BY d
        )
    )
    WHERE prev_c > 0 AND isFinite(prev_c)
)
WHERE low_vs_prior_pct <= -3 AND close_vs_prior_pct >= 1
ORDER BY session
Запустите сами

Двадцать четвёртое февраля две тысячи двадцать второго года — один из таких случаев. Другой — 2022-10-13, сессия, открывшаяся через час после публикации данных по инфляции, которые оказались выше ожиданий; это был ещё один день с гэпом вниз и закрытием в «зеленой» зоне. Разворот в день начала вторжения был более масштабным: амплитуда от минимума до закрытия составила 7% против 5.7%. За двадцать три года наблюдений оба случая пришлись на один и тот же год.

Чему учит этот день

На текущем рынке действуют три устойчивых механизма. Во-первых, к моменту наступления широко ожидаемого события позиционирование зачастую уже завершено; две «красные» сессии перед вторжением отражали эти ожидания. Во-вторых, на открытии торгов накопленный за ночь страх реализуется по единой цене, и эта цена может стать экстремумом дня в любом направлении. В-третьих, резкий однодневный разворот говорит о потоках капитала в конкретный день, а не о направлении движения в следующем квартале; в любом случае, в последующие недели после этой сессии рынок обновил минимумы. Дни событий вознаграждают тех, кто понимает рыночные механизмы, и наказывают тех, кто путает структуру отдельной сессии с рыночным режимом.

Детали по объему торгов подтверждают, кто и что делал: 128.5 миллионов акций сделали эту сессию самой активной за три недели, представленные в таблице выше. Высокий объем при росте от минимума до закрытия означает, что реальные крупные покупки встретились с реальными крупными продажами, а не с дрейфом на пустом рынке. Сравните это с аналогичной динамикой ралли 24 марта 2020 года, где объем, подтвержденный уверенностью участников, также ознаменовал разворот паники, и противопоставьте это дням со слабым отскоком, которые угасают на следующей сессии.

Часто задаваемые вопросы о дне начала вторжения

Как вел себя фондовый рынок в день вторжения России в Украину?

В сам день начала событий, двадцать четвертого февраля две тысячи двадцать второго года, ETF на индекс Nasdaq-100 QQQ открылся с понижением на -3.2%, достигнув минимума в первую минуту торгов, после чего рос в течение всей сессии и закрылся с результатом +3.4%. ETF на индекс S&P 500 SPY закрылся на уровне +1.5%, а ETF на индекс Dow DIA — на +0.3%.

Почему акции выросли в день вторжения России в Украину?

Данная страница не занимается поиском мотивов; лента сделок фиксирует последовательность событий: сильное давление продавцов полностью проявилось на открытии в девять тридцать, после чего в каждый последующий час доминировали покупатели. Паттерн «падение на угрозе, рост по факту события» имеет множество исторических параллелей.

Как вели себя нефть и золото в день вторжения России в Украину?

Оба актива резко выросли на открытии, а затем растеряли достижения: энергетический ETF XLE открылся с гэпом +2.1% и закрылся на -0.9%, а золотой ETF GLD открылся с гэпом +2.4% и закрылся на -0.6%. Акции оборонного сектора удержали рост: все четыре крупнейшие компании, представленные в панели выше, закрылись в плюсе.

Оказалось ли ралли после вторжения устойчивым?

Нет. QQQ закрылся ниже своего минимума паники в день вторжения через 18 календарных дней, а именно 2022-03-14, а к моменту достижения минимума две тысячи двадцать второго года 2022-12-28 он находился на -23.7% ниже уровня закрытия дня вторжения.

Насколько редки развороты, подобные двадцать четвертому февраля две тысячи двадцать второго года?

Очень редки. В период с две тысячи третьего года по конец две тысячи двадцать пятого года только в 2 сессиях QQQ торговался на три процента или более ниже предыдущего закрытия внутри дня и при этом закрывался как минимум на один процент выше — это данный случай и 2022-10-13.


Каждая панель выше представляет собой сохраненный версионированный запрос к исторической ленте сделок; разверните SQL, чтобы увидеть каждое измерение. Хотите прочувствовать этот день, а не просто прочитать о нем? Это один из игровых сценариев в симуляторе трейдинга Strasmore Labs.

#market history#geopolitics#reversals#qqq