Strasmore Research
למידה Matt Connorמאת Matt Connor · עודכן 2026-07-25 · data as of July 25, 2026 · refreshed weekly

מה זה RVOL (נפח יחסי) ואיך קוראים אותו

RVOL (נפח יחסי) הוא נפח המסחר של מניה חלקי הממוצע היומי שלה ב-20 ימי מסחר. ערך מעל 1 מצביע על מסחר ער מהרגיל. כולל הסבר על RVOL תוך-יומי לפי שעות המסחר ומה נחשב לנפח גבוה.

נפח יחסי (RVOL) מודד עד כמה המסחר במניה עמוס לעומת הנורמה האחרונה שלה: נפח המניות במושב חלקי הנפח היומי הממוצע של המניה, לרוב על פני 20 המושבים האחרונים. RVOL של אחד מציין יום רגיל, שתיים משמעו שכמות מניות כפולה מהרגיל החליפה ידיים, ו-0.5 מסמן מושב שמתנהל בחצי מהירות. כל נתון בעמוד זה נמדד מנתוני שוק ארצות הברית ברמת הדקה, כשהשאילתה המדויקת מצורפת לכל פאנל.

מהו נפח מסחר יחסי? הגדרה בשפה פשוטה

נפח גולמי לבדו אומר מעט: חמישה מיליון מניות הוא יום שקט לחלוטין עבור מניית ענק, ואירוע של פעם בשנה עבור מניה קטנה. נפח יחסי הופך את ההשוואה לנורמה של המניה עצמה למפורשת:

RVOL = נפח המסחר של היום ÷ נפח המסחר היומי הממוצע של המניה (בדרך כלל 20 הימים האחרונים)

דוגמה היפותטית: מניה שממוצע המסחר היומי שלה הוא 10 מיליון מניות ומדפיסה 25 מיליון עד הסגירה סיימה ב-RVOL של 2.5. (הדפסה היא עסקה המדווחת לטייפ המאוחד — הרישום כלל-השוק של ביצועים — ו"הטייפ" הוא כינוי סוחרים לאותו רישום.) חלון המבט לאחור של 20 ימים הוא מוסכמה — פלטפורמות משתמשות גם ב-10, 30 או 50 ימים; זהו כחודש קלנדרי אחד של מסחר. החלון גם יורש את המוזרויות של לוח השנה של הבורסה: חצי-יום חג מוסיף רק חלק קטן מנפח של יום מסחר רגיל לממוצע, ו-חגי שוק וסגירות מוקדמות ממפה היכן אלו נופלים.

למה סוחרים עוקבים אחר נפח מסחר יחסי?

RVOL הוא מדד להשתתפות, לא לכיוון. ימי RVOL גבוה מתרכזים סביב אירועים מזוהים — דוחות כספיים, צירוף למדד, חדשות כותרות. מהלך מחיר שנרשם בנפח גבוה נתמך בקהל; אותו מהלך ב-RVOL של 0.3 יכול להיות תוצאה של קומץ פקודות. הפעילות נעה גם יחד עם סחירות: בין המניות, השמות הסחירים פחות נושאים את פערי הקנייה-מכירה הרחבים ביותר, שמציבים עושי השוק המצטטים משני הצדדים כל היום, ולכל מניה נתונה, הציטוטים נוטים להיות מעט רחבים יותר בימים השקטים שלה מאשר בימים העמוסים ביותר. (נפח גם תומך ב-VWAP, המחיר הממוצע המשוקלל בנפח — מדד הייחוס הגדול האחר המבוסס על נפח.)

איך מחשבים נפח מסחר יחסי – ומלכודת השעה ביום

החישוב היומי המלא הוא פעולת חילוק אחת: נפח המסחר הכולל של יום המסחר ÷ נפח המסחר היומי הממוצע ב-20 ימי המסחר האחרונים. הוא מדויק רק לאחר הסגירה. המלכודת היא להריץ אותו באמצע היום: ב-10:30 בבוקר הסכום המצטבר הוא מטבעו רק חלק קטן מכל נתון יומי מלא, כך שאפילו בוקר סוער נראה רדום. נפח מסחר תוך-יומי מתנהג בצורת U לאורך שעות המסחר, וכל חישוב של נפח מסחר יחסי תוך-יומי חייב להתחיל מהצורה הזו.

