Strasmore Research
Investigasi Matt ConnorOleh Matt Connor · Diperbarui 2026-07-25

Harga GME 28 Januari 2021 dari 483 ke 112

Pada 28 Januari 2021, GME mencetak 483 dan 112 dalam satu pagi, Robinhood menerapkan position-close-only, dan 76 menit hilang akibat trading halts selama puncak short squeeze.

28 Januari 2021 adalah puncak dari squeeze GameStop — pagi hari saat GME mencetak $483 dan $112.25 dalam waktu dua jam, hari ketika Robinhood dan broker lainnya membatasi pembelian saham tersebut, dan — berdasarkan hitungan bar menitnya sendiri, yang tertera di bawah — hari dengan penghentian perdagangan terberat selama squeeze itu sendiri. Mekanisme squeeze dibahas dalam penjelasan short squeeze, dengan saham yang sama sebagai studi kasus; halaman ini membahas hari tersebut — kenaikan yang memicu kejadian itu, pergerakan harga menit demi menit, pembatasan broker, aliran opsi, dan penurunan kembali ke titik awal. Setiap angka adalah query tersimpan; perluas panel apa pun untuk melihat SQL.

Kenaikan: Desember 2020 hingga 27 Januari

Hari paling liar dalam saga ini tidak akan masuk akal tanpa delapan minggu sebelumnya. GME mengakhiri 2020-12-01 pada harga $15.81, sebuah peritel mal yang banyak di-short dengan perdagangan beberapa juta saham per hari — 6.2 juta pada sesi awal Desember yang biasa. Pada malam sesi di halaman ini, harga ditutup pada $34521.8 kali lipat dari harga satu Desember.

QueryClose harian dan volume GME — 1 Desember 2020 sampai 27 Januari 2021 (as-traded prices)
SQL tepat di balik setiap angka
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

Jalurnya berupa tangga, bukan tanjakan. Hingga pertengahan Januari, harga saham merangkak di angka belasan; pada 2021-01-13 harga ditutup pada $31.44 dengan 144.4 juta saham — volume lebih dari dua puluh kali lipat norma Desembernya — dan dari sana setiap kenaikan lebih besar dari sebelumnya, melalui penutupan $64.85 pada 2021-01-22 hingga hampir dua kali lipat pada 27 Januari. Short seller mengambil posisi di sepanjang periode tersebut: tanda terima tanggal penyelesaian di bagian bawah halaman ini menunjukkan dampak kenaikan tersebut bagi mereka.

Satu hari dalam satu baris — hitung jumlah bar

QueryGME pada 28 Januari 2021 — receipted (as-traded, pre-2022-split prices)
SQL tepat di balik setiap angka
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')

Mulai dengan jumlah bar: 314 bar menit sesi reguler alih-alih 390. Sekitar tujuh puluh enam menit yang hilang adalah akibat penghentian volatilitas Limit Up/Limit Down yang terjadi berulang kali saat harga melonjak tajam; tidak ada sesi lain dalam periode squeeze, dari 25 Januari hingga 4 Februari, yang memiliki kurang dari 348 bar sesi reguler. Di antara penghentian tersebut: pembukaan pada $265 — sudah -23.2% di bawah penutupan resmi sebelumnya, karena pergerakan harga overnight dan premarket menjadi liar saat pembatasan broker diumumkan — kemudian lonjakan ke titik tertinggi sepanjang masa sebesar $483 pada jam pertama pembukaan, penurunan ke $112.25 pada pukul 11:24 ET — -67.5% di bawah penutupan sebelumnya — dan penutupan pada $197.44, turun -42.8% pada hari itu. Semua harga adalah harga saat diperdagangkan, sebelum split four-for-one tahun 2022.

Skalanya layak mendapatkan kalimat tersendiri: 57.4 juta saham berpindah tangan sepanjang hari perdagangan yang diperpanjang, dengan volume dolar sekitar $16.7 miliar — perputaran seukuran megacap yang terkonsentrasi pada pengecer video game yang hanya memperdagangkan 6.2 juta saham pada sesi tenang delapan minggu sebelumnya.

Apa itu sebenarnya penghentian Limit Up/Limit Down

Penghentian perdagangan tersebut bukan merupakan diskresi bursa; melainkan terjadi secara otomatis. Penghentian Limit Up/Limit Down (LULD) adalah circuit breaker saham tunggal yang diadopsi setelah flash crash 2010. Setiap saham memiliki pita harga di sekitar harga referensi — rata-rata bergulir lima menit dari perdagangannya sendiri — sebesar lima persen di kedua sisi untuk saham-saham terbesar, sepuluh persen untuk sebagian besar saham lainnya, dan lebih lebar untuk saham berharga rendah, dengan pita yang diperlebar dua kali lipat pada dua puluh lima menit terakhir sesi perdagangan. Jika bid atau offer terbaik berada di tepi pita selama lima belas detik, perdagangan saham tersebut dihentikan di setiap bursa selama lima menit, dan dibuka kembali melalui lelang di bursa pencatatan; ketika lelang tidak dapat diselesaikan di dalam rentang yang diizinkan, jeda tersebut diperpanjang. Pada pergerakan harga seperti GME pagi itu, siklus tersebut berulang: buka kembali, melewati lebar pita dalam hitungan detik, lalu terhenti lagi. Begitulah sebuah sesi kehilangan tujuh puluh enam menit tanpa ada seorang pun yang menekan tombol — mekanisme bekerja tepat seperti yang dirancang, menghabiskan waktu perdagangan saat beroperasi.

