Strasmore Research
การเรียนรู้ Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-07-24 · data as of July 24, 2026 · refreshed weekly

RVOL คืออะไร วิธีอ่านค่า Relative Volume

ทำความรู้จัก RVOL หรือ Relative Volume ตัวชี้วัดปริมาณการซื้อขายเทียบกับค่าเฉลี่ย 20 วัน เพื่อวิเคราะห์ความผิดปกติของปริมาณการซื้อขายในตลาดหุ้น

Relative volume (RVOL) คือตัวชี้วัดความหนาแน่นในการซื้อขายของหุ้นเมื่อเทียบกับค่าปกติในช่วงที่ผ่านมา โดยคำนวณจากปริมาณการซื้อขายในเซสชันนั้นหารด้วยปริมาณการซื้อขายเฉลี่ยต่อวัน ซึ่งโดยปกติจะใช้ค่าเฉลี่ยย้อนหลัง 20 เซสชัน หากค่า RVOL เท่ากับ 1 หมายถึงการซื้อขายในระดับปกติ หากเท่ากับ 2 หมายถึงมีการเปลี่ยนมือของหุ้นเป็นสองเท่าจากระดับปกติ และหากเท่ากับ 0.5 หมายถึงการซื้อขายมีปริมาณเพียงครึ่งหนึ่งของระดับปกติ ข้อมูลทุกตัวเลขในหน้านี้วัดจากข้อมูลตลาดสหรัฐฯ ในระดับรายนาที โดยมีการระบุคำสั่งดึงข้อมูลที่แนบมากับแต่ละแผงข้อมูล

Relative volume คืออะไร? คำจำกัดความแบบเข้าใจง่าย

ปริมาณการซื้อขายดิบ (Raw volume) เพียงอย่างเดียวอาจไม่มีความหมายมากนัก ตัวอย่างเช่น ปริมาณห้าล้านหุ้นอาจถือเป็นวันที่เงียบเหงามากสำหรับหุ้นที่มีมูลค่าตลาดขนาดใหญ่ (mega-cap) แต่กลับเป็นเหตุการณ์ที่เกิดขึ้นเพียงปีละครั้งสำหรับหุ้นที่มีมูลค่าตลาดขนาดเล็ก (small-cap) Relative volume จึงเข้ามาช่วยทำให้การเปรียบเทียบกับระดับปกติของหุ้นตัวนั้นๆ มีความชัดเจนขึ้น:

RVOL = ปริมาณการซื้อขายของวันนั้น ÷ ปริมาณการซื้อขายเฉลี่ยต่อวันของหุ้น (โดยปกติจะใช้ 20 sessions ล่าสุด)

ตัวอย่างสมมติ: หากหุ้นตัวหนึ่งมีปริมาณการซื้อขายเฉลี่ย 10 ล้านหุ้นต่อวัน และมีปริมาณการซื้อขายสะสมถึง 25 ล้านหุ้นเมื่อปิดตลาด จะมีค่า RVOL เท่ากับ 2.5 (คำว่า "print" หมายถึงรายการซื้อขายที่รายงานผ่าน consolidated tape ซึ่งเป็นบันทึกการซื้อขายทั่วทั้งตลาด และ "the tape" เป็นคำย่อที่นักเทรดใช้เรียกบันทึกดังกล่าว) การใช้ช่วงเวลา 20 sessions เป็นมาตรฐานสากล แพลตฟอร์มอื่นๆ อาจใช้ 10, 30 หรือ 50 วัน ซึ่งโดยประมาณแล้วจะเท่ากับหนึ่งเดือนตามปฏิทินการซื้อขาย นอกจากนี้ ช่วงเวลาดังกล่าวยังขึ้นอยู่กับเงื่อนไขของปฏิทินตลาดหลักทรัพย์ด้วย เช่น วันหยุดที่มีการซื้อขายเพียงครึ่งวัน จะส่งผลให้ค่าเฉลี่ยเพิ่มขึ้นเพียงเล็กน้อยเมื่อเทียบกับปริมาณการซื้อขายใน session ปกติ และสามารถดูรายละเอียดได้ที่ วันหยุดตลาดและเวลาปิดตลาดก่อนกำหนด

