Strasmore Research
Rekap pasar Matt ConnorOleh Matt Connor · Diperbarui 2026-07-24 · data as of July 24, 2026 · refreshed weekly

Saham dengan pergerakan terbesar bulan ini

Daftar saham dengan kenaikan dan penurunan terbesar bulan ini berdasarkan data bursa. Mencakup volume transaksi dalam dolar untuk setiap pergerakan harga.

Saham dengan pergerakan terbesar bulan ini diurutkan di bawah berdasarkan data langsung dari bursa, mencakup 21 sesi perdagangan yang telah selesai dari Jun 23 hingga Jul 22. Layar ini hanya menampilkan perusahaan operasional yang diperdagangkan setidaknya $1 miliar selama periode tersebut, sehingga setiap pergerakan dalam daftar didukung oleh modal riil. Dana leveraged dan inverse tidak disertakan, dan periode pemantauan akan terus diperbarui seiring selesainya sesi perdagangan baru.

Saham dengan kenaikan terbesar bulan ini

Tabel ini mengurutkan kenaikan terbesar selama periode tersebut. Setiap baris menyertakan jumlah dolar yang ditransaksikan di samping persentase, yang membedakan antara perubahan harga dengan volume tinggi dan volume rendah.

QuerySaham dengan kenaikan terbesar bulan ini (perusahaan dengan volume trading >$1B selama periode tersebut)
SQL tepat di balik setiap angka
WITH window_days AS (
    SELECT d
    FROM (
        SELECT d, max(d) OVER () AS last_full
        FROM (
            SELECT d
            FROM (
                SELECT d, bars, medianExact(bars) OVER () AS typical_bars
                FROM (
                    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
                    FROM global_markets.delayed_stocks_minute_aggs
                    WHERE window_start >= now() - INTERVAL 34 DAY
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
                    GROUP BY d
                    HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
                )
            )
            WHERE bars >= 0.85 * typical_bars
        )
    )
    WHERE d > last_full - 30
)
SELECT ticker,
       round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct,
       round(sum(dollars) / 1e9, 1) AS month_dollar_bn
FROM (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMin(toFloat64(open), window_start) AS o,
           argMax(toFloat64(close), window_start) AS c,
           sum(toFloat64(close) * toFloat64(volume)) AS dollars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 34 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
      AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
                     WHERE market_cap > 0)
      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN today() - 45 AND today())
    GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) DESC
LIMIT 10

CRNX memimpin dengan kenaikan 136.1% pada volume perdagangan $9.7 miliar, mengungguli PBF sebesar 65.9% dan MAN sebesar 62.1%. Pergerakan sebesar itu dalam satu bulan biasanya muncul pertama kali sebagai kenaikan relative volume terhadap average daily volume saham tersebut, dan sering kali dimulai dengan overnight gap pada satu sesi, alih-alih kenaikan bertahap di sepanjang periode tersebut.

Saham dengan penurunan terbesar bulan ini

Kebalikan dari konstruksi yang sama: penurunan paling tajam selama periode tersebut, di antara perusahaan yang melampaui ambang batas $1 miliar.

QuerySaham dengan penurunan terbesar bulan ini (perusahaan dengan volume trading >$1B selama periode tersebut)
SQL tepat di balik setiap angka
WITH window_days AS (
    SELECT d
    FROM (
        SELECT d, max(d) OVER () AS last_full
        FROM (
            SELECT d
            FROM (
                SELECT d, bars, medianExact(bars) OVER () AS typical_bars
                FROM (
                    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
                    FROM global_markets.delayed_stocks_minute_aggs
                    WHERE window_start >= now() - INTERVAL 34 DAY
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
                    GROUP BY d
                    HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
                )
            )
            WHERE bars >= 0.85 * typical_bars
        )
    )
    WHERE d > last_full - 30
)
SELECT ticker,
       round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct,
       round(sum(dollars) / 1e9, 1) AS month_dollar_bn
FROM (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMin(toFloat64(open), window_start) AS o,
           argMax(toFloat64(close), window_start) AS c,
           sum(toFloat64(close) * toFloat64(volume)) AS dollars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 34 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
      AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
                     WHERE market_cap > 0)
      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN today() - 45 AND today())
    GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) ASC
LIMIT 10

