GameStop 28 de enero 2021 precio GME
El 28 de enero de 2021 GME pasó de 483 a 112 dólares en una mañana. Robinhood limitó las operaciones y hubo setenta y seis minutos de halts en el ticker.
El 28 de enero de 2021 fue el punto máximo del squeeze de GameStop. Durante la mañana, GME registró $483 y $112.25 en un lapso de dos horas. Ese mismo día, Robinhood y otros brokers restringieron la compra de la acción. Según el registro de sus propias velas de un minuto, fue el día con más suspensiones de negociación durante el squeeze. La mecánica del squeeze se detalla en la explicación del short squeeze, utilizando esta misma acción como caso de estudio. Esta página analiza el día en cuestión: el ascenso que preparó el escenario, el registro minuto a minuto, las restricciones de los brokers, el flujo de opciones y la caída posterior. Cada cifra proviene de una consulta almacenada; puede expandir cualquier panel para ver el SQL.
The run-up: December 2020 to January 27
The single wildest day in the saga makes no sense without the eight weeks in front of it. GME ended 2020-12-01 at $15.81, a heavily-shorted mall retailer trading a few million shares a day — 6.2 million on an ordinary early-December session. On the eve of this page's session it closed at $345 — 21.8 times the December 1 price.
El SQL exacto detrás de cada cifra
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_dateThe path is a staircase, not a ramp. Through mid-January the stock crept along in the teens; on 2021-01-13 it closed at $31.44 on 144.4 million shares — volume more than twenty times its December norm — and from there each leg was larger than the last, through the $64.85 close on 2021-01-22 to the near-doubling into January 27. Short sellers were positioned throughout: the settlement-date receipts further down this page show what that climb did to them.
El día, en una sola fila: conteo de barras
El SQL exacto detrás de cada cifra
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')Comience con el conteo de barras: 314 barras de un minuto de la sesión regular en lugar de 390. Los aproximadamente setenta y seis minutos faltantes corresponden a las interrupciones por volatilidad Limit Up/Limit Down que se activaron repetidamente mientras el precio se disparaba; ninguna otra sesión del periodo de presión alcista, del 25 de enero al 4 de febrero, registró menos de 348 barras de la sesión regular. Entre las interrupciones: una apertura en $265 — ya -23.2% por debajo del cierre oficial anterior, tras la fuerte volatilidad en el tape nocturno y premercado debido al anuncio de restricciones en las casas de bolsa — luego un pico hasta el máximo histórico de $483 en la primera hora de negociación, un colapso a $112.25 a las 11:24 ET — -67.5% por debajo del cierre anterior — y un cierre en $197.44, -42.8% a la baja en el día. Todos los precios corresponden a los niveles de negociación antes del split de cuatro por uno de 2022.
El volumen merece su propia frase: 57.4 millones de acciones se intercambiaron durante la jornada extendida, con un volumen de dólares de aproximadamente $16.7 mil millones — una rotación de capital de gran capitalización concentrada en un minorista de videojuegos que había negociado 6.2 millones de acciones en una sesión tranquila ocho semanas antes.
Qué es realmente una pausa por Limit Up/Limit Down
Las pausas no fueron una decisión de la bolsa; son automáticas. Un freno de Limit Up/Limit Down (LULD) es el interruptor de circuito para acciones individuales adoptado tras el flash crash de 2010. Cada acción tiene una banda de precio alrededor de un precio de referencia —un promedio móvil de cinco minutos de sus propias operaciones— de un 5% a cada lado para las empresas más grandes, un 10% para la mayoría de las demás, y bandas más amplias para acciones de bajo precio, con bandas duplicadas en los últimos 25 minutos de la sesión. Si la mejor oferta o demanda se mantiene en el límite de la banda durante 15 segundos, la negociación de esa acción se detiene en todas las bolsas durante cinco minutos, y se reanuda mediante subasta en la bolsa de cotización; cuando la subasta no logra cerrarse dentro del rango permitido, la pausa se extiende. En una cinta con la volatilidad de GME esa mañana, el ciclo se repite: reanudación, cruce del ancho de una banda en segundos, nueva pausa. Así es como una sesión pierde setenta y seis minutos sin que nadie presione un botón: el mecanismo funciona exactamente como fue diseñado, consumiendo tiempo de negociación mientras opera.
La mañana, bloque por bloque
El SQL exacto detrás de cada cifra
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_timeLos bloques de las 09:30 y las 10:00 contienen el pico; el mínimo de $112.25 del bloque de las 11:00 es el valle — un viaje de ida y vuelta que eliminó y reconstruyó parcialmente decenas de miles de millones en valor de mercado antes del almuerzo. Observe la falta de volumen dentro de los periodos de suspensión: los bloques con pocas acciones son aquellos donde la negociación se detuvo constantemente. Los registros de $483 y $112.25 fueron ambos "el precio de mercado" esa mañana, con minutos de diferencia — cualquiera que modele los mercados como continuos debería tener esta cinta presente.
Los brokers: Robinhood y la restricción de solo cierre de posiciones
Otro hecho determinante del 28 de enero no se refleja en la cinta de precios. Antes de la apertura, Robinhood —el broker donde se concentró gran parte de las compras minoristas del squeeze— cambió GME y una lista de otros activos a solo cierre de posiciones: los clientes podían vender las acciones que poseían, pero no comprar más. Interactive Brokers había pasado las opciones de GME a liquidación única al mediodía del día anterior, el 27 de enero, y varios otros brokers aumentaron los requerimientos de margen o restringieron las operaciones de apertura. Robinhood atribuyó su restricción a un requerimiento de depósito realizado por la cámara de compensación antes del amanecer, el cual situó en aproximadamente $3 mil millones —monto que se redujo tras implementarse las restricciones—; la firma recaudó más de mil millones de dólares de sus inversionistas esa misma noche. La audiencia del Congreso de febrero de 2021 y el informe del personal de la SEC de octubre de 2021 detallan esa secuencia.
Lo que registra la cinta es una coincidencia temporal, no un veredicto: restricciones anunciadas antes de la apertura, un gap bajista de -23.2% a las 9:30, la impresión de $483, las suspensiones de negociación y el mínimo de $112.25. La lista de restricciones se movió como un bloque:
El SQL exacto detrás de cada cifra
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 ASCCada nombre en el panel cerró con fuertes caídas, con un rango que fue desde el -56.3% para el más afectado (AMC) hasta el -29.1% para el menos afectado (Nokia), con GME en -42.8%. Cinco acciones con cinco negocios distintos presentaron la misma tendencia el mismo día; el factor común fue la lista misma.
El tape de opciones: la máquina de cobertura a máxima capacidad
Para la semana del squeeze, el mercado de opciones de GameStop fue uno de los más activos entre todas las empresas que cotizan en bolsa. El patrón estándar incluye un ciclo de gamma: un dealer que vende una opción call suele comprar acciones para cubrir su posición y, a medida que el precio sube hacia el strike, esa cobertura debe aumentar, lo que genera compras mecánicas durante la subida. Los registros de las operaciones no muestran la cobertura directamente, pero sí muestran el volumen transaccionado:
El SQL exacto detrás de cada cifra
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 sessionEn 2021-01-27, la víspera de esta sesión, $7.99 mil millones de primas de opciones cambiaron de manos solo en contratos de GME, a través de 351 mil registros individuales; el día 28 añadió $3.97 mil millones más. Y un detalle que el relato suele omitir: el tape tenía un exceso de puts en la parte superior. Las calls representaron solo el 24% del volumen de contratos el día 27 (1.05 millones de puts frente a 0.33 millones de calls) y el 29.5% el día 28. Junto con la multitud que buscaba el alza, un grupo pagaba por la caída mientras se formaba el máximo.
Las consecuencias: el descenso completo
El 28 de enero no fue el final. En la siguiente sesión, el 29 de enero, las compras se reanudaron de forma limitada en los brokers con restricciones —los límites de posición en Robinhood llegaron a medirse en cantidades de un solo dígito por acción— y GME cerró a $328.24, subiendo un 66.2% durante el día. Fue el último cierre cerca de los máximos.
El SQL exacto detrás de cada cifra
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_dateEl descenso fue tan pronunciado como la subida: -30.8% en 2021-02-01, -60.1% en 2021-02-02, y para el cierre de 2021-02-04 el precio era de $53.38 —en una acción que había registrado $483 cinco sesiones antes. El reporte quincenal de short interest registra lo que el squeeze había logrado para entonces:
El SQL exacto detrás de cada cifra
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_dateDe 71.2 millones de acciones en corto al cierre del 2020-12-31, el short interest reportado colapsó hasta los 21.4 millones para el 2021-01-29 —el cierre de una sesión después de la fecha de esta página— y el days to cover cayó de 14 en el pico de noviembre a 1. Los shorts cuyas posiciones definieron el escenario habían desaparecido, según esta medida, en gran medida para el final del mes; la anatomía de ese unwind se encuentra en la explicación del short squeeze, y la diferencia entre esta cifra quincenal y el volumen diario de ventas en corto se analiza en short interest vs short volume.
Lo que este día nos enseña
A pesar de su apariencia propia de la era de los memes, el 28 de enero es una lección clásica de liquidez. El precio de una acción lo determina su orden marginal más urgente. Cuando la urgencia por cerrar posiciones (compras de cortos), las restricciones de acceso (brokers limitando compras) y las pausas mecánicas (paros LULD) coinciden en el mismo registro, el descubrimiento de precios ocurre mediante saltos bruscos en lugar de curvas fluidas. Nada en este día requiere de un villano para explicar su comportamiento, y nada en las gráficas de un minuto puede confirmar o descartar la existencia de uno. Los datos presentados arriba son lo que realmente ocurrió.
GameStop January 28 FAQ
What was GameStop's highest price ever?
$483 (intraday, as-traded), printed on the morning of January 28, 2021. Split-adjusted for the 2022 four-for-one split, that corresponds to $120.75 on today's share count.
Why did Robinhood restrict buying GameStop?
Robinhood moved GME and other names to position-closing only on January 28, 2021, and attributed the decision to a clearinghouse deposit call it put at roughly $3 billion that morning. It raised over a billion dollars from investors overnight and restored limited buying the next session. Congressional testimony and the SEC's 2021 staff report document the account.
Did Robinhood cause the GameStop crash?
The tape records the sequence, not the verdict: restrictions were announced before the open, GME gapped -23.2% down, printed its $483 record and its $112.25 low within two hours, and every restricted name closed down double digits the same day. Which ingredient mattered most is still argued; the SEC's staff report declined to settle it.
How many times was GME halted on January 28, 2021?
The minute tape shows 314 regular-session bars instead of 390 — roughly seventy-six minutes lost to repeated Limit Up/Limit Down halts. That made January 28 the heaviest halt day of the entire squeeze: no other session from January 25 through February 4 kept fewer than 348 regular-session bars.
What happened to GME after January 28, 2021?
One more surge — a close of $328.24 on January 29 — and then the slide: by 2021-02-04 the stock closed at $53.38, and reported short interest had already collapsed to 21.4 million shares at the January 29 settlement.
Every panel above is a stored, versioned query over the historical tape — expand the SQL to see each measurement. Want to feel this day instead of reading it? It is one of the playable scenarios in the Strasmore Labs trading simulator.