ทำไมเทรดเดอร์จึงต้องเฝ้าติดตาม relative volume?

RVOL คือเครื่องมือวัดระดับการมีส่วนร่วมในตลาด ไม่ใช่เครื่องมือวัดทิศทางราคา วันที่มี RVOL สูงมักเกิดขึ้นในช่วงที่มีเหตุการณ์สำคัญ เช่น การประกาศผลประกอบการ, การถูกเพิ่มเข้าในดัชนี หรือข่าวพาดหัวสำคัญ การเคลื่อนที่ของราคาที่มาพร้อมกับปริมาณการซื้อขายที่สูงแสดงว่ามีแรงซื้อขายจำนวนมากสนับสนุน ในขณะที่การเคลื่อนที่ในลักษณะเดียวกันที่มีค่า RVOL เพียง 0.3 อาจเกิดจากคำสั่งซื้อขายเพียงไม่กี่รายการเท่านั้น นอกจากนี้ กิจกรรมการซื้อขายยังสัมพันธ์กับสภาพคล่อง โดยหุ้นที่มีการซื้อขายเบาบางที่สุดมักจะมี bid-ask spreads ที่กว้าง ซึ่งเกิดจาก market makers ที่เสนอราคาซื้อและราคาขายตลอดทั้งวัน และสำหรับหุ้นตัวใดก็ตาม ราคาเสนอซื้อขายมักจะกว้างกว่าในช่วงที่ตลาดเงียบเหงาเมื่อเทียบกับช่วงที่มีการซื้อขายคึกคัก (ปริมาณการซื้อขายยังเป็นพื้นฐานของ VWAP, the volume-weighted average price ซึ่งเป็นเครื่องมืออ้างอิงหลักอีกตัวหนึ่งที่ใช้ปริมาณการซื้อขายเป็นเกณฑ์)

วิธีการคำนวณ Relative Volume และกับดักช่วงเวลาของวัน

การคำนวณแบบเต็มวันใช้การหารเพียงขั้นตอนเดียว คือ ปริมาณการซื้อขายรวมของเซสชันหารด้วยค่าเฉลี่ยปริมาณการซื้อขายรายวันย้อนหลัง 20 เซสชัน ข้อมูลนี้จะมีความแม่นยำก็ต่อเมื่อตลาดปิดแล้วเท่านั้น กับดักที่ต้องระวังคือการคำนวณระหว่างเซสชัน เนื่องจากปริมาณการซื้อขายสะสม ณ เวลา 10:30 น. จะเป็นเพียงเศษส่วนของตัวเลขเต็มวันตามธรรมชาติ ส่งผลให้ช่วงเช้าที่มีการซื้อขายอย่างรุนแรงอาจดูเหมือนซบเซา ปริมาณการซื้อขายระหว่างวันจะมีลักษณะเป็นรูปตัว U ตามช่วงเวลา ดังนั้นการคำนวณ RVOL ระหว่างวันจำเป็นต้องอ้างอิงจากรูปแบบดังกล่าว

ข้อมูลด้านล่างคือรูปแบบปริมาณการซื้อขายที่วัดจาก SPY ซึ่งเป็น S&P 500 ETF โดยเป็นค่ามัธยฐานของจำนวนหุ้นที่ซื้อขายต่อนาทีในแต่ละช่วงเวลา 30 นาที ตลอด 30 เซสชันล่าสุดที่ปิดตลาดแล้ว รวมถึงช่วงเวลาที่ขยายออกไป (4:00 น. ถึง 20:00 น. ตามเวลา Eastern Time)

