Strasmore Research
Edukasi Matt ConnorOleh Matt Connor · Diperbarui 2026-07-25 · data as of July 25, 2026 · refreshed weekly

Apa itu RVOL (Relative Volume) dan Cara Membacanya

RVOL adalah volume saham dibagi rata-rata dua puluh hari: angka di atas satu menandakan perdagangan lebih ramai dari biasanya. Pelajari RVOL intraday dan standar volume tinggi.

Relative volume (RVOL) mengukur seberapa aktif perdagangan suatu saham dibandingkan dengan kondisi normal terbarunya: volume saham sesi tersebut dibagi dengan rata-rata volume harian saham, yang biasanya diambil selama dua puluh sesi terakhir. RVOL sebesar satu adalah hari biasa, dua berarti jumlah saham yang berpindah tangan dua kali lipat dari biasanya, dan nol koma lima menandai sesi yang berjalan dengan kecepatan setengahnya. Setiap angka di halaman ini diukur dari data pasar AS tingkat menit, dengan kueri tepat yang terlampir pada setiap panel.

Apa itu relative volume? Definisi sederhana

Volume mentah tidak memiliki banyak arti jika berdiri sendiri: lima juta lembar saham adalah hari yang sangat sepi bagi saham mega-cap dan merupakan peristiwa langka bagi saham small-cap. Relative volume membuat perbandingan dengan volume normal saham tersebut menjadi jelas:

RVOL = volume hari ini ÷ rata-rata volume harian saham (biasanya 20 sesi terakhir)

Contoh hipotetis: sebuah saham dengan rata-rata sepuluh juta lembar saham per hari dan mencatat dua puluh lima juta pada saat penutupan berakhir dengan RVOL sebesar 2,5. (Sebuah print adalah perdagangan yang dilaporkan ke consolidated tape — catatan eksekusi di seluruh pasar — dan "the tape" adalah istilah singkat trader untuk catatan tersebut.) Periode tinjauan 20 sesi adalah sebuah konvensi — platform juga menggunakan 10, 30, atau 50 hari; ini kira-kira satu bulan kalender perdagangan. Jendela waktu ini juga mengikuti keunikan kalender bursa: hari libur setengah hari hanya menambahkan sebagian kecil volume sesi normal ke dalam rata-rata, dan hari libur pasar dan penutupan awal memetakan kapan hal tersebut terjadi.

Mengapa trader memantau relative volume?

RVOL adalah pengukur partisipasi, bukan pengukur arah. Hari-hari dengan RVOL tinggi biasanya berkumpul di sekitar peristiwa yang teridentifikasi — earnings, penambahan indeks, atau berita utama. Pergerakan harga yang tercatat dengan volume besar menunjukkan adanya dukungan massa; pergerakan yang sama pada RVOL 0,3 bisa jadi hanya hasil dari beberapa pesanan. Aktivitas juga berjalan beriringan dengan tradability: di antara berbagai saham, nama-nama yang paling jarang diperdagangkan memiliki bid-ask spreads terlebar, yang dipasang oleh market makers yang memberikan kuotasi kedua sisi sepanjang hari, dan untuk satu saham tertentu, kuotasi cenderung lebih lebar pada sesi paling sepi dibandingkan pada sesi tersibuk. (Volume juga menjadi dasar bagi VWAP, the volume-weighted average price — referensi berbasis volume besar lainnya.)

Cara menghitung relative volume — dan jebakan waktu perdagangan

Kalkulasi harian penuh hanya melibatkan satu pembagian: total volume sesi ÷ rata-rata volume harian selama dua puluh sesi. Hasil ini hanya akurat setelah pasar tutup. Jebakannya adalah menjalankan kalkulasi ini di tengah sesi: pada pukul 10:30 pagi, total berjalan secara alami hanya sebagian kecil dari angka harian penuh, sehingga pagi yang sangat volatil pun akan terlihat sepi. Volume intraday mengikuti pola bentuk U sepanjang waktu, dan setiap RVOL intraday harus dimulai dari pola tersebut.

Berikut adalah polanya, diukur pada SPY, ETF S&P 500: median saham yang diperdagangkan per menit dalam setiap slot waktu tiga puluh menit selama tiga puluh hari sesi yang telah selesai, termasuk jam diperpanjang (pukul 4:00 pagi hingga 8:00 malam Waktu Timur).

