RVOL nedir ve nasıl okunur
RVOL, bir hissenin işlem hacminin 20 günlük ortalamasına oranıdır. Değerin 1'in üzerinde olması, hissenin normalden daha yoğun işlem gördüğünü gösterir.
Göreceli hacim (RVOL), bir hissenin kendi geçmiş normaline kıyasla ne kadar yoğun işlem gördüğünü ölçer: oturum hacminin, genellikle son 20 oturumu kapsayan ortalama günlük hacme bölünmesiyle hesaplanır. 1 RVOL değeri olağan bir günü, 2 değeri normalden iki kat daha fazla hissenin el değiştirdiğini, 0.5 değeri ise oturumun yarı hızda ilerlediğini gösterir. Bu sayfadaki tüm veriler, dakika bazlı ABD piyasa verilerinden elde edilmiştir ve her panelde ilgili sorgu yer almaktadır.
Göreceli hacim nedir? Sade bir tanım
Ham hacim tek başına çok az anlam ifade eder: beş milyon hisse senedi, büyük ölçekli bir şirket için oldukça sakin bir güne karşılık gelirken, küçük ölçekli bir şirket için yılda bir kez gerçekleşen bir olay olabilir. Göreceli hacim, hissenin kendi normal hacmiyle olan karşılaştırmasını açık hale getirir:
RVOL = günün hacmi ÷ hissenin ortalama günlük hacmi (genellikle son 20 seans)
Varsayımsal bir örnek: Günlük ortalama 10 milyon hisse senedi işleme gören bir hisse, kapanışa kadar 25 milyon hisse ile işlem görürse 2,5 RVOL değerine ulaşmış olur. (Bir "işlem", konsolide veri bandına —piyasa genelindeki gerçekleşen işlemlerin kaydı— bildirilen bir ticarettir ve "bant" terimi bu kayıt için yatırımcılar tarafından kullanılan kısa bir tabirdir.) 20 seanslık geriye dönük bakış bir gelenektir; platformlar ayrıca 10, 30 veya 50 günü de kullanabilir; bu süre kabaca bir takvim ayı süren işlem hacmine tekabül eder. Bu zaman aralığı borsa takviminin özelliklerinden de etkilenir: bir tatil günündeki yarım gün, ortalamaya normal bir seans hacminin yalnızca küçük bir kısmını ekler; piyasa tatilleri ve erken kapanışlar bu günlerin ne zaman gerçekleştiğini gösterir.
İşlemciler neden göreceli hacmi takip eder?
RVOL bir yön göstergesi değil, katılım göstergesidir. Yüksek RVOL günleri; kazanç raporları, endekse yeni eklenen hisseler veya önemli haberler gibi tanımlanabilir olayların etrafında yoğunlaşır. Yüksek hacimle gerçekleşen bir fiyat hareketi, arkasında büyük bir kitle olduğunu gösterir; aynı hareket 0.3 RVOL ile gerçekleşirse, bu sadece birkaç emrin sonucu olabilir. İşlem hacmi, likidite ile doğrudan ilişkilidir: Hisseler arasında en az işlem gören varlıklar, gün boyu her iki yönde de fiyat veren piyasa yapıcılar tarafından oluşturulan en geniş alım-satım spreadleri ile işlem görür. Herhangi bir hisse için fiyat teklifleri, en hareketli seanslara kıyasla en sakin seanslarda daha geniş aralıklarda seyretme eğilimindedir. (Hacim ayrıca, hacim ağırlıklı ortalama fiyat olan VWAP için de temel teşkil eder; bu, hacim bazlı diğer önemli referanstır.)
Göreceli hacim nasıl hesaplanır — ve gün içi zaman tuzağı
Tam gün hesaplaması tek bir bölme işlemidir: seansın toplam hacmi ÷ 20 seanslık ortalama günlük hacim. Bu veri ancak piyasa kapandıktan sonra güvenilir sonuç verir. Tuzağı ise seans ortasında hesaplamaktır: saat 10:30'da mevcut toplam, doğal olarak tam gün rakamının bir kesridir; bu nedenle çok hareketli bir sabah bile düşük hacimli görünebilir. Gün içi hacim, saat boyunca U şeklinde bir seyir izler ve her türlü gün içi RVOL bu şekil baz alınarak hesaplanmalıdır.
Aşağıda, S&P 500 ETF'si olan SPY üzerinden ölçülen şekil yer almaktadır: son 30 tam seans boyunca (uzatılmış saatler dahil; Doğu Saati ile 04:00 - 20:00), her 30 dakikalık zaman diliminde işlem gören medyan hisse sayısı.
Her verinin arkasındaki tam SQL
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_timeNormal seansın ilk yarım saati olan 09:30 dilimi, bir önceki 09:00 hazırlık piyasası dilimindeki 3.5 bin hisseye kıyasla, dakikada medyan 136 bin hisse ile ilerlemiştir. Hız, 12:30 diliminde 49.5 bin hisseye düşmekte, ardından kapanışa doğru artmaktadır: kapanış müzayedesi öncesindeki yükselişle birlikte 15:30 diliminde 168.3 bin hisse seviyesine ulaşarak öğle yemeği durgunluğunun çok üzerine çıkmaktadır. Saat 16:00'daki zilden sonra dakikalık hız, mesai sonrası işlemlere geçerken hızla düşmektedir.
Gün içi göreceli hacim: günün saatine göre ayarlama
Düzeltme, paydayı değiştirir: bugünkü toplam hacim, aynı saat dilimindeki ortalama toplam hacim ile karşılaştırılır. Bu işlem, normal bir işlem günündeki hacmin her bir saat diliminde ne kadarının tamamlanmış olduğunu bilmeyi gerektirir; bu veri burada SPY'ın son 20 tamamlanmış seansı üzerinden ölçülmüştür:
Her verinin arkasındaki tam SQL
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 checkpointNormal işlem süresinin yarım saati olan saat 10:00 itibarıyla SPY, genellikle günlük toplam hacminin sadece 12.4% kadarını gerçekleştirmiş olur; öğlen saatlerinde 34.8%, saat 14:00'te 51.1% ve saat 15:30'da hâlâ sadece 67.3% seviyesindedir. Saat 16:00'daki kapanış ziliyle birlikte toplam hacim 85.7% seviyesindedir; geri kalan tüm veriler 16:00'da veya sonrasında raporlanır ve bunların çoğu, kapanış müzayedeleri ile diğer gün sonu işlemlerinin gerçekleştiği kapanış zilinden sonraki ilk dakikalarda kaydedilir; piyasa sonrası seansın hacmi ise çok daha düşüktür. Bu durum yukarıdaki grafikteki sert düşüşle örtüşmektedir: Günlük toplam hacmin önemli bir kısmı hâlâ raporlanırken, dakikalık işlem hızı kapanış ziliyle birlikte hızla düşer. Zamana göre ayarlanmış sabah RVOL değeri, bugünkü kümülatif hacmi, 20 günlük ortalamanın ilgili kontrol noktası payı ile çarpılmasıyla elde edilen değere böler. Bir istisna mevcuttur: Bu program SPY'a aittir; her hisse senedi kendi zaman akışına sahiptir ve aşağıdaki örnek uygulama tek bir hisse senedi üzerinden hesaplanmıştır.
Uygulamalı bir örnek: yüksek hacimli bir işlem seansı (MU)
Haziran 2026, Micron için yoğun bir ay oldu — MU Haziran 2026 derinlemesine incelemesi tüm verileri analiz etmektedir. İşte o ayın en yüksek hacimli tekil işlem seansı ve her iki yönden hesaplanmış RVOL verileri:
Her verinin arkasındaki tam SQL
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_dayMU'nun o ayki en büyük işlem seansı 2026-06-25 tarihinde gerçekleşti. O gün saat 10:30 itibarıyla, önceki 20 seansın aynı saatindeki 17.3 milyonluk ortalamaya kıyasla 32.8 milyon hisse işlem gördü — bu da zamana göre ayarlanmış 1.9 RVOL değerine tekabül ediyor. Sabah toplamını, tam gün ortalaması olan 51 milyon ile kıyaslandığında ise basit okuma 0.64 olarak görülmektedir: normal hızının neredeyse iki katında ilerleyen bir sabahın ardından, görünüşe göre ortalamanın altında bir gün. Seans 77.2 milyon hisse ile tamamlandı ve tam gün RVOL değeri 1.5 oldu.
Bu kapanış rakamı, ortalamanın on katı hacimle hareket eden hisselerin ekran görüntüleri yanında mütevazı görünebilir — bunun gerçekten mütevazı olup olmadığı, bir sonraki adımda ölçülecek olan dağılım meselesidir.
Yüksek göreceli hacim ne anlama gelir?
Ticaret forumlarında "2'nin üzerindeki RVOL yüksektir" gibi eşik değerler konuşulmaktadır. Ölçümlenmiş versiyon şöyledir: 20 günlük ortalama günlük hacmi 5 milyon hisse senedinin üzerindeyse (ve 20 önceki seansa ait geçmiş verisi varsa), ABD borsalarında işlem gören tüm hisse senetleri ve ETF'ler için en son tamamlanan seans bazında grup genelinde yüzdelik dilim hesaplanır. Etiket hakkında bir not: Tarama hisse sayısını baz alır, dolar tutarını değil; bu nedenle yüksek hacimli grup, dev şirketlerden ve ETF'lerden ucuz, yüksek devir hızına sahip küçük ölçekli şirketlere kadar uzanır — yüksek hisse hacmi, kolay işlem yapılabilirliği ile aynı şey değildir.
Her verinin arkasındaki tam SQL
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 percentileBu yüksek hacimli gruptaki medyan hisse, kendi 20 günlük ortalamasının 0.73 katı işlem görmüştür. On hissenin dokuzu 1.37 seviyesinin altında kalırken, her yüz hissedan sadece biri 4.71 seviyesini aşmıştır. Bir önceki bölümdeki MU seansını bu tabloyla karşılaştırıldığında, değerlerin mütevazı olmadığı görülür; yoğun hisseler bile çoğu günü kendi ortalamalarına yakın geçirir; ortalamanın katları nadirdir.
Alt uç da önemlidir: %10'luk dilim 0.11 seviyesindedir. Bu kadar düşük okumalar genellikle 20 günlük ortalaması hala tek bir devasa seans tarafından taşınan hisseleri işaret eder — bir sıçramanın ardından, şişmiş payda RVOL değerini haftalarca düşük tutar. Pencerenin her iki yönde de bir hafızası vardır.
Bir uyarı: Bu, tek bir seansın kesitidir — yüzdelik dilimler günden güne değişir ve piyasa genelindeki olay günleri (endeks yeniden dengelemeleri, opsiyon vadeleri) tüm eğriyi yukarı çekebilir.
Hangi hisselerde olağan dışı hacim görüldü? RVOL lider tablosu
Aynı evren üzerinden sıralanmıştır (haftalık güncel liste bu haftaki olağan dışı hacimli hisseler adresindedir): Günlük ortalaması 5 milyon hissenin üzerinde olan ve 2026-07-21 seansında en yüksek tam gün RVOL değerine sahip olan on isim — bir tarayıcının olağan dışı hacim olarak işaretleyeceği liste. Tarama işlemi için tam 20 önceki seans gereklidir; yeni listelenen hisselerin anlamlı bir 20 günlük ortalaması bulunmadığından, bu durum listenin hatalı verilerle dolmasına neden olabilir.
Her verinin arkasındaki tam SQL
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 10Listenin başında yer alan LBGJ, 5.1 milyonluk 20 günlük ortalamaya karşı 169.2 milyon hisse işlem görmüştür — bu da 33.3 oranında bir RVOL anlamına gelmektedir. Her satır kendi ortalamasını aşmıştır. Bu tür listeler, büyük ölçekli şirketlerden (mega-cap) uzaklaşma eğilimindedir; halihazırda devasa olan bir ortalamayı iki katına çıkarmak olağan dışı miktarda hisse gerektirirken, daha küçük ölçekli bir hisse tek bir seansta hacmini katlayabilir.
Veri notları: seans seçimi ve istisnalar
Her iki sıralı tablo da aynı evreni ve aynı seans kuralını kullanır. Bir seansın tamamlanmış sayılması için, ilgili tarihteki SPY hacminin, SPY'ın kendi önceki 20 seanslık ortalamasının en az %60'ına ulaşması gerekir; en yeni günün verileri gecikmeli gelir ve bu kontrol, kısmen yüklenmiş bir günün tamamlanmış bir seans olarak okunmasını engeller. Her iki tablo ayrıca, borsaların yakın zamanda yeni bir listeye atadığı bir sembolü kapsam dışı bırakır: veri sağlayıcıları, o sembol altında iki farklı şirketin geçmişini taşıdığından, 20 günlük ortalama anlamlı bir temel oluşturmaz. SQL içindeki istisna listesi, her yenilemede sembol kimliği kontrollerimizle senkronize tutulur; yeni işaretlenen her yeniden kullanılan sembol aynı yöntemle listeye eklenir.
SSS
İyi bir RVOL değeri nedir?
Resmi bir eşik değer bulunmamaktadır. Verilerimizdeki en son tamamlanmış seansta, yüksek hacimli ABD hisseleri genelinde yapılan ölçümlere göre; medyan değer 20 günlük ortalamasının 0.73 katı, %90'lık dilim 1.37 ve %99'luk dilim ise 4.71 olarak gerçekleşmiştir.
RVOL değerinin 2 olması ne anlama gelir?
Hisse, ölçülen zaman dilimi boyunca (genellikle geriye dönük 20 seans) ortalama hacminin iki katı kadar işlem görmüştür. Zamanlama önemlidir: Günün aynı saatine göre 2 değeri, seans ortası için güçlü bir okumadır; kapanışa doğru 2 değeri ise normal temponun iki katında geçen bir güne işaret eder.
Gün içi göreceli hacim nasıl hesaplanır?
Bugünkü kümülatif hacmi, bakılan zaman aralığındaki aynı saat dilimine ait ortalama kümülatif hacme bölün. Sabah saatlerindeki toplam hacmi tam gün ortalamasına bölmek, değeri hatalı şekilde düşük gösterir; saat 10:00 itibarıyla SPY, genellikle gün sonu hacminin sadece 12.4% kısmını tamamlamış olur.
Göreceli hacim, piyasa öncesi ve piyasa sonrası işlemleri kapsar mı?
Platform uygulamaları farklılık göstermektedir; bu sayfa, uzatılmış saatler dahil olmak üzere Doğu Saati takvim günündeki her bir dakikalık çubuğu saymaktadır. SPY için piyasa öncesi katkısı oldukça düşüktür; saat 09:00 diliminde dakikada medyan 3.5 bin lot iken, açılıştan hemen sonra bu değer 136 bin lot seviyesindedir.
Yüksek göreceli hacim yükseliş mi yoksa düşüş sinyali midir?
Her ikisi de değildir. RVOL yönü değil, katılımı ölçer; yoğun işlem hacmi hissenin hem en iyi hem de en kötü günlerinde görülür. Yüksek RVOL'lu seanslar tarihsel olarak kazanç raporları, endeks değişiklikleri ve önemli haber akışlarıyla eşleşmiştir; bu sayı kalabalığın geldiğini gösterir, ancak hangi yöne eğilimde olduğunu söylemez.
Yukarıdaki her panel, kendisini oluşturan SQL kodunu içerir; birini açın, kendi sembolünüzü ekleyin ve Strasmore terminalinde gerçekten işlem yaptığınız hisseler için RVOL değerini ölçün.