คำสั่งดึงข้อมูลSPY — ค่ากลางจำนวนหุ้นที่ซื้อขายต่อนาที แบ่งตามช่วงเวลา 30 นาที (ET, 30 วันล่าสุด, extended hours)
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 พันหุ้นในช่วง Pre-market เวลา 9:00 น. ก่อนหน้านั้น อัตราการซื้อขายจะลดลงเหลือ 49.5 พันหุ้นในช่วงเวลา 12:30 น. ก่อนจะเพิ่มขึ้นในช่วงก่อนปิดตลาด โดยอยู่ที่ 168.3 พันหุ้นในช่วงเวลา 15:30 น. ซึ่งเป็นช่วงก่อนเกิด การประมูลปิดตลาด และมีระดับสูงกว่าช่วงต่ำสุดในช่วงพักเที่ยงอย่างมาก หลังจากสัญญาณระฆังเวลา 16:00 น. อัตราการซื้อขายต่อนาทีจะลดลงอย่างรวดเร็วเข้าสู่ช่วง การซื้อขายหลังเวลาทำการ

ปริมาณการซื้อขายสัมพัทธ์ระหว่างวัน: การปรับค่าตามช่วงเวลา

การแก้ไขนี้เปลี่ยนตัวหาร โดยการเปรียบเทียบยอดรวมสะสมของวันนี้กับยอดรวมสะสมเฉลี่ย ณ เวลาเดียวกันของวันปกติ ซึ่งจำเป็นต้องทราบสัดส่วนของปริมาณการซื้อขายในวันปกติที่เกิดขึ้นไปแล้ว ณ แต่ละช่วงเวลา โดยวัดจากข้อมูล 20 วันทำการล่าสุดของ SPY:

คำสั่งดึงข้อมูลSPY — สัดส่วนปริมาณการซื้อขายเฉลี่ยต่อวัน ณ แต่ละช่วงเวลา (20 sessions ล่าสุด)
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 น. ซึ่งส่วนใหญ่จะเกิดขึ้นในช่วงนาทีแรกๆ หลังปิดตลาด เมื่อการประมูลปิดตลาดและการซื้อขายช่วงสิ้นวันอื่นๆ เริ่มปรากฏในระบบ ในขณะที่ช่วงการซื้อขายหลังเวลาทำการ (after-hours) จะมีปริมาณการซื้อขายที่เบาบางกว่ามาก ข้อมูลนี้สอดคล้องกับกราฟด้านบนที่แสดงให้เห็นว่า อัตราการซื้อขายต่อนาทีจะลดลงอย่างรวดเร็วเมื่อถึงเวลาปิดตลาด แม้ว่าสัดส่วนที่มีนัยสำคัญของปริมาณการซื้อขายรวมทั้งวันจะยังคงถูกรายงานอยู่ก็ตาม การคำนวณ RVOL ช่วงเช้าแบบปรับค่าตามเวลา จะนำปริมาณการซื้อขายสะสมของวันนี้หารด้วยค่าเฉลี่ย 20 วัน คูณด้วยสัดส่วนตามจุดตรวจสอบ ข้อควรระวังคือ ตารางเวลานี้เป็นของ SPY เนื่องจากหุ้นแต่ละตัวมีช่วงเวลาการซื้อขายที่แตกต่างกัน โดยตัวอย่างด้านล่างนี้เป็นการวัดค่าของหุ้นเพียงตัวเดียว

ตัวอย่างการวิเคราะห์: วันที่มีปริมาณการซื้อขายสูง (MU)

เดือนมิถุนายน 2026 เป็นเดือนที่มีปริมาณการซื้อขายสูงสำหรับ Micron — การเจาะลึก MU ประจำเดือนมิถุนายน 2026 จะแสดงรายละเอียดข้อมูลทั้งหมด นี่คือเซสชันที่มีปริมาณการซื้อขายสูงสุดในเดือนนั้น พร้อมการคำนวณ RVOL ทั้งสองรูปแบบ:

คำสั่งดึงข้อมูลMU — วันที่มีปริมาณการซื้อขายสูงสุดใน มิถุนายน 2026: time-adjusted vs. naive 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

ตัวเลขปิดตลาดดังกล่าวอาจดูน้อยเมื่อเทียบกับภาพหน้าจอของหุ้นที่มีปริมาณการซื้อขายสูงกว่าค่าเฉลี่ยถึงสิบเท่า อย่างไรก็ตาม การจะระบุว่าปริมาณการซื้อขายนั้นน้อยจริงหรือไม่ ต้องพิจารณาจากการกระจายตัวของข้อมูล ซึ่งจะแสดงในลำดับถัดไป