להלן הצורה, כפי שנמדדה על SPY, תעודת הסל על מדד S&P 500: חציון המניות שנסחרו בדקה בכל מקטע של 30 דקות על פני 30 ימי המסחר המלאים האחרונים, כולל שעות מסחר מורחבות (4:00 לפנות בוקר עד 8:00 בערב, שעון החוף המזרחי).

שאילתהSPY — מניות חציוניות הנסחרות בדקה, לפי מקטעי 30 דקות (שעון החוף המזרחי, 30 ימים אחרונים, שעות מורחבות)
ה-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 – חצי השעה הראשונה של המסחר הרגיל – רשם חציון של 136 אלף מניות בדקה, לעומת 3.5 אלף במקטע 9:00 שלפני הפתיחה הרשמית. הקצב מידלדל ל-49.5 אלף במקטע 12:30, ואז נבנה לקראת הסגירה: 168.3 אלף במקטע 3:30, לקראת המכרז הנעילה והרבה מעל השפל של שעת הצהריים. לאחר צלצול הסגירה ב-4:00 אחר הצהריים, הקצב לדקה צונח בתלילות אל תוך המסחר שלאחר שעות הפעילות הרשמיות.

נפח יחסי תוך-יומי: התאמה לשעת המסחר

התיקון משנה את המכנה: משווים את הסכום המצטבר של היום מול הסכום המצטבר הממוצע באותה שעת מסחר. לשם כך צריך לדעת איזה חלק מיום מסחר רגיל כבר הושלם בכל נקודה על השעון — נמדד כאן על 20 הימים האחרונים של SPY:

שאילתהSPY — חלק ממוצע מנפח המסחר היומי שהושלם בכל נקודת זמן (20 ישיבות אחרונות)
ה-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 checkpoint

עד 10:00 בבוקר, חצי שעה לתוך המסחר הרציף, SPY מדפיס בדרך כלל רק 12.4% מסך הנפח היומי הסופי שלו; עד הצהריים 34.8%, עד 14:00 51.1%, ועד 15:30 עדיין רק 67.3%. אפילו בסגירה ב-16:00 הסכום עומד על 85.7% — כל השאר מדווח בשעה 16:00 או אחריה, ורובו נוחת בדקות הראשונות אחרי הסגירה, כשמכרז הסגירה ועסקאות סוף-יום אחרות מגיעות לטיקר; הסשן שלאחר הסגירה עצמו דליל בהרבה. זה מתיישב עם הצניחה בגרף למעלה: הקצב לדקה קורס בסגירה, אף על פי שנתח משמעותי מסך היום עדיין מדווח. נפח יחסי בוקר מותאם-זמן מחלק את הנפח המצטבר של היום בממוצע 20 הימים כפול חלק נקודת הביקורת. הסתייגות אחת: לוח הזמנים הזה הוא של SPY — כל מניה שומרת על שעון משלה, והדוגמה המחושבת למטה מודדת שם אחד.

דוגמה מעובדת: סשן אמיתי במחזור כבד (MU)

יוני 2026 היה חודש כבד עבור מיקרון — הצלילה לעומק של MU ליוני 2026 עוברת על כל הנתונים. הנה הסשן בעל המחזור הגדול ביותר באותו חודש, עם חישוב RVOL בשתי השיטות:

שאילתהMU — ישיבת הנפח הגבוה ביותר ביוני 2026: RVOL מותאם זמן לעומת RVOL נאיבי, בתוספת הנתון היומי המלא
ה-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_day