CLBK adalah penurun paling tajam sebesar -44.6% dengan nilai perdagangan $1.1 miliar, diikuti oleh NVTS sebesar -41.6%. Perhatikan kolom dolar pada papan ini. Penurunan yang terjadi pada volume perdagangan besar adalah peristiwa yang berbeda dengan yang tercatat pada pasar yang sepi, dan keduanya dibedakan di sini alih-alih diasumsikan.

Pertanyaan yang sama dalam tiga timeframe

Satu pertanyaan, tiga jendela waktu. Sebuah nama bisa memuncaki satu papan peringkat tetapi tidak muncul sama sekali di dua papan lainnya.

Ketiga papan peringkat ini disusun secara terpisah dan tampilan layarnya tidak identik. Halaman mingguan menetapkan batas likuiditas dan minimum sesi sendiri selama jendela lima sesi, sedangkan halaman year-to-date menyaring berdasarkan rata-rata volume dolar harian, bukan total volume yang diperdagangkan selama periode tersebut. Setiap halaman mencantumkan aturan sendiri dalam bagian metodenya, jadi bacalah aturan tersebut sebelum memindahkan sebuah nama dari satu papan ke papan lainnya.

Satu gap tunggal mendominasi papan mingguan tetapi hilang dalam jangka waktu satu tahun. Pergerakan lambat bulanan tidak pernah mencapai papan mingguan sama sekali. Membaca ketiganya secara berdampingan adalah cara termudah untuk membedakan antara peristiwa satu hari dengan sebuah tren.

Kondisi pasar selama periode yang sama

Performa bulanan sebuah saham berbeda jika dibandingkan dengan performa pasar. Empat indeks utama, masing-masing dihitung ulang berdasarkan harga pembukaan pertama dalam periode tersebut:

QueryEmpat tracker index utama pada periode yang sama, rebased ke harga pembukaan pertama
SQL tepat di balik setiap angka
WITH window_days AS (
    SELECT d
    FROM (
        SELECT d, max(d) OVER () AS last_full
        FROM (
            SELECT d
            FROM (
                SELECT d, bars, medianExact(bars) OVER () AS typical_bars
                FROM (
                    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
                    FROM global_markets.delayed_stocks_minute_aggs
                    WHERE window_start >= now() - INTERVAL 34 DAY
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
                    GROUP BY d
                    HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
                )
            )
            WHERE bars >= 0.85 * typical_bars
        )
    )
    WHERE d > last_full - 30
)
SELECT session,
       round(anyIf(cum_pct, ticker = 'SPY'), 2) AS sp500_pct,
       round(anyIf(cum_pct, ticker = 'QQQ'), 2) AS nasdaq100_pct,
       round(anyIf(cum_pct, ticker = 'DIA'), 2) AS dow_pct,
       round(anyIf(cum_pct, ticker = 'IWM'), 2) AS russell2000_pct
FROM (
    SELECT ticker,
           formatDateTime(d, '%Y-%m-%d') AS session,
           100 * (c / first_value(o) OVER (PARTITION BY ticker ORDER BY d) - 1) AS cum_pct
    FROM (
        SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               argMin(toFloat64(open), window_start) AS o,
               argMax(toFloat64(close), window_start) AS c
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= now() - INTERVAL 34 DAY
          AND ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
          AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
        GROUP BY ticker, d
    )
)
GROUP BY session
ORDER BY session

Pada sesi terakhir, tracker S&P 500 berada di level 1.85%, tracker Nasdaq 100 di -1.47%, tracker Dow di 1.33%, dan tracker Russell 2000 di 0.17%. Empat keranjang, satu periode, empat hasil yang berbeda. Sekarang bandingkan daftar pemenang dengan rentang tersebut: saham dengan kenaikan tertinggi melampaui 136.1% selama sesi yang sama. Pergerakan perusahaan individual jauh lebih bervariasi dibandingkan keranjang indeks yang menampungnya, yang menjadi alasan utama mengapa daftar penggerak pasar berisi nama-nama tunggal.

Performa perusahaan ternama

Pembaca yang mencari saham dengan performa terbaik bulan ini biasanya juga ingin mengetahui hasil dari saham yang sudah mereka miliki. Berikut adalah keranjang tetap berisi delapan mega-cap ternama, dengan periode dan komposisi yang sama:

