Strasmore Research
Onderzoeken Matt ConnorDoor Matt Connor · Bijgewerkt 2026-07-24

GameStop koersverloop 28 januari 2021

Op 28 januari 2021 noteerde GME tussen $483 en $112. Robinhood beperkte posities tot position-close-only en er vonden talloze trading halts plaats.

28 januari 2021 was het hoogtepunt van de GameStop squeeze — in de ochtend noteerde GME binnen twee uur $483 en $112.25, de dag dat Robinhood en andere brokers de aankoop van het aandeel beperkten, en — volgens de eigen minute bars, hieronder vermeld — de dag met de meeste handelsstops tijdens de squeeze zelf. De mechanica van de squeeze wordt uitgelegd in de uitleg over de short squeeze, met dit aandeel als casestudy; deze pagina richt zich op de dag zelf — de stijging die de situatie creëerde, de koersverloop per minuut, de beperkingen door brokers, de options flow en de daaropvolgende daling. Elk getal is een opgeslagen query; open elk paneel voor de SQL.

De stijging: december 2020 tot 27 januari

De meest extreme dag in dit verhaal is niet te verklaren zonder de acht weken die eraan voorafgingen. GME sloot 2020-12-01 op $15.81. Dit is een zwaar geshortte winkelketen die normaal gesproken enkele miljoenen aandelen per dag verhandelt — 6.2 miljoen tijdens een normale sessie in begin december. De dag vóór de sessie waarover deze pagina gaat, sloot de koers op $34521.8 keer de prijs van 1 december.

QueryGME dagelijkse close en volume — 1 december 2020 tot 27 januari 2021 (as-traded prijzen)
De exacte SQL achter elk getal
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

Het verloop lijkt op een trap in plaats van een helling. Tot medio januari steeg het aandeel langzaam in de teens; op 2021-01-13 sloot het op $31.44 met 144.4 miljoen shares — een volume dat meer dan twintig keer de norm van december was. Vanaf dat punt was elke stijging groter dan de vorige, tot aan de slotkoers van $64.85 op 2021-01-22 en de bijna verdubbeling richting 27 januari. Short sellers waren gedurende de hele periode gepositioneerd: de settlement-date receipts verderop op deze pagina laten zien wat deze stijging met hen deed.

De dag in één overzicht — het aantal bars

QueryGME op 28 januari 2021 — receipted (as-traded, pre-2022-split prijzen)
De exacte SQL achter elk getal
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')

Begin met het aantal bars: 314 regular-session minute bars in plaats van 390. De ontbrekende zeventig-zes minuten werden veroorzaakt door herhaaldelijke Limit Up/Limit Down volatility halts terwijl de prijs versnelde; geen enkele andere sessie tijdens de squeeze tussen 25 januari en 4 februari had minder dan 348 regular-session bars. Tussen de halts: een opening op $265 — al -23.2% lager dan de vorige officiële close, doordat de handel tijdens de overnight en premarket extreem volatiel werd na de aankondiging van beperkingen bij brokers — gevolgd door een stijging naar de all-time high van $483 in het eerste handelsuur, een daling naar $112.25 om 11:24 ET — -67.5% onder de vorige close — en een closing op $197.44, een daling van -42.8% op de dag. Alle prijzen zijn gebaseerd op de handelskoersen vóór de four-for-one split van 2022.

Het volume is opmerkelijk: 57.4 miljoen shares wisselden van eigenaar tijdens de extended day, met een dollar volume van ongeveer $16.7 miljard — een omzet van megacap-omvang geconcentreerd in een retailer in videogames die acht weken eerder tijdens een rustige sessie 6.2 miljoen shares had verhandeld.

Wat een Limit Up/Limit Down halt precies inhoudt

De halts waren geen besluit van de beurs; ze zijn automatisch. Een Limit Up/Limit Down (LULD) halt is de circuit breaker voor individuele aandelen die werd ingevoerd na de flash crash van 2010. Elk aandeel heeft een prijsband rond een referentieprijs — een voortschrijdend gemiddelde van de eigen transacties over vijf minuten — van 5% aan beide zijden voor de grootste namen, 10% voor de meeste andere aandelen, en een bredere band voor aandelen met een lage prijs, waarbij de banden in de laatste 25 minuten van de sessie worden verdubbeld. Als de beste bid of offer 15 seconden lang op de rand van de band staat, wordt de handel in dat aandeel op elke beurs voor vijf minuten gepauzeerd, waarna de handel via een auction op de beurs waar het aandeel genoteerd staat, wordt hervat; wanneer de auction niet binnen het toegestane bereik kan worden afgewikkeld, wordt de pauze verlengd. Bij een koersverloop zoals die van GME die ochtend herhaalt deze cyclus zich: hervatten, binnen enkele seconden de breedte van een band overschrijden, opnieuw pauzeren. Zo verliest een sessie tweeënzeventig minuten zonder dat iemand op een knop drukt — het mechanisme werkt precies zoals ontworpen, waarbij het handelsverkeer consumeert terwijl het functioneert.

