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

Динаміка ціни GameStop 28 січня 2021 року

Ціна GME змінилася від чотирьохсот вісімдесяти трьох до ста дванадцяти доларів за один ранок. Обмеження Robinhood та зупинки торгів у січні 2021 року.

28 січня 2021 року став кульмінацією squeeze акцій GameStop — за два години вранці ціна GME зросла на $483 та $112.25, того ж дня Robinhood та інші брокери обмежили купівлю цієї акції, а згідно з даними хвилинних графіків, наведеними нижче, це був день з найбільшою кількістю зупинок торгів під час самого squeeze. Механіку squeeze описано в поясненні до short squeeze, де цією ж акцією використано приклад; ця сторінка присвячена саме цьому дню — передостаннім дням зростання, що створили передумови, кожній хвилині торгової стрічки, обмеженням брокерів, потоку опціонів та подальшому падінню ціни. Кожне число є результатом запиту до бази даних; розгорніть будь-яку панель, щоб переглянути SQL-код.

Передумова: з грудня 2020 року по 27 січня

Найбільш непередбачуваний день цієї історії неможливо зрозуміти без попередніх восьми тижнів. GME завершила 2020-12-01 на рівні $15.81. Це роздрібний торговий мережевий ритейлер з великим обсягом коротких позицій, акції якого зазвичай торгувалися обсягом у кілька мільйонів акцій на день — 6.2 мільйонів під час звичайного торгового сеансу на початку грудня. Напередодні сеансу, про який йдеться у цій статті, ціна закриття склала $345, що у 21.8 разів перевищує ціну на 1 грудня.

ЗапитGME: ціна закриття та обсяг за день — грудень 2020 — січень 2021 (ціни виконання)
Точний SQL-код для кожного числа
SELECT
    toString(et_date) AS session,
    close_usd,
    round(close_usd / first_value(close_usd) OVER (ORDER BY et_date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), 1) AS mult_from_dec1,
    shares_m
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 = 'GME'
      AND window_start >= toDateTime('2020-12-01 00:00:00') AND window_start < toDateTime('2021-01-27 23:59:00')
    GROUP BY et_date
)
WHERE et_date >= toDate('2020-12-01') AND et_date <= toDate('2021-01-27')
ORDER BY et_date

Цей шлях нагадує сходи, а не похилу. До середини січня котирування повільно зростали в межах десяти-двадцяти доларів; 2021-01-13 акції закрилися на рівні $31.44 при обсязі 144.4 мільйонів акцій — обсяг торгів перевищив норму грудня більш ніж у двадцять разів. З цього моменту кожен наступний етап зростання був більшим за попередній: від закриття на рівні $64.85 2021-01-22 до майже двократного зростання до 27 січня. Короткі продавці займали позиції протягом усього цього періоду: дані про розрахункові виплати, наведені нижче, демонструють наслідки цього зростання для них.

Один день в одному рядку — підрахунок барів