QueryDelapan nama mega-cap populer selama periode yang sama
SQL tepat di balik setiap angka
WITH window_days AS (
    SELECT d
    FROM (
        SELECT d, max(d) OVER () AS last_full
        FROM (
            SELECT d
            FROM (
                SELECT d, bars, medianExact(bars) OVER () AS typical_bars
                FROM (
                    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
                    FROM global_markets.delayed_stocks_minute_aggs
                    WHERE window_start >= now() - INTERVAL 34 DAY
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
                    GROUP BY d
                    HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
                )
            )
            WHERE bars >= 0.85 * typical_bars
        )
    )
    WHERE d > last_full - 30
)
SELECT ticker,
       round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct
FROM (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMin(toFloat64(open), window_start) AS o,
           argMax(toFloat64(close), window_start) AS c
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 34 DAY
      AND ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'GOOGL', 'META', 'TSLA', 'AVGO')
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN today() - 45 AND today())
    GROUP BY ticker, d
)
GROUP BY ticker
HAVING count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) DESC

Kelompok ini bergerak dari 11.5% untuk META di posisi teratas hingga -4.7% untuk TSLA di posisi terbawah. Pergerakan mereka tidak seragam, yang mana merupakan hal lumrah dan bukan pengecualian. Keanggotaan indeks menyatukan perusahaan-perusahaan ini; lini pendapatan mereka hampir tidak memiliki keterkaitan satu sama lain. Keranjang ini adalah daftar tetap dari delapan nama, bukan sebuah peringkat, jadi gunakanlah sebagai referensi dan bukan sebagai klaim mengenai perusahaan mana yang paling besar.

Seperti apa bulan yang normal

Leaderboard menunjukkan bagian ekor. Ini menunjukkan bagian utama. Semua perusahaan 1167 yang lolos penyaringan, dikelompokkan berdasarkan return mereka selama periode tersebut:

QueryPosisi setiap perusahaan yang di-screen: monthly returns berdasarkan bucket
SQL tepat di balik setiap angka
WITH window_days AS (
    SELECT d
    FROM (
        SELECT d, max(d) OVER () AS last_full
        FROM (
            SELECT d
            FROM (
                SELECT d, bars, medianExact(bars) OVER () AS typical_bars
                FROM (
                    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
                    FROM global_markets.delayed_stocks_minute_aggs
                    WHERE window_start >= now() - INTERVAL 34 DAY
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
                    GROUP BY d
                    HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
                )
            )
            WHERE bars >= 0.85 * typical_bars
        )
    )
    WHERE d > last_full - 30
)
SELECT tup.1 AS return_bucket,
       tup.3 AS stocks
FROM (
    SELECT arrayJoin(arrayZip(
               ['down 20% or more', 'down 10% to 20%', 'down 0% to 10%',
                'up 0% to 10%', 'up 10% to 20%', 'up 20% or more'],
               [1, 2, 3, 4, 5, 6],
               [countIf(r <= -20), countIf(r > -20 AND r <= -10), countIf(r > -10 AND r < 0),
                countIf(r >= 0 AND r < 10), countIf(r >= 10 AND r < 20), countIf(r >= 20)])) AS tup
    FROM (
        SELECT ticker,
               (argMax(c, d) / argMin(o, d) - 1) * 100 AS r
        FROM (
            SELECT ticker,
                   toDate(toTimeZone(window_start, 'America/New_York')) AS d,
                   argMin(toFloat64(open), window_start) AS o,
                   argMax(toFloat64(close), window_start) AS c,
                   sum(toFloat64(close) * toFloat64(volume)) AS dollars
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE window_start >= now() - INTERVAL 34 DAY
              AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
              AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
              AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
              AND ticker NOT IN ('SPCX')
              AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
              AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
                             WHERE market_cap > 0)
              AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                                 WHERE execution_date BETWEEN today() - 45 AND today())
            GROUP BY ticker, d
        )
        GROUP BY ticker
        HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
    )
)
ORDER BY tup.2

52 dari perusahaan yang disaring mengalami kenaikan 20% atau lebih, dan 50 mengalami penurunan 20% atau lebih. Dua kelompok terdekat dengan angka nol masing-masing memiliki 300 dan 515 nama. Grafik tersebut adalah bentuk dasar dari leaderboard movers, dan sepuluh besar adalah bagian ujung paling kanan. Bacalah papan peringkat di atas dengan pemahaman ini: pergerakan bulanan sepuluh besar adalah outlier secara struktur, bukan bulan tipikal untuk saham tipikal.

Faktor yang menyebabkan saham masuk dalam daftar monthly movers