ปริมาณการซื้อขายสัมพัทธ์ (Relative Volume) ระดับสูง หมายถึงอะไร?

ในฟอรัมการซื้อขายมักมีการกำหนดเกณฑ์ไว้ เช่น "RVOL สูงกว่า 2 ถือว่าสูง" แต่ในเชิงวัดผลจริงคือ: การคำนวณ RVOL แบบเต็มวันสำหรับหุ้นและ ETF ทุกตัวที่จดทะเบียนใน US ซึ่งมีปริมาณการซื้อขายเฉลี่ยรายวัน 20 วัน สูงกว่า 5 ล้านหุ้น (และต้องมีข้อมูลย้อนหลังครบ 20 เซสชัน) โดยใช้การวัดค่าแบบ Percentile เปรียบเทียบกันทั้งกลุ่มสำหรับเซสชันล่าสุดที่เสร็จสมบูรณ์ในข้อมูลของเรา ข้อควรระวังเกี่ยวกับเกณฑ์นี้คือ ระบบนับจากจำนวนหุ้น ไม่ใช่จำนวนเงิน ดังนั้นกลุ่มที่มีปริมาณการซื้อขายสูงนี้จึงครอบคลุมตั้งแต่หุ้น Mega-cap และ ETF ไปจนถึงหุ้น Small-cap ที่ราคาถูกและมีการหมุนเวียนสูง ซึ่งปริมาณหุ้นที่สูงไม่ได้หมายถึงสภาพคล่องในการซื้อขายที่ง่ายเสมอไป

คำสั่งดึงข้อมูลPercentiles ของ RVOL ทั้งวันของหุ้นและ ETF สหรัฐฯ ที่มีปริมาณการซื้อขายสูง (20-day ADV > 5M shares), session ล่าสุดที่เสร็จสมบูรณ์
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 วันของตนเอง โดย 9 ใน 10 ตัวมีค่าต่ำกว่า 1.37 และมีเพียง 1 ใน 100 ตัวเท่านั้นที่สูงกว่า 4.71 เมื่อนำข้อมูลเซสชันของ MU จากส่วนก่อนหน้ามาเปรียบเทียบกับตารางนี้ จะพบว่าตัวเลขดังกล่าวไม่ได้ดูน้อยเลย เพราะแม้แต่หุ้นที่มีการซื้อขายคึกคักส่วนใหญ่ก็มักจะมีปริมาณการซื้อขายใกล้เคียงกับค่าเฉลี่ยของตนเอง การมีค่าเป็นหลายเท่าของค่าเฉลี่ยจึงเป็นเรื่องที่เกิดขึ้นได้ยาก

ส่วนปลายด้านล่าง (Bottom tail) ก็มีความสำคัญเช่นกัน: โดยค่า Percentile ที่ 10 อยู่ที่ 0.11 ค่าที่ต่ำระดับนี้มักบ่งบอกถึงหุ้นที่ค่าเฉลี่ย 20 วันยังมีผลกระทบจากเซสชันที่มีปริมาณการซื้อขายมหาศาลเพียงเซสชันเดียว เนื่องจากหลังจากเกิดการพุ่งขึ้นของปริมาณการซื้อขาย ตัวหารที่สูงขึ้นจะทำให้ค่า RVOL ต่ำลงต่อเนื่องไปอีกหลายสัปดาห์ ซึ่งหมายความว่าช่วงเวลาการคำนวณมีผลกระทบทั้งในทิศทางขาขึ้นและขาลง

ข้อควรระวัง: ข้อมูลนี้เป็นการตัดตอนข้อมูล ณ เซสชันเดียวเท่านั้น ค่า Percentile สามารถเปลี่ยนแปลงได้ในแต่ละวัน และเหตุการณ์สำคัญในตลาด (เช่น การปรับสมดุลดัชนี หรือวันหมดอายุของออปชัน) อาจส่งผลให้ค่าทั้งเส้นขยับสูงขึ้นได้

หุ้นตัวใดมีปริมาณการซื้อขายผิดปกติ? อันดับ RVOL