De ochtend, per bucket

QueryGME per half uur — 28 januari 2021 regular session
De exacte SQL achter elk getal
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

De buckets van 09:30 en 10:00 bevatten de piek; het lage punt van $112.25 in de 11:00 bucket vormt het dal — een round trip die tens of billions aan marktwaarde wist en deels herstelde voor de lunch. Let op het ontbrekende volume binnen de halt-vensters: de buckets met weinig shares zijn de momenten waarop de handel herhaaldelijk werd onderbroken. De prints van $483 en $112.25 waren die ochtend beide "the market price", slechts enkele minuten uit elkaar — iedereen die markten als continu modelleert, zou deze tape boven het bureau moeten hangen.

De brokers: Robinhood en position-close-only

Een andere cruciale gebeurtenis van 28 januari is niet terug te vinden in de koersen. Vóór de opening verplaatste Robinhood — de broker waar een groot deel van de retail-kopers van de squeeze actief was — GME en een lijst met andere namen naar position-closing only: klanten konden de aandelen die zij bezaten verkopen, maar geen nieuwe posities meer openen. Interactive Brokers had GME-opties op het middaguur van de vorige dag, 27 januari, al in liquidation-only gezet, en verschillende andere brokers verhoogden de margin requirements of beperkten het openen van posities. Robinhood gaf als reden voor de beperking een oproep tot storting van de clearinghouse in de vroege ochtend. Dit bedrag werd geschat op ongeveer $3 miljard — een bedrag dat daalde nadat de beperkingen werden ingevoerd — en de firma haalde die nacht meer dan een miljard dollar op bij haar investeerders. De congreszitting van februari 2021 en het rapport van de SEC uit oktober 2021 beschrijven dit verloop in detail.

De koersgegevens tonen gelijktijdigheid aan, geen oordeel: beperkingen die vóór de opening werden aangekondigd, een -23.2% gap down om 9:30, de $483 print, de handelsstops en de $112.25 low. De lijst met beperkingen bewoog als één blok:

QueryDe restricted names op 28 januari 2021 — prior close vs close (ET regular session)
De exacte SQL achter elk getal
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

Elk aandeel op de lijst sloot fors lager, met een spreiding van -56.3% voor de zwaarst getroffen (AMC) tot -29.1% voor de minst getroffen (Nokia), waarbij GME zelf op -42.8% stond. Vijf aandelen met vijf verschillende bedrijfsactiviteiten vertoonden op dezelfde dag hetzelfde verloop — de gemeenschappelijke factor was de lijst zelf.

De options tape: de hedging machine op volle toeren

Tijdens de squeeze-week behoorde de optionsmarkt van GameStop tot de drukste van alle beursgenoteerde bedrijven. Een standaardkenmerk is een gamma loop — een dealer die een call option verkoopt, koopt doorgaans aandelen om te hedge, en naarmate de prijs richting de strike stijgt, moet deze hedge groeien, wat zorgt voor mechanische koopdruk tijdens de stijging. Handelsgegevens tonen de hedging niet direct, maar wel de omvang van het volume:

QueryGME options trades per session — 25–28 januari 2021
De exacte SQL achter elk getal
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

Op 2021-01-27, de avond voor deze sessie, veranderde er alleen al in GME-contracten $7.99 miljard aan option premium, verspreid over 351 duizend individuele prints; de 28e voegde daar $3.97 miljard aan toe. En één detail dat in de verslaglegging vaak wordt overgeslagen: de tape was put-heavy aan de top. Calls vormden op de 27e slechts 24% van het contractvolume (1.05 miljoen puts tegenover 0.33 miljoen calls) en 29.5% op de 28e. Naast de groep die op de stijging speculeerde, betaalde een andere groep voor de downside terwijl de top werd gevormd.

De nasleep: de reis naar beneden

28 januari was niet het einde. De volgende sessie, 29 januari, zag beperkte koopactiviteiten bij de beperkte brokers — de positie-limieten bij Robinhood werden op een gegeven moment gemeten in een enkel cijfer aan aandelen — en GME sloot op $328.24, een stijging van 66.2% op die dag. Dit was de laatste sluiting in de buurt van de hoogste koersen.