ЗапитGME на 28 січня 2021 — фактичні дані (ціни до split 2022)
Точний 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 = 'GME'
          AND window_start >= toDateTime('2021-01-27 00:00:00') AND window_start < toDateTime('2021-01-28 04:00:00')
    ) AS prior_rth_close,
    (
        SELECT min(bars)
        FROM (
            SELECT
                toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
                countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS bars
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'GME'
              AND window_start >= toDateTime('2021-01-25 04:00:00') AND window_start < toDateTime('2021-02-05 04:00:00')
            GROUP BY et_date
            HAVING et_date != toDate('2021-01-28')
        )
    ) AS thinnest_other
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,
    round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 1) AS day_notional_bn,
    countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS rth_minute_bars,
    round(maxIf(toFloat64(high), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / 4, 2) AS rth_high_splitadj,
    thinnest_other AS thinnest_other_session_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'GME'
  AND window_start >= toDateTime('2021-01-28 04:00:00') AND window_start < toDateTime('2021-01-28 23:59:00')

Почнемо з кількості барів: 314 хвилинних барів регулярної сесії замість 390. Приблизно сімдесят шість відсутніх хвилин — це повторювані зупинки торгів через волатильність Limit Up/Limit Down, що виникали через різкі стрибки ціни; жодна інша сесія під час цього squeeze stretch з 25 січня по 4 лютого не мала менше ніж 348 барів регулярної сесії. Між зупинками: відкриття на рівні $265 — вже на -23.2% нижче попереднього офіційного закриття, коли нічна та передринкова торгівля стала надзвичайно волатильною через оголошення обмежень для брокерів — потім стрибок до історичного максимуму $483 протягом першої години торгів, падіння до $112.25 о 11:24 ET — на -67.5% нижче попереднього закриття — і закриття на рівні $197.44, що на -42.8% менше за денне. Усі ціни вказані за фактичними угодами до split 4-в-1 у 2022 році.

Масштаб торгов потребує окремого речення: 57.4 мільйонів акцій було оброблено протягом розширеної сесії, що становить приблизно $16.7 мільярдів у доларовому еквіваленті — обсяг торгов розміром з мега-капіталізацію був зосереджений у ритейлері відеоігор, який лише вісім тижнів тому мав спокійну сесію з оброботуванням 6.2 мільйонів акцій.

Що насправді означає зупинка Limit Up/Limit Down

Ці зупинки не є рішенням біржі; вони відбуваються автоматично. Limit Up/Limit Down (LULD) — це механізм автоматичного вимкнення (circuit breaker) для окремих акцій, запроваджений після миттєвого обвалу 2010 року. Кожна акція має ціновий коридор навколо референсної ціни — ковзного п'ятихвилинного середнього значення її власних угод. Для найбільших компаній цей коридор становить 5% у обидва боки, для більшості інших — 10%, а для дешевих акцій — ширший; у останні 25 хвилин сесії межі подвоюються. Якщо найкраща ціна на купівлю або продаж досягає межі коридору і тримається на ній протягом 15 секунд, то торги цією акцією призупиняються на всіх біржах на п'ять хвилин. Потім торги відновлюються через аукціон на біржі, де акція лістингується; якщо аукціон не може встановити ціну в межах дозволеного діапазону, пауза продовжується. На стрічці котирувань, що рухалася так само, як GME того ранку, цей цикл повторювався: відновлення, перетин межі коридору за лічені секунди, нова пауза. Саме так сесія втрачає сімдесят шість хвилин без жодного натискання кнопки — механізм працює саме так, як було задумано, витрачаючи торговий час під час своєї роботи.

Ранок, за кожним сегментом

ЗапитGME кожні пів години — регулярна сесія 28 січня 2021
Точний 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 = 'GME'
  AND window_start >= toDateTime('2021-01-28 04:00:00') AND window_start < toDateTime('2021-01-28 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

Сегменти о 09:30 та 10:00 містять пік; мінімум у $112.25 у сегменті 11:00 є дном — це повний цикл коливання, який знищив і частково відновив десятки мільярдів ринкової вартості до обіду. Зверніть увагу на відсутність обсягів у межах періодів зупинки торгів: сегменти з низькою кількістю акцій — це ті періоди, коли торгівлі постійно переривалися. Котирування $483 та $112.25 були «ринковою ціною» того ранку з інтервалом у кілька хвилин — кожному, хто моделює ринки як безперервні процеси, варто тримати цей графік перед очима.

Брокери: Robinhood та режим лише для закриття позицій

Інший визначальний факт від 28 січня не відображається безпосередньо в котируваннях. Перед відкриттям ринку Robinhood — брокер, через якого здійснювалися основні роздрібні закупівлі під час squeeze — перевів GME та низку інших активів у режим лише для закриття позицій: клієнти могли продавати вже наявні акції, але не могли купувати нові. Напередодні, 27 січня, Interactive Brokers о 12:00 перевів опціони на GME у режим лише для ліквідації, а кілька інших брокерів підвищили маржинальні вимоги або обмежили відкриття нових позицій. Robinhood пояснила ці обмеження вимогою депозиту від галузевого клірингового центру, отриманою на світанку, яка становила приблизно $3 мільярди (після введення обмежень сума була зменшена); тієї ж ночі фірма залучила від своїх інвесторів понад один мільярд доларів. Слухання в Конгресі у лютому 2021 року та звіт SEC за жовтень 2021 року детально описують цю послідовність подій.

Дані ринку фіксують лише збіг у часі, а не вердикт: оголошення обмежень перед відкриттям, -23.2% розрив вниз о 9:30, ціна $483, зупинки торгів та мінімум $112.25. Список обмежених активів змінювався одночасно:

ЗапитОбмежені активи на 28 січня 2021 — ціна закриття до закриття (ET регулярна сесія)
Точний SQL-код для кожного числа
SELECT
    ticker,
    round(argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) = '2021-01-27' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS close_jan27,
    round(argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) = '2021-01-28' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS close_jan28,
    round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) = '2021-01-28' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) = '2021-01-27' AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS change_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('GME', 'AMC', 'BB', 'NOK', 'KOSS')
  AND window_start >= toDateTime('2021-01-27 00:00:00') AND window_start < toDateTime('2021-01-29 04:00:00')