ใช้กลุ่มหุ้นชุดเดียวกัน โดยจัดลำดับ (เวอร์ชันรายสัปดาห์อยู่ที่ หุ้นที่มีปริมาณการซื้อขายผิดปกติในสัปดาห์นี้): นี่คือรายชื่อหุ้นสิบอันดับแรกที่มีค่า RVOL ตลอดทั้งวันสูงสุดในเซสชัน 2026-07-21 จากกลุ่มหุ้นที่มีปริมาณการซื้อขายเฉลี่ยต่อวันมากกว่า 5 ล้านหุ้น ซึ่งเป็นกลุ่มที่เครื่องมือคัดกรองจะระบุว่ามีปริมาณการซื้อขายผิดปกติ การคัดกรองนี้กำหนดให้ใช้ข้อมูลย้อนหลังเต็ม 20 เซสชัน เนื่องจากหุ้นที่เพิ่งจดทะเบียนใหม่จะไม่มีค่าเฉลี่ย 20 วันที่นำมาใช้งานได้จริง และอาจทำให้ข้อมูลในตารางคลาดเคลื่อน

คำสั่งดึงข้อมูลTop 10 ตาม RVOL ทั้งวัน — session ล่าสุดที่เสร็จสมบูรณ์ (20-day ADV > 5M shares, ต้องใช้ข้อมูลย้อนหลังทั้งหมด)
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 หุ้นทุกตัวในรายการมีปริมาณการซื้อขายสูงกว่าค่าเฉลี่ยของตนเอง ตารางลักษณะนี้มักไม่ปรากฏหุ้นขนาดใหญ่ (mega-caps) เนื่องจากต้องใช้จำนวนหุ้นมหาศาลเพื่อทำให้ค่าเฉลี่ยที่สูงอยู่แล้วเพิ่มขึ้นเป็นเท่าตัว ในขณะที่หุ้นขนาดเล็กสามารถเพิ่มปริมาณการซื้อขายได้หลายเท่าตัวภายในเซสชันเดียว

หมายเหตุข้อมูล: การเลือกเซสชันและการยกเว้น

ตารางจัดอันดับทั้งสองใช้กลุ่มหุ้นและกฎการเลือกเซสชันเดียวกัน เซสชันที่นำมาพิจารณาจะถือว่าเสร็จสมบูรณ์ก็ต่อเมื่อปริมาณการซื้อขายของ SPY ในวันนั้นมีค่าอย่างน้อย 60% ของค่าเฉลี่ยปริมาณการซื้อขาย 20 วันก่อนหน้าของ SPY เอง เนื่องจากข้อมูลของวันล่าสุดจะมีความล่าช้า การตรวจสอบนี้จึงช่วยป้องกันไม่ให้ข้อมูลของวันที่ยังโหลดไม่เสร็จถูกนำมาคำนวณเป็นเซสชันที่เสร็จสมบูรณ์ นอกจากนี้ ตารางทั้งสองยังยกเว้นหุ้นหนึ่งตัวที่ตลาดหลักทรัพย์เพิ่งเปลี่ยนชื่อจดทะเบียนใหม่ เนื่องจากข้อมูลจากผู้ให้บริการมีประวัติของสองบริษัทที่แตกต่างกันภายใต้ ticker เดียวกัน ทำให้ค่าเฉลี่ย 20 วันไม่สามารถใช้เป็นเกณฑ์อ้างอิงที่เหมาะสมได้ รายชื่อการยกเว้นใน SQL จะถูกปรับปรุงให้สอดคล้องกับการตรวจสอบอัตลักษณ์ของสัญลักษณ์หุ้นทุกครั้งที่มีการรีเฟรช หากมีการตรวจพบสัญลักษณ์ที่ถูกนำกลับมาใช้ใหม่จะถูกเพิ่มเข้าไปในรายการยกเว้นในลักษณะเดียวกัน

คำถามที่พบบ่อย

ค่า RVOL ระดับใดที่ถือว่าดี?