QuerySPY — median shares traded per menit, berdasarkan bucket waktu 30 menit (ET, 30 hari terakhir, extended hours)
SQL tepat di balik setiap angka
SELECT formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
       round(quantileDeterministic(0.5)(toFloat64(volume), toUInt64(toUnixTimestamp(window_start))) / 1000, 1) AS median_minute_volume_k
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
  AND window_start >= now() - INTERVAL 30 DAY
  AND toDate(toTimeZone(window_start, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
GROUP BY et_time
HAVING et_time >= '04:00' AND et_time < '20:00'
ORDER BY et_time

Slot pukul 9:30 — setengah jam pertama perdagangan reguler — mencatat median 136 ribu saham per menit, dibandingkan dengan 3.5 ribu pada slot premarket pukul 9:00 tepat sebelumnya. Kecepatan menurun menjadi 49.5 ribu pada slot pukul 12:30, kemudian meningkat menjelang penutupan: 168.3 ribu pada slot pukul 3:30, periode menjelang lelang penutupan dan jauh di atas titik terendah waktu makan siang. Setelah bel pukul 4:00 sore, kecepatan per menit turun drastis menuju perdagangan after-hours.

Volume relatif intraday: penyesuaian berdasarkan waktu

Perbaikan ini mengubah penyebutnya: bandingkan total berjalan hari ini dengan rata-rata total berjalan pada waktu jam yang sama. Hal ini memerlukan pengetahuan tentang porsi volume hari normal yang telah selesai pada setiap titik waktu — diukur di sini berdasarkan dua puluh sesi terakhir SPY yang telah selesai:

QuerySPY — rata-rata share volume harian yang selesai pada setiap waktu (20 sesi terakhir)
SQL tepat di balik setiap angka
WITH per_min AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
           formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_min,
           sum(toFloat64(volume)) AS v
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= now() - INTERVAL 45 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
    GROUP BY et_date, et_min
),
last20 AS (
    SELECT DISTINCT et_date FROM per_min ORDER BY et_date DESC LIMIT 20
)
SELECT checkpoint AS et_checkpoint,
       round(avg(share) * 100, 1) AS avg_pct_of_day_volume_done
FROM (
    SELECT et_date,
           checkpoint,
           sumIf(v, et_min < checkpoint) / sum(v) AS share
    FROM (
        SELECT et_date, et_min, v, arrayJoin(['10:00', '12:00', '14:00', '15:30', '16:00']) AS checkpoint
        FROM per_min
        WHERE et_date IN (SELECT et_date FROM last20)
    )
    GROUP BY et_date, checkpoint
)
GROUP BY checkpoint
ORDER BY checkpoint

Pada pukul 10:00 pagi, setengah jam setelah perdagangan reguler dimulai, SPY biasanya baru mencetak 12.4% dari total volume harian akhirnya; pada tengah hari 34.8%, pada pukul 14:00 51.1%, dan pada pukul 15:30 masih hanya 67.3%. Bahkan pada bel penutupan pukul 16:00, totalnya berada di angka 85.7% — semua sisanya dilaporkan pada atau setelah pukul 16:00, dan sebagian besarnya masuk dalam beberapa menit pertama setelah bel, saat lelang penutupan dan perdagangan akhir hari lainnya tercatat; sesi after-hours sendiri jauh lebih tipis. Hal ini sesuai dengan penurunan tajam pada grafik di atas: kecepatan per menit anjlok saat bel berbunyi meskipun sebagian besar dari total harian masih dilaporkan. RVOL pagi yang disesuaikan dengan waktu membagi volume kumulatif hari ini dengan rata-rata dua puluh hari yang dikalikan dengan porsi titik pemeriksaan. Satu peringatan: jadwal ini adalah milik SPY — setiap saham memiliki jamnya sendiri, dan contoh pengerjaan di bawah ini mengukur satu nama saham.

Contoh pengerjaan: sesi volume tinggi yang nyata (MU)

Juni dua ribu dua puluh enam adalah bulan yang padat bagi Micron — analisis mendalam MU Juni dua ribu dua puluh enam membahas seluruh data perdagangan. Berikut adalah sesi dengan volume terbesar pada bulan tersebut, dengan perhitungan RVOL yang dilakukan melalui dua cara:

QueryMU — sesi volume terbesar Juni 2026: time-adjusted vs. naive RVOL, serta angka full-day
SQL tepat di balik setiap angka
WITH mu_daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
           sum(toFloat64(volume)) AS day_volume,
           sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') < '10:30') AS vol_by_1030
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'MU'
      AND window_start >= toDateTime('2026-04-15 00:00:00', 'America/New_York')
      AND window_start < toDateTime('2026-07-01 00:00:00', 'America/New_York')
    GROUP BY et_date
    HAVING day_volume > 1000000
),
biggest AS (
    SELECT et_date, day_volume, vol_by_1030
    FROM mu_daily
    WHERE et_date >= toDate('2026-06-01') AND et_date <= toDate('2026-06-30')
    ORDER BY day_volume DESC
    LIMIT 1
),
trailing AS (
    SELECT sum(day_volume) / 20 AS adv, sum(vol_by_1030) / 20 AS avg_by_1030
    FROM (
        SELECT day_volume, vol_by_1030
        FROM mu_daily
        WHERE et_date < (SELECT et_date FROM biggest)
        ORDER BY et_date DESC
        LIMIT 20
    )
)
SELECT formatDateTime((SELECT et_date FROM biggest), '%Y-%m-%d') AS session_date,
       round((SELECT vol_by_1030 FROM biggest) / 1e6, 1) AS vol_by_1030_m,
       round((SELECT avg_by_1030 FROM trailing) / 1e6, 1) AS avg_vol_by_1030_m,
       round((SELECT vol_by_1030 FROM biggest) / (SELECT avg_by_1030 FROM trailing), 1) AS rvol_1030_adjusted,
       round((SELECT vol_by_1030 FROM biggest) / (SELECT adv FROM trailing), 2) AS rvol_1030_naive,
       round((SELECT day_volume FROM biggest) / 1e6, 1) AS session_volume_m,
       round((SELECT adv FROM trailing) / 1e6, 1) AS trailing_adv_m,
       round((SELECT day_volume FROM biggest) / (SELECT adv FROM trailing), 1) AS rvol_full_day

