RVOL(相対出来高)とは?見方と高い水準
RVOL(相対出来高)は、当日の出来高を直近20セッションの平均日次出来高で割った指標です。1超は通常より活発な取引を示し、時間帯別RVOLや高い水準の目安も解説します。
相対出来高(RVOL)は、銘柄固有の直近の通常水準と比べて、どの程度活発に売買されているかを示す指標です。当日の出来高を、通常は直近20セッションの平均日次出来高で割って算出します。RVOLが1なら通常の取引日、2なら普段の2倍の株数が売買されたことを示し、0.5なら通常の半分のペースで取引されていることを意味します。このページの数値はすべて、米国市場の分足データに基づいて算出しており、各パネルには使用したクエリを正確に添付しています。
相対出来高とは何か:平易な定義
絶対出来高だけでは、単独で意味を判断しにくい。大型株にとって500万株はほとんど動きのない一日でも、小型株にとっては年に一度あるかどうかの規模になり得る。相対出来高は、その銘柄の通常の水準との比較を明確にする。
RVOL = 当日の出来高 ÷ その銘柄の平均日次出来高(通常は直近20セッション)
仮に、平均して一日1,000万株を取引する銘柄が、引けまでに2,500万株を記録したとする。この場合、RVOLは2.5となる。(Printとは、約定の市場全体の記録であるコンソリデーテッド・テープに報告された取引を指す。「テープ」は、トレーダーがその記録を指して使う略称である。)20セッションの参照期間は慣行であり、プラットフォームによっては10日、30日、50日を使う。これはおおむね暦月一カ月分の取引日に相当する。この期間には、取引所の営業日カレンダーの特徴も反映される。祝日の半日取引では、通常の一日分に満たない出来高しか平均に加わらない。市場の休場日と短縮取引では、そうした日程を確認できる。
なぜトレーダーは相対出来高に注目するのか
RVOLは参加度を測る指標であり、方向性を測る指標ではない。RVOLが高い日は、決算発表、指数への組み入れ、ヘッドラインニュースなど、特定しやすいイベントの前後に集中する。大商いを伴って形成された値動きには、多くの市場参加者が関与している。一方、RVOLが0.3の同じ値動きは、少数の注文だけで生じた可能性がある。取引の活発さは売買のしやすさとも連動する。銘柄間で見ると、最も薄商いの銘柄ほどビッド・アスク・スプレッドが広い。これは、一日を通じて買い気配と売り気配の双方を提示するマーケットメイカーが形成する。また、同じ銘柄でも、気配値は最も閑散としたセッションで、最も活発なセッションよりやや広がる傾向がある。(出来高は、もう一つの主要な出来高ベースの指標であるVWAP(出来高加重平均価格)の基盤でもある。)
相対出来高の計算方法と時間帯による落とし穴
終日ベースの計算は一つの割り算で済みます。セッションの総出来高を、直近20セッションの1日平均出来高で割ります。この数値を正確に評価できるのは、取引終了後だけです。落とし穴は、セッション途中に計算することです。午前10時30分の累計出来高は、当然ながら終日出来高の一部にすぎません。そのため、午前中に激しい売買があっても、動きが乏しいように見えます。日中の出来高は時間帯によってU字型に推移するため、日中のRVOLはこの形状を基準にする必要があります。
以下は、S&P 500 ETFであるSPYで計測した出来高の時間帯別パターンです。直近30日間の取引完了セッションを対象に、30分単位の各時間帯で1分当たりに売買された株数の中央値を示しています。時間外取引も含み、対象時間は米東部時間の午前4時から午後8時までです。
| ET時刻 | 1分間出来高の中央値(k) |
|---|---|
| 04:00 | 0.7 |
| 04:30 | 0.5 |
| 05:00 | 0.4 |
| 05:30 | 0.4 |
| 06:00 | 0.4 |
| 06:30 | 0.4 |
| 07:00 | 1.4 |
| 07:30 | 1.5 |
| 08:00 | 1.9 |
| 08:30 | 2.5 |
| 09:00 | 3.6 |
| 09:30 | 95.5 |
| 10:00 | 68.2 |
| 10:30 | 58.9 |
| 11:00 | 49.1 |
| 11:30 | 45 |
| 12:00 | 39.8 |
| 12:30 | 37.8 |
| 13:00 | 37.1 |
| 13:30 | 34.2 |
各数値の背後にある正確な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_time午前9時30分の時間帯は、通常取引の最初の30分に当たり、1分当たりの出来高中央値は95.5千株でした。その直前の午前9時のプレマーケットでは、3.6千株でした。出来高ペースは午後0時30分の時間帯に37.8千株まで細り、その後は引けにかけて増加します。午後3時30分の時間帯は138.9千株で、引けのオークションに向けて増加する局面に当たり、昼休みの低水準を大きく上回ります。午後4時の取引終了後は、1分当たりの出来高ペースが時間外取引に入って急減します。
日中の相対出来高:時間帯を調整する
この問題は分母を変えることで解決できます。つまり、当日の累計出来高を、同じ時刻までの平均累計出来高と比較します。そのためには、通常の一日の出来高のうち、時刻ごとにどの程度がすでに成立しているかを把握する必要があります。ここでは、SPYの直近20完了セッションについて、コンソリデーテッドテープの約定を取引ごとに集計しています。
| ETチェックポイント | 1日出来高の平均消化率(%) |
|---|---|
| 10:00 | 12 |
| 12:00 | 34.3 |
| 14:00 | 51.1 |
| 15:30 | 64.9 |
| 16:00 | 82.8 |
各数値の背後にある正確なSQL
WITH per_min AS (
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS et_date,
formatDateTime(toTimeZone(sip_timestamp, 'America/New_York'), '%H:%i') AS et_min,
sum(toFloat64(size)) AS v
FROM global_markets.stocks_trades
WHERE ticker = 'SPY'
AND sip_timestamp >= now() - INTERVAL 45 DAY
AND toDate(toTimeZone(sip_timestamp, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
AND NOT hasAny(conditions, [15, 16, 38])
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午前10時、通常取引開始から30分後の時点で、SPYの出来高は通常、最終的な一日全体の出来高の12%しか成立していません。正午では34.3%、午後2時では51.1%、午後3時30分でもわずか64.9%です。午後4時の取引終了時点でも合計は82.8%にとどまり、残りは16時以降に報告されます。その大半は、取引終了時のオークションなどの引け間際の取引がテープに反映される、取引終了直後の数分間に集中します。時間外取引そのものは、はるかに薄商いです。
これは、上のチャートに見られる急落とも整合します。取引終了時には毎分の出来高ペースが急減する一方、その日の総出来高の相当部分はなお報告中だからです。時間調整済みの朝方RVOLは、当日の累計出来高を、20日平均に基準時点の出来高比率を掛けた値で割ります。ただし、この時間配分はSPYのものです。各銘柄には固有の時間配分があります。下の計算例では、別の一銘柄を対象に測定しています。
実例:実際に出来高が急増したセッション(MU)
2026年6月はMicronにとって出来高の多い月でした。MUの2026年6月の詳細分析では、全取引履歴を確認しています。その月で最も出来高が多かった一セッションについて、RVOLを二通りの方法で計算します。
| セッション日付 | 10:30までの出来高(m) | 10:30までの平均出来高(m) | 10:30調整済みRVOL | 10:30単純RVOL | セッション出来高(m) | 直近ADV(m) | 終日RVOL |
|---|---|---|---|---|---|---|---|
| 2026-06-25 | 32.8 | 17.3 | 1.9 | 0.64 | 77.2 | 51 | 1.5 |
各数値の背後にある正確な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の月間最大出来高セッションは2026-06-25でした。その日の午前10時30分までに、32.8百万株が取引されました。過去20セッションの同時刻までの平均は17.3百万株で、時間調整後のRVOLは1.9です。一方、この朝の累計を終日平均の51百万株で割ると、単純計算では0.64となります。これは平均を下回る一日という判定ですが、実際には朝の時点で通常のほぼ二倍のペースで取引されていました。セッションの最終出来高は77.2百万株で、終日RVOLは1.5でした。
この終値ベースの数値は、平均の十倍の出来高を記録した銘柄のスクリーンショットと比べると控えめに見えるかもしれません。実際に控えめな水準だったかどうかは、次に分布を用いて確認します。
相対出来高が高いといえる水準は?
トレーディングフォーラムでは、「RVOLが2を超えれば高い」といった基準が語られます。ここでは実測値を示します。対象は、20日平均日次出来高が500万株を超え、かつ直近20セッション分の履歴がある、米国上場の全株式とETFです。直近の完了セッションについて、各銘柄の終日RVOLを対象銘柄群の中でパーセンタイル化しています。なお、このスクリーニングは金額ではなく株数を数えています。そのため、高出来高銘柄群には大型株やETFから、低価格で売買回転の高い小型株まで含まれます。出来高が多いことは、売買しやすいことと同義ではありません。
| パーセンタイル | RVOL |
|---|---|
| p10 | 0.1 |
| p25 | 0.77 |
| p50 (median) | 1.05 |
| p75 | 1.38 |
| p90 | 1.81 |
| p99 | 3.99 |
各数値の背後にある正確な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 percentileこの高出来高銘柄群の中央値は、自身の20日平均の1.05倍で取引されました。10銘柄中9銘柄は1.81倍未満で、100銘柄中99銘柄は3.99倍に届きませんでした。前のセクションで示したMUのセッションをこの表と比較すると、控えめな動きとはいえません。活発な銘柄でさえ、ほとんどの日は自身の平均付近で推移します。平均の倍数となる水準はまれです。
下側の裾野も重要です。10パーセンタイルは0.1でした。これほど低い値は通常、20日平均に突出した一日の出来高がなお含まれている銘柄を示します。急増後は分母が膨らみ、その影響でRVOLが数週間にわたり抑えられます。この期間には、上にも下にも記憶が残ります。
ただし、これは一つのセッションにおける銘柄横断の分布です。パーセンタイルは日々変動します。また、指数リバランスやオプション満期など、市場全体に影響するイベント日は、分布全体を押し上げる可能性があります。
異常な出来高となった銘柄はどれか。RVOLランキング
同じ対象銘柄をランキング化したものです(通常の週間版は今週の異常な出来高銘柄に掲載しています)。2026-10-15セッションにおける終日RVOLの上位10銘柄を示しています。対象は、1日平均500万株超の銘柄です。スクリーナーで異常な出来高として抽出される銘柄群に当たります。抽出には直前20セッション分のデータをすべて必要とします。上場直後の銘柄には有意な20日平均がなく、そのままではランキングがノイズで埋まるためです。
| ticker | セッション日付 | セッション出来高(m) | 20日ADV(m) | RVOL |
|---|---|---|---|---|
| CCC | 2026-10-15 | 318 | 9.3 | 34.1 |
| WETO | 2026-10-15 | 111.2 | 6.5 | 17 |
| SDST | 2026-10-15 | 1641.1 | 106.3 | 15.4 |
| DKI | 2026-10-15 | 125.7 | 19.1 | 6.6 |
| WFF | 2026-10-15 | 140.1 | 23.1 | 6.1 |
| ERIC | 2026-10-15 | 39.9 | 8.2 | 4.9 |
| WULF | 2026-10-15 | 105.9 | 26.5 | 4 |
| CRWV | 2026-10-15 | 127.5 | 32.6 | 3.9 |
| HUMA | 2026-10-15 | 20.7 | 5.3 | 3.9 |
| KORU | 2026-10-15 | 77.4 | 21.4 | 3.6 |
各数値の背後にある正確な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 10ランキング首位のCCCは、20日平均9.3百万株に対して318百万株を記録し、RVOLは34.1となりました。全銘柄がそれぞれの平均出来高を上回っています。このようなランキングは、一般消費者にも知られた超大型株から離れる傾向があります。すでに極めて大きい平均出来高を2倍にするには、非常に多くの株数が必要です。一方、小型銘柄なら一回のセッションで売買高が何倍にも膨らむ可能性があります。
データ注記:セッションの選定と除外
2つのランキング表は、同じ対象銘柄と同じセッション判定ルールを使用しています。候補となるセッションは、その日のSPYの出来高が、SPY自身の直前20セッションの平均出来高の少なくとも60%に達した時点で完了とみなします。最新日のデータは遅れて到着するため、この確認により、データが一部しか読み込まれていない日を完了済みセッションとして扱うことを防ぎます。両方の表では、取引所が最近、新たな上場銘柄に再割り当てしたティッカーも1つ除外しています。ベンダーの配信データでは、そのティッカーの下に異なる2社の履歴が登録されており、20日平均が有意な基準値にならないためです。SQLの除外リストは、更新のたびに実施する銘柄識別チェックと同期しています。新たに再利用ティッカーと判定された銘柄も、同じ方法で追加します。
よくある質問
適切なRVOLの水準はどれくらいですか?
公式な基準値はありません。当社のデータで、直近の完了セッションにおける米国の出来高上位銘柄を測定したところ、中央値は20日平均の1.05倍、90パーセンタイルは1.81、99パーセンタイルは3.99でした。
RVOLが2の場合、何を意味しますか?
測定期間(通常は直近20セッション)における平均出来高の2倍を取引したことを意味します。時刻が重要です。同じ時刻までの平均と比較して2倍なら、セッション途中としては強い数値です。一方、引け時点で2倍なら、通常の2倍のペースで一日を終えたことを示します。
日中の相対出来高はどのように計算しますか?
当日の累積出来高を、比較期間における同じ時刻までの平均累積出来高で割ります。午前中の途中までの累積値を終日平均で割ると、数値は大幅に過小評価されます。SPYでは、10時時点で最終的な一日出来高のうち通常は12%しか消化していません。
相対出来高にはプレマーケットと時間外取引が含まれますか?
プラットフォームによって扱いが異なります。このページでは、時間外取引を含む米東部時間の暦日全体を集計しています。SPYでは、プレマーケットの寄与は明らかに小さく、9時台の1分当たり出来高の中央値は3.6千株です。一方、寄り付き直後は95.5千株です。
相対出来高が高い場合、強気ですか、それとも弱気ですか?
どちらでもありません。RVOLは方向性ではなく、市場参加の強さを測る指標です。活発な売買は、その銘柄の上昇局面にも下落局面にも現れます。過去の高RVOLセッションは、決算発表、指数の銘柄入れ替え、ヘッドラインニュースと重なることが多くなっています。この数値が示すのは市場参加者が集まったという事実であり、どちらに傾いているかではありません。
上記の各パネルには、算出に使ったSQLがそのまま掲載されています。パネルを開き、自分のtickerに置き換えて、Strasmore terminalで実際に取引する銘柄のRVOLを測定してください。