הסשן הגדול ביותר של MU בחודש התרחש ב-2026-06-25. עד 10:30 בבוקר באותו יום, 32.8 מיליון מניות החליפו ידיים, לעומת ממוצע של 17.3 מיליון מניות באותה שעת שעון ב-20 הסשנים הקודמים — RVOL מותאם-זמן של 1.9. חלקו את סך הבוקר הזה בממוצע היום המלא של 51 מיליון מניות במקום זאת, והקריאה הנאיבית היא 0.64: יום מתחת לממוצע, לכאורה, בבוקר שרץ בקצב הקרוב לפי שניים מהרגיל. הסשן נסגר ב-77.2 מיליון מניות, RVOL יום מלא של 1.5.

נתון הסגירה הזה יכול להיראות צנוע ליד צילומי מסך של מניות שזזות פי עשרה מהממוצע — האם הוא באמת צנוע זו שאלה להתפלגות, שנמדדת בהמשך.

מה נחשב נפח מסחר יחסי גבוה?

בפורומי מסחר צפים רף כמו "RVOL מעל 2 נחשב גבוה." הנה הגרסה המדודה: נפח מסחר יחסי יומי מלא עבור כל מניה וקרן סל אמריקאיות שממוצע הנפח היומי שלהן ב-20 הימים האחרונים עולה על 5 מיליון מניות (ושיש להן היסטוריה מלאה של 20 ימי מסחר קודמים), מחולק לאחוזונים על פני כל הקבוצה עבור יום המסחר המלא האחרון בנתונים שלנו. הערה אחת לגבי התווית: הסריקה סופרת מניות, לא דולרים, כך שקבוצת הנפח הגבוה הזו נעה ממניות ענק וקרנות סל ועד למניות קטנות זולות עם תחלופה גבוהה — נפח מניות גבוה אינו זהה לסחירות קלה.

שאילתהאחוזוני RVOL יומי מלא בקרב מניות ותעודות סל אמריקאיות בנפח גבוה (ADV 20 מעל 5 מיליון מניות), ישיבה מלאה אחרונה
ה-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

השם החציוני בקבוצת הנפח הגבוה הזו נסחר פי 0.73 מהממוצע שלו ב-20 הימים האחרונים. תשעה שמות מתוך עשרה היו מתחת ל-1.37, ורק אחד למאה חצה את 4.71. הציבו את יום המסחר של MU מהחלק הקודם מול הטבלה הזו והוא מפסיק להיראות צנוע — אפילו שמות פעילים מבלים את רוב הימים קרוב לממוצע שלהם; כפולות שלו הן נדירות.

גם הזנב התחתון חשוב: האחוזון העשירי עמד על 0.11. קריאות נמוכות כל כך מסמנות בדרך כלל מניה שהממוצע שלה ב-20 הימים האחרונים עדיין נושא יום מסחר חריג אחד — לאחר קפיצה, המכנה המנופח מדכא את הנפח היחסי למשך שבועות. לחלון יש זיכרון, בשני הכיוונים.

הסתייגות אחת: זהו חתך רוחב של יום מסחר בודד — האחוזונים נעים מיום ליום, וימי אירועים כלל-שוקיים (איזון מדדים מחדש, פקיעת אופציות) יכולים להרים את כל העקומה.

אילו מניות רשמו מחזור חריג? טבלת ה-RVOL המובילים

אותו יקום, מדורג (הגרסה השבועית הקבועה נמצאת ב-מניות במחזור חריג השבוע): עשר הקריאות היומיות המלאות הגבוהות ביותר של RVOL במהלך הסשן של 2026-07-21 בקרב שמות שממוצע המחזור שלהם עולה על 5 מיליון מניות ביום — הטבלה שסורק מניות יסמן כבעלת מחזור חריג. הסריקה דורשת 20 סשנים קודמים מלאים — להנפקות אחרונות אין ממוצע 20 יום בעל משמעות, והן היו ממלאות את הטבלה ברעשי רקע.

שאילתהעשירייה ראשונה לפי RVOL יומי מלא — ישיבה מלאה אחרונה (ADV 20 מעל 5 מיליון מניות, נדרשת היסטוריה מלאה)
ה-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