Pagi hari, bucket demi bucket

QueryGME per setengah jam — sesi reguler 28 Januari 2021
SQL tepat di balik setiap angka
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

Bucket pukul 09:30 dan 10:00 berisi titik puncak; low $112.25 pada bucket pukul 11:00 adalah titik terendah — sebuah pergerakan bolak-balik yang menghapus dan membangun kembali sebagian dari puluhan miliar nilai pasar sebelum waktu makan siang. Perhatikan volume yang hilang di dalam jendela halt: bucket dengan jumlah saham yang jarang adalah bucket di mana perdagangan terus terhenti. Cetakan $483 dan $112.25 keduanya adalah "harga pasar" pada pagi itu, dengan selisih beberapa menit — siapa pun yang memodelkan pasar sebagai sesuatu yang kontinu harus menempelkan rekaman ini di atas meja mereka.

Broker: Robinhood dan pembatasan hanya tutup posisi

Fakta penentu lainnya pada tanggal dua puluh delapan Januari tidak tercatat dalam data harga. Sebelum pasar dibuka, Robinhood — broker tempat sebagian besar pembelian ritel saat squeeze terjadi — mengubah status GME dan daftar saham lainnya menjadi hanya tutup posisi: nasabah dapat menjual saham yang mereka miliki tetapi tidak dapat membeli. Interactive Brokers telah menetapkan opsi GME menjadi hanya likuidasi pada tengah hari sebelumnya, dua puluh tujuh Januari, dan beberapa broker lain menaikkan persyaratan margin atau membatasi pembukaan perdagangan. Robinhood mengaitkan pembatasan tersebut dengan panggilan deposit sebelum fajar dari lembaga kliring industri yang nilainya sekitar $3 miliar — jumlah ini berkurang setelah pembatasan diterapkan — dan perusahaan tersebut menghimpun lebih dari satu miliar dolar dari investornya malam itu. Sidang kongres Februari dua ribu dua puluh satu dan laporan staf SEC Oktober dua ribu dua puluh satu menguraikan urutan kejadian tersebut secara terperinci.

Apa yang tercatat dalam data adalah kesamaan waktu, bukan sebuah vonis: pembatasan diumumkan sebelum pembukaan, gap down -23.2% pada pukul sembilan tiga puluh, cetakan $483, penghentian perdagangan, dan titik terendah $112.25. Daftar pembatasan tersebut bergerak sebagai satu blok:

QueryNama-nama restricted pada 28 Januari 2021 — prior close vs close (ET regular session)
SQL tepat di balik setiap angka
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

Setiap saham dalam daftar tersebut ditutup turun tajam, mulai dari -56.3% untuk yang terdampak paling parah (AMC) hingga -29.1% untuk yang paling ringan (Nokia), dengan GME sendiri berada di -42.8%. Lima saham dengan lima bisnis yang tidak saling terkait menunjukkan pola yang sama pada hari yang sama — faktor pemersatunya adalah daftar pembatasan itu sendiri.

Rekaman opsi: mesin hedging dengan kecepatan penuh

PadaL1% Pada minggu squeeze, pasar opsi GameStop menjadi salah satu yang tersibuk di antara perusahaan publik mana pun. Penjelasan standarnya mencakup gamma loop — dealer yang menjual call option biasanya membeli saham untuk hedging, dan saat harga naik menuju strike, hedge tersebut harus bertambah, sehingga menambah pembelian mekanis saat harga naik. Data transaksi tidak dapat menunjukkan hedging secara langsung, tetapi menunjukkan throughput-SSC2%:

QueryTrade options GME per sesi — 25–28 Januari 2021
SQL tepat di balik setiap angka
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

Pada 2021-01-27, malam sebelum sesi ini, premium opsi senilai $7.99 miliar berpindah tangan hanya dalam kontrak GME, melalui 351 ribu transaksi individu; tanggal 28 menambah $3.97 miliar lagi. Dan satu detail yang biasanya terlewatkan dalam penuturan ulang: rekaman transaksi menunjukkan dominasi put pada titik puncak. Call hanya mencakup 24% dari volume kontrak pada tanggal 27 (1.05 juta put berbanding 0.33 juta call) dan 29.5% pada tanggal 28. Bersamaan dengan kerumunan yang mengejar kenaikan harga, terdapat kerumunan yang membayar untuk penurunan saat puncak terbentuk.

Dampak setelahnya: perjalanan pulang ke bawah