Sesi terbesar MU pada bulan tersebut terjadi pada 2026-06-25. Hingga pukul sepuluh tiga puluh pagi pada hari itu, 32.8 juta saham telah diperdagangkan, dibandingkan dengan rata-rata 17.3 juta pada waktu yang sama selama dua puluh sesi sebelumnya — RVOL yang disesuaikan dengan waktu adalah 1.9. Jika total pagi tersebut dibagi dengan rata-rata harian penuh sebesar 51 juta, maka pembacaan naifnya adalah 0.64: tampak seperti hari di bawah rata-rata, padahal pagi harinya berjalan hampir dua kali lipat dari kecepatan biasanya. Sesi tersebut berakhir pada 77.2 juta saham, dengan RVOL harian penuh sebesar 1.5.

Angka penutupan tersebut mungkin terlihat kecil dibandingkan dengan tangkapan layar penggerak pasar yang mencapai sepuluh kali rata-rata — apakah angka tersebut benar-benar kecil adalah pertanyaan bagi distribusi, yang diukur selanjutnya.

Apa yang dianggap sebagai volume relatif tinggi?

Forum trading sering menyebutkan ambang batas seperti "RVOL di atas dua adalah tinggi." Berikut adalah versi terukurnya: RVOL harian penuh untuk setiap saham dan ETF yang terdaftar di AS dengan rata-rata volume harian 20 hari di atas lima juta lembar saham (dan memiliki riwayat penuh dua puluh sesi sebelumnya), yang dipersentilkan di seluruh grup untuk sesi lengkap terbaru dalam data kami. Satu catatan mengenai labelnya: penyaringan ini menghitung lembar saham, bukan dolar, sehingga grup volume tinggi ini mencakup mulai dari mega-cap dan ETF hingga small-cap murah dengan churn tinggi — volume lembar saham yang tinggi tidak sama dengan kemudahan tradability.