Satu bulan cukup lama untuk menampung beberapa peristiwa, namun cukup singkat sehingga biasanya satu peristiwa mendominasi. Nama-nama dalam daftar ini biasanya berkaitan dengan tanggal tertentu pada kalender perusahaan. Hasil kuartalan adalah yang paling umum: hasil yang melampaui atau tidak memenuhi ekspektasi akan mengubah harga dalam satu sesi, dan sisa bulan tersebut diperdagangkan di sekitar level baru tersebut. Perubahan guidance melakukan hal yang sama tanpa disertai hasil laporan keuangan.

Berita merger and acquisition memberikan jejak paling khas pada daftar bulanan. Harga saham melonjak ke level mendekati harga kesepakatan yang diumumkan dan kemudian menjadi stagnan, dengan volume transaksi dalam dolar tetap besar sementara persentase perubahannya mendatar. Jika sebuah nama di daftar gainers menunjukkan angka dolar yang sangat besar dan harga yang berhenti bergerak di tengah periode, pola tersebut perlu diperiksa sebelum hal lainnya.

Pergerakan sektor sangat berpengaruh dalam satu bulan, berbeda dengan pergerakan mingguan. Perubahan pada suku bunga, minyak, atau harga memori berdampak pada seluruh kelompok bisnis sekaligus, itulah sebabnya daftar bulanan sering kali menunjukkan klaster bisnis yang serupa, bukan sepuluh nama yang tidak saling terkait. Aksi analis, penambahan dan penghapusan index, hasil uji coba dan regulasi, serta short squeezes melengkapi sisa pergerakan lainnya. Tidak ada satu pun dari hal tersebut yang terlihat hanya dari persentase saja, itulah sebabnya kolom dollars-traded dan rentang waktu pasar ditampilkan di samping setiap pergerakan di sini.

Cara pengukuran ini dilakukan

Setiap ambang batas dinyatakan secara eksplisit di sini. Layar dengan aturan tersembunyi hanya merupakan opini, bukan data.

  • Jendela waktu. Menggunakan 30 hari kalender terakhir hingga sesi terbaru yang datanya telah lengkap, yaitu dari sesi Jun 23 hingga Jul 22 yang berjumlah 21 sesi. Ada dua aturan untuk menentukan kelayakan sebuah sesi. Sesi tersebut harus sudah ditutup sebelum tanggal saat ini di New York, sehingga sesi yang sedang berjalan tidak masuk dalam cakupan. Jumlah bar pada jam reguler juga harus mencapai 85% dari median sesi selama pemindaian 34 hari, guna menghindari hari sebelumnya yang datanya masih dalam proses pengisian. Sesi libur yang lebih pendek hanya menghasilkan sekitar setengah dari jumlah bar hari normal, sehingga aturan yang sama akan mengeluarkannya daripada mengukurnya dengan data yang belum lengkap.
  • Return. Perhitungan dari harga pembukaan sesi reguler pertama dalam jendela waktu hingga penutupan sesi reguler terakhir, yang disusun dari bar menit. Hanya menggunakan jam reguler, sehingga data premarket dan after-hours dikecualikan. Ini adalah price return: dividen tidak ditambahkan kembali.
  • Ambang batas bawah (Floors). Total nilai perdagangan minimal $1 miliar di seluruh jendela waktu, harga pembukaan sebesar $10 atau lebih, dan terdapat transaksi pada setidaknya 15 sesi dalam jendela waktu tersebut. Ambang batas dolar dihitung secara total bulanan, sehingga lebih mudah dipenuhi dibandingkan angka yang sama jika diukur dalam satu minggu.
  • Pengecualian. Dana leveraged dan inverse dikeluarkan berdasarkan nama. Setiap ticker juga harus memiliki fundamental perusahaan dan kapitalisasi pasar yang tercatat dalam data referensi kami. Aturan kedua tersebut mengecualikan ETF, closed-end funds, commodity trusts, dan produk leveraged single-stock yang sedang berkembang pesat, yang jika tidak dikecualikan akan mendominasi kedua papan. Tabel referensi tersebut menyimpan satu baris per ticker, bukan snapshot harian, sehingga pemindaian membaca seluruh tabel dan bukan satu tanggal tertentu yang menentukan kelayakan. Setiap ticker dengan stock split yang terjadi dalam 45 hari terakhir akan dikeluarkan daripada dilakukan back-adjustment, karena split mengubah harga per saham tanpa mengubah nilai kepemilikan. Satu simbol yang telah dialihkan oleh penyedia data ke dua perusahaan yang berbeda juga dikecualikan berdasarkan nama.
  • Panel mega-cap. Terdiri dari basket tetap berisi delapan perusahaan besar AS yang banyak dimiliki, yang terdaftar berdasarkan nama dalam SQL panel tersebut. Panel ini menggunakan jendela waktu dan konstruksi return yang sama dengan papan lainnya, dan tidak terikat pada kriteria dollar-volume.
  • Apa yang tidak diterapkan. Tidak ada filter sektor, tidak ada ambang batas market-cap, dan tidak ada persyaratan keanggotaan indeks, sehingga perusahaan kecil dengan volume perdagangan tinggi dapat muncul di papan bersama perusahaan besar. Peringkat hanya berdasarkan persentase perubahan, itulah sebabnya kolom dollars-traded ditampilkan di sampingnya.