GROUP BY ticker
ORDER BY change_pct ASC

Усі акції у списку продемонстрували різке падіння: від -56.3% для найбільш постраждалої (AMC) до -29.1% для найменш постраждалої (Nokia), при цьому показник GME становив -42.8%. П'ять акцій з п'ятьма різними сферами бізнесу продемонстрували однакову динаміку в один і той самий день — спільним фактором був саме цей список.

Опціонна стрічка: машина хеджування на повній потужності

Під час тижня squeeze ринок опціонів GameStop був одним із найактивніших серед усіх публічних компаній. Стандартним чинником є gamma loop — дилер, який продає call-опціон, зазвичай купує акції для хеджування, і зі зростанням ціни до цінової межі (strike) обсяг цього хеджування має збільшуватися, що створює механічний попит на купівлю під час руху вгору. Дані про угоди не відображають хеджування безпосередньо, але вони демонструють пропускну здатність:

ЗапитТоргівля опціонами GME за сесіями — 25–28 січня 2021
Точний SQL-код для кожного числа
SELECT
    toString(toDate(toTimeZone(sip_timestamp, 'America/New_York'))) AS session,
    round(sumIf(size, substring(ticker, 12, 1) = 'C') / 1e6, 2) AS call_contracts_m,
    round(sumIf(size, substring(ticker, 12, 1) = 'P') / 1e6, 2) AS put_contracts_m,
    round(100.0 * sumIf(size, substring(ticker, 12, 1) = 'C') / sum(size), 1) AS call_share_pct,
    round(sum(toFloat64(price) * size * 100) / 1e9, 2) AS premium_bn,
    round(count() / 1e3, 0) AS prints_k
FROM global_markets.options_trades
WHERE ticker >= 'O:GME21' AND ticker < 'O:GME22'
  AND sip_timestamp >= toDateTime('2021-01-25 00:00:00') AND sip_timestamp < toDateTime('2021-01-29 00:00:00')
GROUP BY session
ORDER BY session

На 2021-01-27, напередодні цієї сесії, лише в контрактах GME було оброблено $7.99 мільярда опційної премії через 351 тисяч окремих угод; 28-го числа обсяг зріс ще на $3.97 мільярда. І є одна деталь, яку зазвичай пропускають: стрічка мала перевагу put-опціонів на піку. Call-опціони становили лише 24% від обсягу контрактів 27-го числа (1.05 мільйонів put проти 0.33 мільйонів call) та 29.5% 28-го числа. Поки натовп переслідував зростання, інший натовп оплачував ризик падіння під час формування піку.

Наслідки: падіння вниз

28 січня це був не кінець. На наступній сесії, 29 січня, обмежені закупівлі відновилися через обмеження у брокерів — ліміти на позиції в Robinhood у певний момент вимірювалися одиничними одиницями акцій — і GME закрився на рівні $328.24, зробивши 66.2% за день. Це було останнє закриття поблизу пікових значень.

ЗапитGME: ціна закриття та обсяг за день — 29 січня — 9 лютого 2021
Точний 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 = 'GME'
          AND window_start >= toDateTime('2021-01-27 00:00:00') AND window_start < toDateTime('2021-02-09 23:59:00')
        GROUP BY et_date
    )
)
WHERE et_date >= toDate('2021-01-29') AND et_date <= toDate('2021-02-09')
ORDER BY et_date

