GameStop 2021年1月28日の株価推移
GMEが483ドルから112ドルへ急落した背景を解説します。Robinhoodの制限や取引停止の真相を詳細にまとめました。
2021年1月28日は、GameStopのショートスクイーズが最高潮に達した日でした。午前中のわずか2時間で、GMEは$483から$112.25まで急騰しました。同日、Robinhoodを含む各証券会社が同株の買いを制限しました。また、以下の分足データによれば、スクイーズ期間中で最も取引停止(トレード・ハルト)が多かった日でもあります。
スクイーズの仕組みについては、ショートスクイーズの解説に記載されています。同記事では、この銘柄を事例として用いています。本ページでは、当日の詳細を扱います。急騰の背景、分単位の株価推移、証券会社の制限、オプションフロー、そして下落への転換について解説します。すべての数値はクエリに基づいています。各パネルを展開すると、SQLを確認できます。
急騰の経緯:2020年12月から1月27日まで
この一連の騒動における最も激しい騰貴は、その前の8週間の動きなしには説明できません。GMEは2020-12-01を$15.81で終えました。同社は空売りが集中していたモール小売業者であり、1日の取引高は数百万株、通常の12月初旬のセッションでは6.2百万株でした。本記事の対象となるセッションの前日、終値は$345を記録しました。これは12月1日の価格の21.8倍に相当します。
各数値の背後にある正確な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株価の推移は、緩やかな傾斜ではなく、階段状でした。1月中旬まで、株価は10ドル台で推移していました。2021-01-13には、144.4百万株の取引を伴い、終値は$31.44となりました。これは通常の12月の取引高の20倍以上です。その後、2021-01-22の$64.85の終値を経て、1月27日には株価がほぼ2倍になるまで、一段階ごとに上昇幅が拡大しました。空売り勢は常にポジションを保有していました。本記事の後半にある決済日の受領記録は、この株価上昇が彼らにどのような影響を与えたかを示しています。
1日の動き — バーの数
各数値の背後にある正確な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')バーの数から見ていきます。通常のセッションの分足は390本ではなく、314本でした。価格の急騰により、Limit Up/Limit Downのボラティリティ・ホルト(取引停止)が繰り返し発生したため、約76分間が不足しています。1月25日から2月4日にかけてのスクイーズ(踏み上げ)期間において、通常のセッションのバーが348本を下回ったことは他にありません。ホルトの合間には、以下の動きがありました。証券会社による取引制限の発表を受けて、夜間およびプレマーケットの取引が激化した結果、始値は$265となり、前日の終値よりすでに-23.2%低い水準となりました。その後、取引開始1時間以内に史上最高値の$483まで急騰し、11:24(東部標準時)には$112.25まで下落しました。これは前日終値より-67.5%低い水準です。終値は$197.44となり、日足では-42.8%の下落となりました。なお、すべての価格は2022年の4対1の株式分割前のものです。
取引規模についても触れておきます。延長時間を含めた総出来高は57.4百万株、ドル建ての取引額は約$16.7十億ドルに達しました。これは大型株並みの出来高であり、8週間前の静かなセッションでは6.2百万株の取引にとどまっていたビデオゲーム小売業者に集中しました。
Limit Up/Limit Down(LULD)停止の仕組み
これらの停止措置は取引所の裁量ではなく、自動的に発動します。Limit Up/Limit Down(LULD)停止は、2010年のフラッシュ・クラッシュ後に導入された個別銘柄向けのサーキットブレーカーです。すべての銘柄には、参照価格の上下に価格帯が設定されています。参照価格とは、直近5分間の取引価格の移動平均です。価格帯は、主要銘柄では上下5%、その他の多くの銘柄では10%であり、低価格株ではさらに広くなります。また、取引終了前の25分間は価格帯が2倍に拡大します。最良の気配値が15秒間にわたって価格帯の境界に留まった場合、その銘柄の取引はすべての取引所で5分間停止します。その後、上場取引所でのオークションによって取引が再開されます。オークションの結果が許容範囲内に収まらない場合、停止時間は延長されます。その日の朝のGMEのような激しい値動きでは、このサイクルが繰り返されます。再開後、数秒で価格帯の幅に達し、再び停止します。このようにして、誰も操作していないにもかかわらず、セッションから76分間が失われます。これはメカニズムが設計通りに機能し、動作に伴い取引時間を消費している結果です。
午前中の取引動向
各数値の背後にある正確な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_time09:30と10:00のバケットがピークを示しています。11:00のバケットにおける$112.25の安値は底となります。昼食前に、市場価値の数百億ドルが消失し、その後一部が回復するというラウンドトリップが発生しました。取引停止時間帯の出来高の欠如に注意してください。出来高が少ないバケットは、取引が停止した時間帯です。$483と$112.25の価格は、数分の差でどちらもその日の「市場価格」となりました。市場を連続的なものとしてモデル化する者は、このテープを常に意識しておくべきです。
ブローカー:Robinhoodとポジション決済限定措置
1月28日のもう一つの決定的な事実は、株価チャートには現れません。取引開始前、今回のショートスクイーズにおける個人投資家の買いの多くを担っていたRobinhoodは、GMEおよびその他の銘柄をポジション決済限定(position-closing only)に設定しました。これにより、顧客は保有株を売却することはできますが、新規購入はできなくなりました。Interactive Brokersは前日の1月27日正午にGMEのオプションを清算専用(liquidation-only)としており、他の複数のブローカーも証拠金要件を引き上げたり、新規建て取引を制限したりしていました。Robinhoodは、この制限の理由として、未明に清算機関から約30億ドルの預託金(deposit call)を求められたことを挙げました(制限導入後は減少)。同社はその夜、投資家から10億ドル以上を調達しました。2021年2月の議会公聴会および2021年10月のSECスタッフレポートは、この一連の流れを詳細に記録しています。
株価チャートが示しているのは、同時発生した事象であり、結論ではありません。取引開始前の制限発表、9時30分の-23.2%のギャップダウン、483の価格、取引停止、そして112.25の安値です。また、制限対象銘柄は一斉に動きました。
各数値の背後にある正確な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パネル内の全銘柄が大幅に下落しました。下落率は、最も大きな影響を受けたAMCの-56.3%から、最も軽微なNokiaの-29.1%まで及び、GME自体は-42.8%でした。全く異なる事業を展開する5つの銘柄が、同日に同じ値動きを見せました。共通点は、制限銘柄リストそのものです。
オプション取引の動向:フル稼働するヘッジ・メカニズム
スクイーズ週、GameStopのオプション市場は、上場企業の中でも最も活発な市場の一つとなりました。一般的な要因として、ガンマ・ループが挙げられます。これは、コール・オプションを売却したディーラーがヘッジのために株式を購入し、価格が権利行使価格に近づくにつれて、そのヘッジを拡大させる必要があるため、上昇局面で機械的な買いを誘発する現象です。取引履歴(トレード・プリント)にヘッジそのものが直接記録されるわけではありませんが、その取引量は以下のように示されています。
各数値の背後にある正確な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 session2021-01-27のセッション前夜、GMEの契約のみで351千件の個別取引が行われ、$7.99十億ドルのオプション・プレミアムが動きました。28日にはさらに$3.97十億ドルが加わりました。また、通常見落とされがちな詳細があります。それは、価格の上昇局面において、プット・オプションの取引が過半数を占めていた点です。27日の契約ボリュームに占めるコールの割合はわずか24%であり(プットが1.05百万件に対し、コールは0.33百万件)、28日も29.5%に留まりました。上昇を追う投資家がいる一方で、高値圏では下落に備える投資家も多く存在していました。
結末:急落への転換
1月28日は終わりではありませんでした。翌1月29日の取引では、制限を受けたブローカーでの買いが限定的に再開されました。Robinhoodでは、一時ポジションの上限が1桁の株数にまで制限されました。GMEの終値は328.24となり、前日比で66.2%上昇しました。これが高値圏に近い最後の終値となりました。
各数値の背後にある正確な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下落の勢いは上昇時と同様に急激でした。2021-02-01で-30.8%、2021-02-02で-60.1%となり、2021-02-04の終値は$53.38に達しました。5取引日前の株価は$483でした。隔週の空売り残高データは、その時点までにショートスクイーズが達成した内容を示しています。
各数値の背後にある正確な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_date2020-12-31の決済時点では71.2百万株の空売りがありましたが、報告された空売り残高は2021-01-29までに21.4百万株へと激減しました(2021-01-29は本記事の日付の1セッション後の決済日です)。また、Days to coverは、11月のピーク時の14から1へと減少しました。この指標に基づくと、この局面を作り出した空売りポジションの多くは、月末までに解消されていました。この解消の仕組みについてはショートスクイーズの解説に、この隔週の数値と日次の空売り高の違いについては空売り残高と空売り高の違いで説明しています。
この日が教えること
1月28日は、ミーム株ブームの装いとは裏腹に、流動性に関する古典的な教訓を示しています。株価は最も緊急性の高い限界注文によって決定されます。ポジション決済の緊急性(ショートの買い戻し)、アクセス制限(証券会社による買い制限)、そして機械的な一時停止(LULDによる取引停止)が同時に発生すると、価格発見は曲線ではなく、断続的な跳ね上がりとして現れます。この日の動きを説明するために悪役を想定する必要はありません。また、分足のデータから悪役の存在を断定することもできません。上記の記録こそが、実際に起きた事実です。
GameStop 1月28日 FAQ
GameStopの史上最高値はいくらでしたか?
$483(日中、実勢価格)です。2021年1月28日の午前に記録されました。2022年の4対1の株式分割を考慮して調整した場合、現在の株式数では$120.75に相当します。
なぜRobinhoodはGameStopの買いを制限したのですか?
Robinhoodは2021年1月28日、GMEおよびその他の銘柄を建玉の決済のみに制限しました。この決定の理由は、同日の午前に清算機関から約30億ドルの証拠金差し入れを求められたことによるものです。同社は一晩で投資家から10億ドル以上を調達し、翌セッションでは限定的な買いを再開しました。この経緯は、議会での証言およびSECの2021年スタッフレポートに記録されています。
RobinhoodがGameStopの暴落を引き起こしたのですか?
記録されているのは一連の経過であり、結論ではありません。制限は取引開始前に発表され、GMEは-23.2%の窓を開けて下落しました。その後、2時間以内に高値$483と安値$112.25を記録し、制限対象となったすべての銘柄が同日に二桁の下げで取引を終えました。どの要因が最も重要であったかについては、現在も議論が続いています。SECのスタッフレポートは、この問題の決着を避けています。
2021年1月28日にGMEは何回取引停止になりましたか?
分単位の記録によると、通常の取引バーは390ではなく314でした。これは、繰り返されたLimit Up/Limit Downによる取引停止により、約76分間が失われたことを意味します。これにより、1月28日は一連のスクイーズ期間中で最も取引停止が多かった日となりました。1月25日から2月4日までの期間において、通常の取引バーが348を下回ったセッションは他にありません。
2021年1月28日以降、GMEはどうなりましたか?
1月29日に$328.24の終値を記録する急騰がもう一度ありましたが、その後は下落しました。2021-02-04までに株価は$53.38で取引を終え、報告された空売り残高は1月29日の決済時点で既に21.4百万株まで減少していました。
上記のパネルはすべて、ヒストリカル・テープに対する保存・バージョン管理されたクエリです。SQLを展開すると各測定値を確認できます。この記事を読む代わりに、この日を体験したいですか?Strasmore Labs トレーディングシミュレーターでプレイ可能なシナリオの一つとして用意されています。