Satu panel menyediakan rincian lengkapnya: sesi yang dicakup dalam jendela waktu, dan universe dari mana setiap papan dipindai.

QueryPeriode dan universe yang di-screen di balik setiap board pada halaman ini
SQL tepat di balik setiap angka
WITH window_days AS (
    SELECT d
    FROM (
        SELECT d, max(d) OVER () AS last_full
        FROM (
            SELECT d
            FROM (
                SELECT d, bars, medianExact(bars) OVER () AS typical_bars
                FROM (
                    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
                    FROM global_markets.delayed_stocks_minute_aggs
                    WHERE window_start >= now() - INTERVAL 34 DAY
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
                      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
                    GROUP BY d
                    HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
                )
            )
            WHERE bars >= 0.85 * typical_bars
        )
    )
    WHERE d > last_full - 30
),
screened AS (
    SELECT ticker
    FROM (
        SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               argMin(toFloat64(open), window_start) AS o,
               sum(toFloat64(close) * toFloat64(volume)) AS dollars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= now() - INTERVAL 34 DAY
          AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
          AND ticker NOT IN ('SPCX')
          AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
          AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
                         WHERE market_cap > 0)
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                             WHERE execution_date BETWEEN today() - 45 AND today())
        GROUP BY ticker, d
    )
    GROUP BY ticker
    HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
)
SELECT formatDateTime(w.first_d, '%b %e') AS first_session_date,
       formatDateTime(w.last_d, '%b %e') AS last_session_date,
       w.n AS sessions,
       (SELECT count() FROM global_markets.stocks_ratios WHERE market_cap > 0) AS companies_on_file,
       (SELECT count() FROM screened) AS companies_screened
FROM (SELECT min(d) AS first_d, max(d) AS last_d, count() AS n FROM window_days) AS w

Pemindaian dimulai dari 4121 ticker yang memiliki kapitalisasi pasar dalam tabel referensi dan berakhir dengan 1167 perusahaan yang memenuhi kriteria dollar-volume, harga, dan sesi. Kedua angka tersebut disimpan pada setiap penyegaran halaman ini, sehingga jika universe menyusut, hal tersebut akan terlihat pada rincian alih-alih terlewatkan.

FAQ

What are the biggest stock gainers this month?

For the window ending Jul 22, the largest gains among companies trading over $1 billion were CRNX at 136.1% and PBF at 65.9%. The full top ten sits in the first table on this page, and it rolls forward as new sessions complete.

What stocks have dropped the most this month?

CLBK was the steepest decliner at -44.6%, followed by NVTS at -41.6%. Both are measured over the same 21 sessions, with the same $1 billion dollar-volume floor as the gainers board.

How are monthly stock returns measured?

A monthly return here is the change from a stock's first regular-session opening price inside the window to its last regular-session close, built from minute bars. It is a price return, so dividends are not added back, and any company with a stock split executing near the window is dropped rather than back-adjusted.

Why are leveraged ETFs excluded from a stock movers list?

A leveraged or inverse fund multiplies the daily move of an index or a single stock, so it can top a raw movers board on an ordinary market day with no company news behind it. Removing them keeps this a list of operating companies. How leveraged ETFs work covers the daily reset and the drift that comes with holding one for a month.


Every panel above is a stored query with its SQL attached. Open one, change the dollar floor or the window length, and screen the same tape yourself on the Strasmore terminal.