Падіння було таким же стрімким, як і зростання: -30.8% на 2021-02-01, -60.1% на 2021-02-02, і до 2021-02-04 ціна закриття склала $53.38 — при тому, що на п'ять сесій раніше акція коштувала $483. Двотижневий звіт про короткий інтерес демонструє, чого досяг squeeze на той момент:

ЗапитGME: звітний short interest за датою розрахунку — листопад 2020 — лютий 2021
Точний SQL-код для кожного числа
SELECT toString(settlement_date) AS settled,
       round(short_interest / 1e6, 1) AS shares_short_m,
       round(days_to_cover, 1) AS days_to_cover
FROM global_markets.stocks_short_interest
WHERE ticker = 'GME'
  AND settlement_date >= '2020-11-01'
  AND settlement_date <= '2021-02-28'
ORDER BY settlement_date

З 71.2 мільйонів акцій у коротких позиціях на розрахунок 2020-12-31, зафіксований короткий інтерес скоротився до 21.4 мільйонів до 2021-01-29 — на дату розрахунку через одну сесію після дати цієї статті — а кількість днів для покриття впала з 14 на піку в листопаді до 1. Короткі позиції, що сформували цю ситуацію, згідно з цим показником, були переважно закриті до кінця місяця; аналіз цього розв'язання представлено в поясненні short squeeze, а різниця між цим двотижневим показником та щоденним обсягом коротких продажів описана в short interest проти short volume.

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

Попри хаотичний характер епохи мем-акцій, 28 січня є класичним уроком ліквідності. Ціна акції визначається її найбільш терміновим маржинальним ордером. Коли терміновість закриття позицій (викуп шортів), обмеження доступу (обмеження брокерів на купівлю) та механічні паузи (зупинки LULD) одночасно впливають на ринок, процес виявлення ціни відбувається переривчастими стрибками, а не плавними кривими. Форма ринку цього дня не потребує пояснення через наявність «зловмисників» — аналіз хвилинних графіків не дозволяє підтвердити або спростувати таку теорію. Наведені вище дані відображають фактичні результати торгів.

FAQ GameStop на 28 січня

Якою була найвища ціна GameStop за всю історію?

$483 (в межах торгової сесії), зафіксована вранці 28 січня 2021 року. З урахуванням спліту один-до-чотирьох у 2022 році, це відповідає $120.75 за поточною кількістю акцій.

Чому Robinhood обмежив купівлю GameStop?

28 січня 2021 року Robinhood перевів GME та інші активи в режим лише для закриття позицій. Це рішення було зумовлене вимогою клірингової палати внести депозит у розмірі приблизно $3 мільярди того ранку. Компанія залучила понад один мільярд доларів від інвесторів протягом ночі та відновила обмежені операції з купівлею на наступній сесії. Ці факти підтверджуються свідченнями в Конгресі та звітом персоналу SEC за 2021 рік.

Чи стала Robinhood причиною обвалу GameStop?

Дані ринку фіксують послідовність подій, а не вердикт: обмеження було оголошено до відкриття ринку, GME продемонстрував розрив ціни вниз на -23.2%, зафіксував рекордний рівень $483 та мінімум $112.25 протягом двох годин, і всі обмежені активи закрилися з двозначним падінням того ж дня. Питання про те, який фактор був вирішальним, залишається предметом дискусій; звіт персоналу SEC не надав остаточної відповіді.

Скільки разів торги GME призупинялися 28 січня 2021 року?

Хронологія торгів показує 314 барів регулярної сесії замість 390 — приблизно сімдесят шість хвилин було втрачено через повторювані зупинки за правилами Limit Up/Limit Down. Це зробило 28 січня днем з найбільшою кількістю зупинок за весь період squeeze: жодна інша сесія з 25 січня по 4 лютого не мала менше ніж 348 барів регулярної сесії.

Що сталося з GME після 28 січня 2021 року?

Ще одне зростання — закриття на рівні $328.24 29 січня — і початок падіння: до 2021-02-04 акції закрилися на рівні $53.38, а зафіксований короткий інтерес уже скоротився до 21.4 мільйонів акцій на момент розрахунків 29 січня.


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