Tanggal dua puluh delapan Januari bukanlah akhir. Pada sesi berikutnya, dua puluh sembilan Januari, pembelian terbatas kembali terjadi di broker yang dibatasi — batas posisi di Robinhood pada satu titik terukur dalam jumlah saham satu digit — dan GME ditutup pada $328.24, naik 66.2% pada hari itu. Itu adalah penutupan terakhir yang mendekati level tertinggi.

QueryClose harian dan volume GME — 29 Januari sampai 9 Februari 2021
SQL tepat di balik setiap angka
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

Penurunan harga terjadi setajam kenaikannya: -30.8% pada 2021-02-01, -60.1% pada 2021-02-02, dan pada 2021-02-04 harga penutupan adalah $53.38 — pada saham yang telah mencetak $483 lima sesi sebelumnya. Laporan short-interest dua mingguan mencatat apa yang telah dicapai oleh squeeze pada saat itu:

QueryShort interest GME yang dilaporkan per settlement date — November 2020 sampai Februari 2021
SQL tepat di balik setiap angka
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

Dari 71.2 juta saham short pada settlement 2020-12-31, reported short interest anjlok menjadi 21.4 juta pada 2021-01-29 — settlement satu sesi setelah tanggal halaman ini — dan hari untuk menutup posisi turun dari 14 pada puncak November menjadi 1. Para short seller yang posisinya menentukan setup tersebut, berdasarkan ukuran ini, sebagian besar telah hilang pada akhir bulan; anatomi dari unwind tersebut ada di penjelasan short squeeze, dan perbedaan antara angka dua mingguan ini dengan volume short-sale harian dibahas dalam short interest vs short volume.

Pelajaran dari hari ini

Terlepas dari segala atribut era meme, 28 Januari adalah pelajaran likuiditas klasik. Harga saham ditentukan oleh order marginal yang paling mendesak. Ketika urgensi penutupan posisi (short buying), pembatasan akses (broker membatasi pembelian), dan jeda mekanis (LULD halts) terjadi secara bersamaan, penemuan harga terjadi dalam lompatan terputus-putus, bukan dalam bentuk kurva. Tidak ada hal dari hari tersebut yang membutuhkan sosok penjahat untuk menjelaskan polanya — dan tidak ada hal dalam bar menit yang dapat membuktikan keberadaan atau ketiadaan sosok tersebut. Data di atas adalah apa yang sebenarnya tercatat.

FAQ GameStop 28 Januari

Berapa harga tertinggi GameStop yang pernah tercapai?

$483 (intraday, as-traded), tercatat pada pagi hari tanggal 28 Januari 2021. Setelah disesuaikan dengan split four-for-one tahun 2022, angka tersebut setara dengan $120.75 berdasarkan jumlah saham saat ini.

Mengapa Robinhood membatasi pembelian GameStop?

Robinhood mengubah status GME dan beberapa nama lainnya menjadi hanya untuk penutupan posisi pada 28 Januari 2021. Keputusan ini disebabkan oleh panggilan deposit clearinghouse yang diperkirakan mencapai sekitar $3 miliar pada pagi itu. Robinhood menghimpun lebih dari satu miliar dolar dari investor dalam semalam dan memulihkan pembelian terbatas pada sesi berikutnya. Kesaksian Kongres dan laporan staf SEC tahun 2021 mendokumentasikan kejadian tersebut.

Apakah Robinhood menyebabkan jatuhnya harga GameStop?

Data tape mencatat urutan kejadian, bukan vonis: pembatasan diumumkan sebelum pembukaan pasar, GME gap -23.2% turun, mencatat rekor $483 dan titik terendah $112.25 dalam waktu dua jam, dan setiap nama yang dibatasi ditutup turun dua digit pada hari yang sama. Faktor mana yang paling berpengaruh masih diperdebatkan; laporan staf SEC menolak untuk memutuskannya.

Berapa kali GME dihentikan perdagangannya pada 28 Januari 2021?

Data minute tape menunjukkan 314 bar sesi reguler, bukan 390 — sekitar tujuh puluh enam menit hilang akibat penghentian Limit Up/Limit Down yang berulang. Hal ini menjadikan 28 Januari sebagai hari dengan penghentian terberat selama seluruh periode squeeze: tidak ada sesi lain dari 25 Januari hingga 4 Februari yang memiliki kurang dari 348 bar sesi reguler.

Apa yang terjadi pada GME setelah 28 Januari 2021?

Satu lonjakan lagi — penutupan di harga $328.24 pada 29 Januari — kemudian terjadi penurunan: pada 2021-02-04 saham ditutup pada $53.38, dan short interest yang dilaporkan telah anjlok menjadi 21.4 juta saham pada penyelesaian 29 Januari.


Setiap panel di atas adalah query versi tersimpan dari historical tape — perluas SQL untuk melihat setiap pengukuran. Ingin merasakan hari ini daripada sekadar membacanya? Ini adalah salah satu skenario yang dapat dimainkan di simulator trading Strasmore Labs.