QueryGME dagelijkse close en volume — 29 januari tot 9 februari 2021
De exacte SQL achter elk getal
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

De daling was even steil als de stijging: -30.8% op 2021-02-01, -60.1% op 2021-02-02, en tegen 2021-02-04 was de sluiting $53.38 — in een aandeel dat vijf sessies eerder $483 had genoteerd. Het tweewekelijkse short-interest rapport laat zien wat de squeeze tot die tijd had bereikt:

QueryGME gerapporteerde short interest per settlement date — november 2020 tot februari 2021
De exacte SQL achter elk getal
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

Van 71.2 miljoen short aandelen bij de 2020-12-31 settlement, stortte de gerapporteerde short interest in tot 21.4 miljoen tegen 2021-01-29 — de settlement één sessie na de datum van deze pagina — en de days to cover daalden van 14 op het hoogtepunt in november naar 1. De shorts wiens posities de setup bepaalden, waren volgens deze maatstaf tegen het einde van de maand grotendeels verdwenen; de anatomie van die unwind staat in de short squeeze uitleg, en het verschil tussen dit tweewekelijkse cijfer en de dagelijkse short-sale volume wordt behandeld in short interest vs short volume.

Wat deze dag leert

Ondanks de kenmerken van het meme-tijdperk is 28 januari een klassieke les in liquidity. De prijs van een aandeel wordt bepaald door de meest dringende marginale order. Wanneer de urgentie om posities te sluiten (shorts die kopen), beperkingen op de toegang (brokers die aankopen beperken) en mechanische pauzes (LULD halts) gelijktijdig optreden, vindt prijsontdekking plaats in staccato sprongen in plaats van vloeiende curves. Niets aan de dag vereist een schurk om de vorm ervan te verklaren — en niets in de minutenkaarten kan een schurk bevestigen of uitsluiten. De bovenstaande gegevens zijn wat er daadwerkelijk is geregistreerd.

GameStop 28 januari FAQ

Wat was de hoogste koers van GameStop ooit?

$483 (intraday, as-traded), genoteerd op de ochtend van 28 januari 2021. Na correctie voor de four-for-one split van 2022 komt dit overeen met $120.75 op basis van de huidige aandelenaantallen.

Waarom heeft Robinhood de handel in GameStop beperkt?

Robinhood heeft GME en andere aandelen op 28 januari 2021 beperkt tot uitsluitend het sluiten van posities. De beslissing werd toegeschreven aan een deposit call van een clearinghouse van ongeveer $3 miljard die ochtend. Er werd in de loop van de nacht meer dan een miljard dollar bij de beleggers opgehaald en de beperkte koopmogelijkheid werd de volgende sessie hersteld. Getuigenissen voor het Congres en het rapport van de SEC uit 2021 documenteren deze gebeurtenis.

Heeft Robinhood de crash van GameStop veroorzaakt?

De marktgegevens registreren de volgorde, niet het oordeel: de beperkingen werden aangekondigd vóór de opening, GME gapped -23.2% down, bereikte de recordkoers van $483 en de laagste koers van $112.25 binnen twee uur, en alle beperkte aandelen sloten die dag met een daling van double digits. Welke factor de grootste impact had, blijft onderwerp van discussie; het rapport van de SEC heeft dit niet definitief vastgesteld.

Hoe vaak werd de handel in GME op 28 januari 2021 geschorst?

De minute tape laat 314 regular-session bars zien in plaats van 390 — ongeveer zeventig-zes minuten verloren door herhaalde Limit Up/Limit Down halts. Dit maakte 28 januari tot de dag met de meeste halts tijdens de gehele squeeze: geen enkele andere sessie van 25 januari tot en met 4 februari had minder dan 348 regular-session bars.

Wat gebeurde er met GME na 28 januari 2021?

Nog één stijging — een slotkoers van $328.24 op 29 januari — en daarna de daling: tegen 2021-02-04 sloot het aandeel op $53.38, en de gerapporteerde short interest was op de settlement van 29 januari al gedaald naar 21.4 miljoen shares.


Elk paneel hierboven is een opgeslagen, versiespecifieke query over de historische tape — breid de SQL uit om elke meting te zien. Wilt u deze dag ervaren in plaats van erover te lezen? Het is een van de speelbare scenario's in de Strasmore Labs trading simulator(https://labs.strasmore.com/g1).