ไม่มีเกณฑ์มาตรฐานที่กำหนดไว้แน่ชัด จากการวัดผลหุ้นที่มีปริมาณการซื้อขายสูงในตลาดสหรัฐฯ ในช่วงรอบการซื้อขายล่าสุดที่มีข้อมูลสมบูรณ์ ค่ามัธยฐานอยู่ที่ 0.73 เท่าของค่าเฉลี่ย 20 วัน โดยค่าในเปอร์เซ็นไทล์ที่ 90 อยู่ที่ 1.37 และเปอร์เซ็นไทล์ที่ 99 อยู่ที่ 4.71

ค่า RVOL เท่ากับ 2 หมายถึงอะไร?

หุ้นมีการซื้อขายเป็นสองเท่าของปริมาณการซื้อขายเฉลี่ยในช่วงเวลาที่วัด ซึ่งโดยปกติคือ 20 sessions ล่าสุด ช่วงเวลาที่วัดมีความสำคัญ: ค่า 2 เมื่อเทียบกับค่าเฉลี่ยในช่วงเวลาเดียวกันของวัน ถือเป็นสัญญาณที่แข็งแกร่งในช่วงกลางวัน ส่วนค่า 2 เมื่อถึงช่วงปิดตลาด หมายถึงวันที่มีปริมาณการซื้อขายเป็นสองเท่าจากระดับปกติ

วิธีการคำนวณ Relative Volume ระหว่างวันทำอย่างไร?

ให้นำปริมาณการซื้อขายสะสมของวันนี้ หารด้วยปริมาณการซื้อขายสะสมเฉลี่ย ณ เวลาเดียวกันในช่วงระยะเวลาที่กำหนด การนำยอดรวมช่วงสายของวันไปหารด้วยค่าเฉลี่ยทั้งวันจะทำให้ค่าที่ได้ต่ำกว่าความเป็นจริงอย่างมาก โดยเมื่อถึงเวลา 10:00 a.m. โดยปกติ SPY จะมีปริมาณการซื้อขายสะสมเพียง 12.4% ของปริมาณการซื้อขายทั้งหมดของวัน

Relative Volume รวมการซื้อขายช่วง Pre-market และ After-hours หรือไม่?

มาตรฐานของแต่ละแพลตฟอร์มมีความแตกต่างกัน หน้าเว็บนี้จะนับทุกแท่งราคาในแต่ละนาทีตามปฏิทินเวลา Eastern Time ซึ่งรวมช่วงเวลาขยาย (Extended hours) แล้ว สำหรับ SPY สัดส่วนในช่วง Pre-market นั้นมีขนาดเล็กมาก โดยมีค่ามัธยฐานอยู่ที่ 3.5 พันหุ้นต่อนาทีในช่วงเวลา 9:00 เทียบกับ 136 พันหุ้นในช่วงหลังเปิดตลาดทันที

Relative Volume ที่สูงบ่งบอกถึงแนวโน้มขาขึ้นหรือขาลง?

ไม่ใช่ทั้งสองอย่าง RVOL เป็นการวัดระดับการมีส่วนร่วมของผู้เล่นในตลาด ไม่ใช่ทิศทาง ปริมาณการซื้อขายที่หนาแน่นสามารถเกิดขึ้นได้ทั้งในวันที่หุ้นขึ้นแรงที่สุดและวันที่หุ้นลงหนักที่สุด โดยในอดีตช่วงที่มี High-RVOL มักเกิดขึ้นพร้อมกับการประกาศผลประกอบการ, การเปลี่ยนแปลงดัชนี และข่าวพาดหัวสำคัญ ตัวเลขนี้บอกเพียงว่ามีผู้เล่นเข้ามาในตลาดจำนวนมาก แต่ไม่ได้บอกว่าทิศทางจะไปทางไหน


ทุกแผงข้อมูลด้านบนใช้คำสั่ง SQL ชุดเดียวกับที่ใช้สร้างข้อมูลขึ้นมา คุณสามารถเปิดขึ้นมา เปลี่ยนเป็น ticker ที่คุณต้องการ และวัดค่า RVOL สำหรับหุ้นที่คุณซื้อขายจริงบนเทอร์มินัลของ Strasmore ได้ทันที