Apa Itu Rata-rata Volume Harian (ADV)?
Volume harian rata-rata adalah saham tipikal yang diperdagangkan per hari. Angka ini menjadi pembagi di dalam hari untuk menutupi posisi, volume relatif, dan setiap uji likuiditas.
Rata-rata volume harian — ADV — adalah angka yang paling sering dipakai tetapi jarang didefinisikan: rata-rata saham yang diperdagangkan per hari untuk suatu saham, dihitung selama jendela waktu mundur tertentu. Angka ini menjadi pembagi di dalam hari untuk menutupi posisi, nilai dasar di dalam volume relatif, dan uji likuiditas di dalam setiap penyaring — yang berarti setiap angka tersebut mewarisi pilihan-pilihan diam-diam dari ADV: jendela mana, sesi mana, saham atau dolar. Halaman ini mendefinisikannya dengan tepat, membahas perhitungannya secara bertahap, dan mengukur setiap pilihan tersebut pada data perdagangan nyata.
Volume harian rata-rata, terukur
Dua puluh sesi jam reguler — 11 Juni hingga 10 Juli 2026 — empat nama yang sudah dikenal ditambah satu nama yang sengaja tipis. Saham, dolar, dan (untuk nanti) pangsa volume masing-masing nama yang diperdagangkan di luar jam reguler:
SQL tepat di balik setiap angka
WITH per_day AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '09:30'
AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') < '16:00') AS rth_shares,
sumIf(toFloat64(close) * toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '09:30'
AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') < '16:00') AS rth_dollars,
sum(toFloat64(volume)) AS all_shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'AAPL', 'MU', 'KO', 'CATO')
AND window_start >= toDateTime('2026-06-11 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
GROUP BY ticker, et_date
)
SELECT ticker,
round(avg(rth_shares) / 1e6, 2) AS adv_shares_m,
round(avg(rth_dollars) / 1e9, 2) AS adv_dollars_bn,
round(100 * (sum(all_shares) - sum(rth_shares)) / sum(all_shares), 1) AS extended_hours_pct,
count() AS sessions
FROM per_day
GROUP BY ticker
ORDER BY adv_shares_m DESCTabel ini memuat seluruh argumen halaman ini. MU dan AAPL memperdagangkan jumlah saham yang hampir sama setiap hari — 42.01 juta berbanding 41.47 juta — tetapi kolom dolar memisahkan keduanya dengan lebar: $44.49 miliar berbanding $12.24 miliar per hari. Saham mengukur aktivitas; dolar mengukur uang. Peringkatnya bahkan terbalik di puncak: SPY memimpin dalam saham (46.01 juta sepanjang 20 sesi) sementara MU memimpin tabel ini dalam dolar. Dan di bagian bawah, CATO memperdagangkan 0.05 juta saham per hari — dengan nilai uang yang begitu kecil sehingga kolom miliaran menunjukkan 0 pada skala ini. Itulah jenis saham di mana satu pesanan institusional MENJADI volume hari itu, dan di mana biaya perdagangan berada di alam semesta yang berbeda.
Cara menghitung volume harian rata-rata
Aritmetikanya sengaja membosankan: jumlahkan volume saham harian selama jendela waktu yang dipilih, bagi dengan jumlah hari. Satu minggu penuh rekam perdagangan jam reguler Coca-Cola (6–10 Juli 2026), dengan total berjalan dan rata-rata dihitung dalam kueri yang sama:
SQL tepat di balik setiap angka
SELECT session_date,
shares_m,
round(sum(shares_m) OVER (), 1) AS five_day_total_m,
round(avg(shares_m) OVER (), 1) AS adv_m,
round(avg(shares_m) OVER () * 0.01 * 1000, 0) AS one_pct_of_adv_k
FROM (
SELECT formatDateTime(toDate(toTimeZone(window_start, 'America/New_York')), '%Y-%m-%d') AS session_date,
round(sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '09:30'
AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') < '16:00') / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'KO'
AND window_start >= toDateTime('2026-07-06 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
GROUP BY session_date
)
ORDER BY session_dateJumlahkan lima hari — 10.7 + 12.1 + 10.7 + 11 + 8.3 juta lembar saham — dan totalnya adalah 52.8M. Bagi dengan lima: 10.6M lembar saham, ADV 5-sesi KO. ADV 20-sesi adalah aritmetika yang sama atas 20 baris — itulah angka di tabel pertama. Perhatikan apa yang disembunyikan rata-rata: 2026-07-07 mencetak 12.1M dan 2026-07-10 mencetak 8.3M, fluktuasi harian yang dihaluskan ADV menjadi satu angka. Kolom terakhir melihat sekilas ukuran posisi: satu persen dari ADV KO kira-kira 106 ribu lembar saham — skala di mana satu pesanan mulai menjadi bagian yang berarti dari rekam perdagangan hari itu.
Jendela adalah pilihan, dan ia menentukan seberapa cepat ADV melupakan
Dua puluh sesi adalah konvensi umum (sebulan perdagangan); sepuluh, tiga puluh, enam puluh lima, dan sembilan puluh juga beredar. Jendela menentukan seberapa cepat ADV melupakan. MU adalah contoh langsung tahun 2026 — sebuah saham yang pita harganya berubah penilaian begitu tajam di tengah tahun sehingga ADV bulan-trailing dan ADV kuartal-trailingnya menceritakan kisah yang berbeda sepanjang musim semi, dengan bukti sepanjang telaah mendalam bulan Juni. Berikut saham yang sama selama tujuh bulan yang sama, diukur dengan kedua jendela sekaligus:
SQL tepat di balik setiap angka
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
sum(toFloat64(volume)) AS day_shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2025-08-01 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY et_date
),
rolled AS (
SELECT et_date,
avg(day_shares) OVER (ORDER BY et_date ROWS BETWEEN 19 PRECEDING AND CURRENT ROW) AS adv20,
avg(day_shares) OVER (ORDER BY et_date ROWS BETWEEN 89 PRECEDING AND CURRENT ROW) AS adv90,
row_number() OVER (ORDER BY et_date) AS rn,
count() OVER () AS total_rows
FROM daily
)
SELECT formatDateTime(et_date, '%Y-%m-%d') AS date,
round(adv20 / 1e6, 1) AS adv_20_session_m,
round(adv90 / 1e6, 1) AS adv_90_session_m
FROM rolled
WHERE rn > 90 AND (rn % 3 = total_rows % 3)
ORDER BY et_datePada 2025-12-10 kedua jendela sepakat: 21.3M pada hitungan 20-sesi, 19.9M pada 90. Pada 2026-04-14 keduanya telah terpisah menjadi 45.6M berbanding 31.9M — dua ADV "resmi" untuk satu saham pada satu hari, dan setiap alat penyaring, angka hari-untuk-menutupi, atau pembacaan volume-relatif yang dikaitkan ke satu jendela tidak setuju dengan alat yang sama yang dikaitkan ke jendela lain. Pada 2026-07-10 keduanya kembali konvergen (42M vs 41.9M): level volume yang telah berubah penilaian telah memasuki jendela panjang juga. Ketika dua sumber tidak setuju tentang ADV sebuah saham, jendela adalah tersangka pertama; apakah volume di luar jam perdagangan dimasukkan adalah yang kedua.
Apa yang terjadi pada ADV tepat setelah guncangan volume
Grafik di atas memberi petunjuknya; di sini diukur. Ambil guncangan volume paling tajam MU pada 2026 — sesi yang paling melampaui ADV trailing 20 sesinya sendiri — dan bandingkan ADV yang ditampilkan penyaring menjelang hari itu dengan yang ditampilkan sebulan kemudian:
SQL tepat di balik setiap angka
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
sum(toFloat64(volume)) AS day_shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2025-11-01 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY et_date
),
ranked AS (
SELECT et_date, day_shares,
day_shares / avg(day_shares) OVER (ORDER BY et_date ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS shock_ratio,
row_number() OVER (ORDER BY et_date) AS rn
FROM daily
),
biggest AS (
SELECT et_date, day_shares, shock_ratio
FROM ranked
WHERE rn > 20 AND et_date >= toDate('2026-01-01')
ORDER BY shock_ratio DESC, et_date ASC
LIMIT 1
),
before AS (
SELECT avg(day_shares) AS adv FROM (
SELECT day_shares FROM daily WHERE et_date < (SELECT et_date FROM biggest) ORDER BY et_date DESC LIMIT 20
)
),
after AS (
SELECT avg(day_shares) AS adv FROM (
SELECT day_shares FROM daily WHERE et_date >= (SELECT et_date FROM biggest) ORDER BY et_date ASC LIMIT 20
)
)
SELECT formatDateTime((SELECT et_date FROM biggest), '%Y-%m-%d') AS event_date,
round((SELECT day_shares FROM biggest) / 1e6, 1) AS event_day_shares_m,
round((SELECT adv FROM before) / 1e6, 1) AS adv_20_before_m,
round((SELECT shock_ratio FROM biggest), 1) AS event_vs_prior_adv_x,
round((SELECT adv FROM after) / 1e6, 1) AS adv_20_after_m,
round(100 * ((SELECT adv FROM after) / (SELECT adv FROM before) - 1), 0) AS adv_shift_pctPada 2026-03-19, MU mencetak 64.7M lembar saham terhadap ADV sebelumnya sebesar 28.7M — 2.3x dari baseline-nya sendiri. Selama 20 sesi berikutnya, ADV trailing rata-rata sebesar 45M: kenaikan 57% pada penyebut. Setiap angka turunan ADV bergerak bersamanya — pembacaan volume relatif menyusut (baseline membesar) dan hari untuk menutup menyusut (penyebut membesar), tanpa perubahan apa pun yang diperlukan pada posisi siapa pun. Dalam kasus MU, aktivitas perdagangan yang tinggi bertahan — guncangan menandai re-rating, bukan peristiwa satu hari — tetapi mekanismenya identik dalam kedua kasus: setelah periode yang padat, ADV mengukur peristiwa tersebut, bukan kebiasaan saham, selama tepat satu panjang jendela.
Apa yang disebut likuid, terukur
"Jutaan dolar per hari" adalah cara singkat yang biasa dipakai untuk menyebut kemampuan diperdagangkan. Berikut distribusi sebenarnya — setiap simbol yang tercatat di AS dengan minimal 15 dari 20 sesi perdagangan yang sama, diurutkan berdasarkan ADV dolar:
SQL tepat di balik setiap angka
WITH per_ticker AS (
SELECT ticker, avg(day_dollars) AS adv_dollars
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
sumIf(toFloat64(close) * toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '09:30'
AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') < '16:00') AS day_dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-06-11 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
AND match(ticker, '^[A-Z]+$')
GROUP BY ticker, et_date
)
GROUP BY ticker
HAVING count() >= 15
)
SELECT count() AS names,
round(quantileDeterministic(0.25)(adv_dollars, cityHash64(ticker)) / 1e6, 2) AS p25_m,
round(quantileDeterministic(0.50)(adv_dollars, cityHash64(ticker)) / 1e6, 1) AS median_m,
round(quantileDeterministic(0.75)(adv_dollars, cityHash64(ticker)) / 1e6, 1) AS p75_m,
round(quantileDeterministic(0.90)(adv_dollars, cityHash64(ticker)) / 1e6, 1) AS p90_m,
round(quantileDeterministic(0.99)(adv_dollars, cityHash64(ticker)) / 1e6, 0) AS p99_m,
countIf(adv_dollars >= 1e6) AS names_above_1m,
countIf(adv_dollars >= 10e6) AS names_above_10m,
countIf(adv_dollars >= 100e6) AS names_above_100m,
countIf(adv_dollars >= 1e9) AS names_above_1bn
FROM per_tickerDari 10864 simbol, saham median memiliki perputaran $2.2 juta per hari — separuh saham di pasar AS diperdagangkan di bawah angka itu. Seperempatnya diperdagangkan di bawah $0.33 juta. Persentil ke-75 berada di $20.4 juta, ke-90 di $113.7 juta, ke-99 di $1333 juta. Diukur dengan ambang batas bulat: 6515 nama menembus $1 juta per hari, 3535 menembus $10 juta, 1166 menembus $100 juta — dan hanya 130 yang menembus $1 miliar. Nama-nama yang menjadi pusat liputan keuangan hampir seluruhnya berada di kelompok terakhir itu; saham tercatat yang median adalah instrumen yang sama sekali berbeda.
Di mana ADV secara diam-diam menentukan angka-angka lain
- Hari untuk menutup = posisi short ÷ ADV. Lonjakan volume menyusutkan rasio tanpa perubahan apa pun pada posisi short — penyebutlah yang melakukannya.
- Volume relatif = laju hari ini ÷ ADV. Angka yang sama, peran yang berlawanan: di sini ADV adalah garis dasar yang dilampaui.
- Layar likuiditas ("hanya nama dengan ADV di atas 1 juta") — setiap backtest dan penyaring memuat satu, dan bias kelangsungan hidup mengikuti secara diam-diam: nama-nama masuk ke layar semacam itu dengan memiliki minggu-minggu paling dramatis mereka.
- Penentuan ukuran posisi — kebiasaan institusional untuk memperdagangkan hanya beberapa persen dari ADV per hari itulah sebabnya dana besar sama sekali tidak dapat memiliki saham-saham kecil tertentu: diperlukan berminggu-minggu volume seluruh pita untuk membangun atau keluar dari suatu posisi.
Kasus hari-untuk-menutup layak dilihat dengan angka nyata, karena bahkan angka "resmi" pun memuat pilihan ADV seseorang. FINRA menerbitkan hari-untuk-menutup di samping penyebut volumenya sendiri (setiap tempat, jendela pelaporannya sendiri, dibatasi minimum 1,0 — lihat bagaimana data itu tiba); hitung ulang rasio yang sama dengan ADV jam reguler 20 sesi halaman ini dan jawabannya berubah:
SQL tepat di balik setiap angka
WITH our_adv AS (
SELECT ticker, avg(day_shares) AS adv
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') >= '09:30'
AND formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') < '16:00') AS day_shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('MU', 'KO')
AND window_start >= toDateTime('2026-06-11 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
GROUP BY ticker, et_date
)
GROUP BY ticker
),
si AS (
SELECT ticker,
max(short_interest) AS short_interest,
max(avg_daily_volume) AS finra_adv,
max(days_to_cover) AS finra_dtc
FROM global_markets.stocks_short_interest
WHERE settlement_date = '2026-06-30' AND ticker IN ('MU', 'KO')
GROUP BY ticker
)
SELECT si.ticker AS ticker,
round(si.short_interest / 1e6, 1) AS shares_short_m,
round(si.finra_adv / 1e6, 1) AS finra_adv_m,
round(si.finra_dtc, 2) AS finra_days_to_cover,
round(our_adv.adv / 1e6, 1) AS rth_adv_20_session_m,
round(si.short_interest / our_adv.adv, 2) AS days_to_cover_recomputed
FROM si
INNER JOIN our_adv ON si.ticker = our_adv.ticker
ORDER BY tickerPosisi short yang sama, dua penyebut. Untuk KO, FINRA melaporkan 2.06 hari pada angka volume 24.1 juta lembar sahamnya; terhadap ADV jam reguler 12.4 juta halaman ini, posisi short 49.6 juta lembar saham yang sama menghasilkan 4 hari — hampir dua kali lipat. Untuk MU, angka yang diterbitkan berada di batas minimum yang dilaporkan sebesar 1; setelah dihitung ulang, menjadi 0.75 hari. Tidak ada angka yang salah — keduanya menjawab dengan penyebut yang berbeda. Pelajaran ini berlaku umum: rasio apa pun yang menggunakan ADV di baliknya secara diam-diam mengutip pilihan jendela dan sesi seseorang.
Apakah ADV berlaku untuk opsi?
Trader opsi menggunakan konsep yang sama dengan satu variasi: volume dihitung dalam kontrak, dan setiap kontrak saham standar mewakili 100 lembar saham. Tetap menggunakan 20 sesi yang sama dan empat tape opsi, dengan jumlah kontrak dikonversi menjadi eksposur setara saham:
SQL tepat di balik setiap angka
WITH daily AS (
SELECT multiIf(ticker LIKE 'O:SPY2%', 'SPY', ticker LIKE 'O:AAPL2%', 'AAPL', ticker LIKE 'O:MU2%', 'MU', 'KO') AS underlying,
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
sum(toFloat64(volume)) AS contracts
FROM global_markets.options_minute_aggs
WHERE (ticker LIKE 'O:SPY2%' OR ticker LIKE 'O:AAPL2%' OR ticker LIKE 'O:MU2%' OR ticker LIKE 'O:KO2%')
AND window_start >= toDateTime('2026-06-11 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-11 00:00:00', 'America/New_York')
GROUP BY underlying, et_date
)
SELECT underlying,
round(avg(contracts) / 1e3, 1) AS avg_daily_contracts_k,
round(avg(contracts) * 100 / 1e6, 1) AS share_equivalent_m,
count() AS sessions
FROM daily
GROUP BY underlying
ORDER BY avg_daily_contracts_k DESCPerbedaan skala jauh melampaui apa pun yang terlihat pada tabel saham. Tape opsi SPY rata-rata mencatat 12543.2 ribu kontrak per hari — setara 1254.3 juta lembar saham, sebuah kelipatan besar dari ADV saham SPY sendiri yang sebesar 46.01 juta lembar. KO menunjukkan arah yang berlawanan: 64.6 ribu kontrak (setara 6.5 juta lembar saham), di bawah ADV sahamnya yang sebesar 12.4 juta lembar. Likuiditas opsi terkonsentrasi pada sejumlah kecil underlying, dan menipis lebih jauh di setiap strike dan jatuh tempo — angka agregat seperti ini melebih-lebihkan volume yang diperdagangkan oleh satu kontrak tertentu, sehingga volume per kontrak dan open interest tetap perlu diperiksa sebelum menentukan ukuran pesanan opsi.
Membaca ADV seperti seorang praktisi
Tiga kebiasaan menutup jarak antara mengetahui definisi dan menggunakannya. Pasangkan ADV berbasis saham dengan ADV berbasis dolar — tabel pertama menunjukkan dua nama yang nyaris seimbang dalam hal saham namun jauh berbeda dalam hal nilai, dan kolom nilai adalah yang benar-benar dipedulikan oleh sebuah order. Jangan langsung percaya ADV tepat setelah peristiwa — panel guncangan memberikan angkanya: satu periode berat menggerakkan penyebut 57% hanya dalam satu bulan, secara mekanis memotong volume relatif dan hari untuk menutupi hingga lonjakan keluar dari jendela pengamatan. Bandingkan ADV dengan kalender — hari Jumat kedaluwarsa, hari penyeimbangan ulang, dan tanggal perubahan indeks menggembungkan volume semua pihak sekaligus (hari witching paling utama), sehingga hari berat di seluruh pasar tidak menceritakan apa pun tentang cerita satu nama pun.
FAQ volume harian rata-rata
Berapa volume harian rata-rata yang dianggap baik?
Diukur pada 10864 simbol AS selama 20 sesi, median ADV dalam dolar adalah $2.2 juta; 3535 nama menembus $10 juta per hari dan hanya 130 yang menembus $1 miliar. Untuk order berukuran ritel, batas bawah yang berguna adalah dolar, bukan lembar saham — nama-nama di kelompok $10 juta ke atas diperdagangkan tanpa order kecil yang menggerakkan harga.
Bagaimana cara menghitung volume harian rata-rata?
Jumlahkan volume saham harian pada jendela waktu yang dipilih dan bagi dengan jumlah hari. Lima sesi KO pada 6–10 Juli 2026 berjumlah 52.8 juta lembar; dibagi lima, ADV-nya adalah 10.6 juta. ADV 20 hari adalah aritmetika yang sama pada 20 sesi.
Jendela berapa yang dipakai untuk mengukur ADV?
Paling umum adalah 20 sesi perdagangan (sekitar satu bulan), tetapi versi 10, 30, 65, dan 90 hari juga beredar — dan semuanya benar-benar berbeda setelah setiap guncangan volume. Pada 2026-04-14, ADV 20 sesi MU tercatat 45.6 juta sementara ADV 90 sesinya tercatat 31.9 juta pada hari yang sama. Periksa jendela waktu sebelum membandingkan sumber.
Apakah ADV mencakup volume pra-pasar dan setelah-jam?
Tergantung sumbernya — angka pada halaman ini hanya untuk jam reguler. Diukur pada 20 sesi yang sama, sesi extended menyumbang 18.3% dari total volume SPY, 6.9% dari AAPL, dan 0.2% dari CATO yang tipis — panduan sesi extended menguraikan sesi-sesi tersebut.
Apakah ADV dalam lembar saham atau dolar?
Secara tradisional lembar saham, tetapi ADV dalam dolar adalah ukuran likuiditas yang lebih baik lintas saham. Pada 20 sesi yang sama, MU dan AAPL masing-masing memperdagangkan 42.01 juta dan 41.47 juta lembar per hari — hampir sama — sementara ADV dolar mereka masing-masing adalah $44.49 miliar dan $12.24 miliar. Jumlah lembar yang sama, lautan yang sangat berbeda.
Setiap angka adalah kueri tersimpan dan berversi — perluas SQL di bawah panel mana pun, atau hitung jendela apa pun untuk ticker apa pun di terminal Strasmore.