QueryPersentil RVOL full-day pada saham dan ETF AS volume tinggi (ADV 20 hari di atas 5M shares), sesi terakhir yang selesai
SQL tepat di balik setiap angka
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
           toFloat64(sum(volume)) AS day_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 40 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
    GROUP BY ticker, et_date
),
spy_days AS (
    SELECT et_date,
           day_volume,
           avg(day_volume) OVER (ORDER BY et_date ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS prior_avg
    FROM daily
    WHERE ticker = 'SPY' AND day_volume > 10000000
),
sessions AS (
    SELECT et_date FROM spy_days
),
latest AS (
    SELECT max(et_date) AS d FROM spy_days WHERE prior_avg > 0 AND day_volume >= 0.6 * prior_avg
),
prior20 AS (
    SELECT et_date FROM sessions WHERE et_date < (SELECT d FROM latest) ORDER BY et_date DESC LIMIT 20
),
rvols AS (
    SELECT ticker, day_vol / adv20 AS rvol
    FROM (
        SELECT ticker,
               sumIf(day_volume, et_date = (SELECT d FROM latest)) AS day_vol,
               sumIf(day_volume, et_date IN (SELECT et_date FROM prior20)) / 20 AS adv20,
               countIf(day_volume > 0 AND et_date IN (SELECT et_date FROM prior20)) AS sessions_traded
        FROM daily
        WHERE ticker NOT IN ('SPCX')
        GROUP BY ticker
        HAVING adv20 > 5000000 AND day_vol > 0 AND sessions_traded = 20
    )
)
SELECT pair.1 AS percentile,
       round(pair.2, 2) AS rvol
FROM (
    SELECT arrayJoin(arrayZip(['p10', 'p25', 'p50 (median)', 'p75', 'p90', 'p99'], quantilesExact(0.1, 0.25, 0.5, 0.75, 0.9, 0.99)(rvol))) AS pair
    FROM rvols
)
ORDER BY percentile

Median nama dalam grup volume tinggi ini diperdagangkan pada 0.73 kali rata-ratanya sendiri selama 20 hari. Sembilan dari sepuluh nama berada di bawah 1.37, dan hanya satu dari seratus yang melampaui 4.71. Bandingkan sesi MU dari bagian sebelumnya dengan tabel ini dan hasilnya tidak lagi terlihat sederhana — bahkan nama-nama yang sibuk pun menghabiskan sebagian besar hari di dekat rata-ratanya sendiri; kelipatannya adalah hal yang langka.

Ekor bawah juga penting: persentil ke-sepuluh berada pada 0.11. Pembacaan serendah itu biasanya menandai saham yang rata-rata 20 harinya masih membawa satu sesi yang sangat besar — setelah terjadi lonjakan, penyebut yang membengkak menahan RVOL selama berminggu-minggu. Jendela waktu memiliki memori, ke dua arah.

Satu peringatan: ini adalah potong lintang dari satu sesi tunggal — persentil bergeser dari hari ke hari, dan hari-hari peristiwa pasar luas (rebalance index, opsi expiration) dapat mengangkat seluruh kurva.

Saham mana yang memiliki volume tidak biasa? Papan peringkat RVOL

Universe yang sama, diurutkan (versi mingguan tersedia di saham dengan volume tidak biasa minggu ini): sepuluh pembacaan RVOL harian tertinggi pada sesi 2026-07-21 di antara nama-nama dengan rata-rata volume harian di atas lima juta saham — papan yang akan ditandai oleh screener sebagai volume tidak biasa. Screener ini membutuhkan data penuh dari dua puluh sesi sebelumnya — pencatatan baru tidak memiliki rata-rata dua puluh hari yang berarti dan jika tidak dibatasi akan memenuhi papan dengan data artifak.

QueryTop 10 berdasarkan RVOL full-day — sesi terakhir yang selesai (ADV 20 hari di atas 5M shares, diperlukan full history)
SQL tepat di balik setiap angka
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
           toFloat64(sum(volume)) AS day_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 40 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
    GROUP BY ticker, et_date
),
spy_days AS (
    SELECT et_date,
           day_volume,
           avg(day_volume) OVER (ORDER BY et_date ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS prior_avg
    FROM daily
    WHERE ticker = 'SPY' AND day_volume > 10000000
),
sessions AS (
    SELECT et_date FROM spy_days
),
latest AS (
    SELECT max(et_date) AS d FROM spy_days WHERE prior_avg > 0 AND day_volume >= 0.6 * prior_avg
),
prior20 AS (
    SELECT et_date FROM sessions WHERE et_date < (SELECT d FROM latest) ORDER BY et_date DESC LIMIT 20
)
SELECT ticker,
       formatDateTime((SELECT d FROM latest), '%Y-%m-%d') AS session_date,
       round(day_vol / 1e6, 1) AS session_volume_m,
       round(adv20 / 1e6, 1) AS adv_20d_m,
       round(day_vol / adv20, 1) AS rvol
FROM (
    SELECT ticker,
           sumIf(day_volume, et_date = (SELECT d FROM latest)) AS day_vol,
           sumIf(day_volume, et_date IN (SELECT et_date FROM prior20)) / 20 AS adv20,
           countIf(day_volume > 0 AND et_date IN (SELECT et_date FROM prior20)) AS sessions_traded
    FROM daily
    WHERE ticker NOT IN ('SPCX')
    GROUP BY ticker
    HAVING adv20 > 5000000 AND day_vol > 0 AND sessions_traded = 20
)
ORDER BY rvol DESC, ticker
LIMIT 10

Peringkat teratas, LBGJ, mencatat 169.2 juta saham dibandingkan rata-rata dua puluh hari sebesar 5.1 juta — RVOL sebesar 33.3. Setiap baris melampaui rata-ratanya sendiri. Papan seperti ini cenderung menjauhi mega-cap yang sudah dikenal luas — menggandakan rata-rata yang sudah sangat besar membutuhkan jumlah saham yang luar biasa, sementara nama yang lebih kecil dapat melipatgandakan volumenya dalam satu sesi.

Catatan Data: pemilihan sesi dan pengecualian

Kedua tabel peringkat menggunakan universe yang sama dan aturan sesi yang sama. Sebuah sesi kandidat hanya dianggap lengkap setelah volume SPY pada tanggal tersebut mencapai setidaknya enam puluh persen dari rata-rata volume dua puluh sesi sebelumnya milik SPY — data hari terbaru tiba dengan jeda, dan pemeriksaan ini mencegah hari yang baru terisi sebagian terbaca sebagai sesi yang selesai. Kedua tabel juga mengecualikan satu simbol yang baru saja dialihkan oleh bursa ke pencatatan baru: feed vendor membawa riwayat dua perusahaan berbeda di bawah ticker tersebut, sehingga rata-rata dua puluh harinya bukan merupakan baseline yang berarti. Daftar pengecualian dalam SQL disinkronkan dengan pemeriksaan identitas simbol kami pada setiap penyegaran; setiap simbol yang digunakan kembali dan baru ditandai akan ditambahkan dengan cara yang sama.

FAQ

Berapa angka RVOL yang dianggap bagus?

Tidak ada ambang batas resmi. Berdasarkan pengukuran saham-saham AS bervolume tinggi pada sesi lengkap terbaru dalam data kami, nilai median berada pada 0.73 kali rata-rata dua puluh hari, persentil ke-sembilan puluh adalah 1.37, dan persentil ke-sembilan puluh sembilan adalah 4.71.

Apa arti RVOL bernilai dua?

Saham tersebut telah diperdagangkan dua kali lipat dari volume rata-ratanya untuk jendela waktu yang diukur, biasanya dua puluh sesi terakhir. Waktu sangat berpengaruh: angka dua terhadap rata-rata waktu yang sama dalam sehari adalah pembacaan tengah sesi yang kuat; angka dua pada saat penutupan menandakan hari dengan kecepatan dua kali lipat dari biasanya.

Bagaimana cara menghitung volume relatif intraday?

Bagi volume kumulatif hari ini dengan rata-rata volume kumulatif pada waktu jam yang sama selama jendela lookback Anda. Membagi total tengah pagi dengan rata-rata satu hari penuh akan menghasilkan pembacaan yang terlalu rendah — pada pukul sepuluh pagi, SPY biasanya baru menyelesaikan 12.4% dari total volume hariannya.

Apakah volume relatif mencakup perdagangan premarket dan after-hours?

Konvensi platform berbeda-beda; halaman ini menghitung setiap bar menit dalam hari kalender Eastern Time, termasuk jam diperpanjang. Untuk SPY, kontribusi premarket terlihat kecil — median sebesar 3.5 ribu lembar saham per menit pada bucket pukul sembilan dibandingkan dengan 136 ribu tepat setelah pembukaan.

Apakah volume relatif yang tinggi bersifat bullish atau bearish?

Tidak keduanya. RVOL mengukur partisipasi, bukan arah — aktivitas tape yang berat muncul pada hari terbaik maupun terburuk suatu saham. Sesi RVOL tinggi secara historis bertepatan dengan laporan earnings, perubahan indeks, dan berita utama; angka tersebut menunjukkan bahwa pasar hadir, bukan ke arah mana pasar cenderung bergerak.


Setiap panel di atas memuat SQL tepat yang menghasilkannya — buka salah satu, ganti dengan ticker Anda sendiri, dan ukur RVOL untuk saham yang benar-benar Anda perdagangkan di terminal Strasmore.