בראש הטבלה, LBGJ, הדפיס 169.2 מיליון מניות לעומת ממוצע 20 יום של 5.1 מיליון — RVOL של 33.3. כל שורה עקפה את הממוצע של עצמה. טבלאות כאלה נוטות להתרחק ממניות ענק מוכרות — הכפלת ממוצע שכבר עצום דורשת מספר מניות יוצא דופן, בעוד ששם קטן יותר יכול להכפיל את רצף העסקאות שלו בסשן אחד.

הערות נתונים: בחירת סשן והחרגות

שתי הטבלאות המדורגות משתמשות באותו יקום ובאותו כלל סשן. סשן מועמד נחשב שלם רק כאשר רצף העסקאות של SPY לאותו תאריך מגיע לפחות ל-60% מממוצע המחזור של SPY עצמו ב-20 הסשנים הקודמים — נתוני היום החדש ביותר מגיעים בפיגור, ובדיקה זו מונעת מיום שנטען חלקית להיקרא כסשן שהושלם. שתי הטבלאות גם מחריגות סימול אחד שהבורסות הקצו מחדש לאחרונה להנפקה חדשה: הזנות הספקים נושאות היסטוריה של שתי חברות שונות תחת אותו טיקר, כך שממוצע 20 הימים שלו אינו קו בסיס בעל משמעות. רשימת ההחרגות ב-SQL נשמרת מסונכרנת עם בדיקות זהות הסימולים שלנו בכל רענון; כל סימול בשימוש חוזר שסומן לאחרונה מתווסף באותה דרך.

שאלות נפוצות

מהו ערך RVOL טוב?

אין סף רשמי. במדידה על פני מניות אמריקאיות בנפח מסחר גבוה ביום המסחר האחרון שהסתיים בנתונים שלנו, החציון עמד על פי 0.73 מהממוצע ל-20 יום, האחוזון ה-90 היה 1.37, והאחוזון ה-99 היה 4.71.

מה המשמעות של RVOL של 2?

המניה נסחרה בכמות כפולה מהנפח הממוצע שלה בחלון המדידה, בדרך כלל 20 ימי המסחר האחרונים. השעה קובעת: 2 לעומת ממוצע באותה שעה ביום הוא קריאה חזקה באמצע היום; 2 בסגירה מסמן יום בקצב כפול מהרגיל.

איך מחשבים נפח יחסי תוך-יומי?

מחלקים את הנפח המצטבר של היום בנפח המצטבר הממוצע באותה נקודת זמן על פני חלון ההשוואה. חלוקה של סך נפח באמצע הבוקר בממוצע יומי מלא מפחיתה את הקריאה בצורה חמורה — עד 10:00 בבוקר, SPY השלים בדרך כלל רק 12.4% מנפח היום הסופי שלו.

האם נפח יחסי כולל מסחר בפרה-מרקט ואפטר-מרקט?

המוסכמות בין פלטפורמות שונות; דף זה סופר כל בר דקה ביום הקלנדרי לפי שעון החוף המזרחי, כולל שעות מורחבות. עבור SPY התרומה בפרה-מרקט קטנה באופן ניכר — חציון של 3.5 אלף מניות לדקה בקטגוריית 9:00 לעומת 136 אלף מיד לאחר הפתיחה.

האם נפח יחסי גבוה הוא שורי או דובי?

אף אחד מהם. RVOL מודד השתתפות, לא כיוון — מחזור מסחר כבד מופיע בימים הטובים והגרועים ביותר של מניה כאחד. ימי RVOL גבוה התרחשו היסטורית במקביל לדוחות רווח, שינויי מדדים וחדשות מרעישות; המספר אומר שהקהל הגיע, לא לאיזה כיוון הוא נוטה.


כל פאנל למעלה מכיל את שאילתת ה-SQL המדויקת שיצרה אותו — פתח אחד, החלף בטיקר שלך, ומדוד RVOL עבור המניות שאתה באמת סוחר בהן במסוף Strasmore.