Strasmore Research
สรุปภาวะตลาด Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-07-24 · data as of July 24, 2026 · refreshed weekly

หุ้นที่มีค่า IV Rank สูงที่สุดในขณะนี้

รายชื่อหุ้นและ ETF ในสหรัฐฯ ที่มีค่า IV rank สูงสุดเมื่อเทียบกับช่วง 52 สัปดาห์ พร้อมระบุค่า IV percentile และวิธีการคำนวณประกอบการพิจารณา

IV rank คือค่าที่บอกว่าความผันผวนแฝง (implied volatility) ของหุ้นตัวนั้น อยู่ในระดับใดเมื่อเทียบกับช่วง 52 สัปดาห์ที่ผ่านมา โดยมีค่าตั้งแต่ 0 (ระดับต่ำสุดของช่วง) ไปจนถึง 100 (ระดับสูงสุดของช่วง) หากค่าเข้าใกล้ระดับสูงสุด แสดงว่าตลาดออปชันกำลังคาดการณ์การเคลื่อนไหวของราคาในอนาคตสูงกว่าช่วงเวลาใดๆ ในรอบหนึ่งปีที่ผ่านมา หากค่าเข้าใกล้ระดับต่ำสุด แสดงว่าการคาดการณ์การเคลื่อนไหวของราคาอยู่ในระดับต่ำที่สุด ตารางด้านล่างนี้แสดงรายชื่อหุ้นและ ETF ในสหรัฐฯ ที่มีค่า IV rank สูงสุดจากการซื้อขายออปชันล่าสุด ณ วันที่ 2026-07-22 พร้อมระบุค่า IV percentile ควบคู่กัน เนื่องจากตัวเลขทั้งสองใช้ตอบคำถามเดียวกันด้วยวิธีการคำนวณที่ต่างกัน

หุ้นที่มี IV rank สูงที่สุดในขณะนี้

คำสั่งดึงข้อมูลIV rank สูงสุดของหุ้นสหรัฐฯ ที่คัดกรองแล้ว จากตลาดออปชันล่าสุด
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_session AS (
    SELECT underlying_symbol AS u,
           date AS d,
           quantileExact(0.5)(implied_volatility) AS iv,
           sum(volume) AS vol
    FROM global_markets.options_greeks
    WHERE date >= (SELECT max(date) FROM global_markets.options_greeks) - 380
      AND iv_converged AND implied_volatility BETWEEN 0.02 AND 5
      AND abs(strike_price / underlying_close - 1) <= 0.05
      AND expiration_date BETWEEN date + 20 AND date + 60
      AND underlying_symbol NOT IN ('SPCX','KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT','AMDL','NUAI','VXX','VIXY')
    GROUP BY u, d
    HAVING count() >= 10
),
ranked AS (
    SELECT u, d, iv, vol,
           row_number() OVER w AS rn,
           first_value(iv) OVER w AS iv_latest,
           first_value(d) OVER w AS d_latest
    FROM per_session
    WINDOW w AS (PARTITION BY u ORDER BY d DESC)
),
agg AS (
    SELECT u,
           any(iv_latest) AS iv_cur,
           any(d_latest) AS last_d,
           count() AS sessions,
           min(iv) AS iv_lo,
           max(iv) AS iv_hi,
           countIf(iv < iv_latest) AS below_now,
           sumIf(vol, rn <= 20) AS vol_20d
    FROM ranked
    WHERE rn <= 252
    GROUP BY u
)
SELECT u AS ticker,
       round(100 * iv_cur, 1) AS iv_now_pct,
       round(100 * (iv_cur - iv_lo) / (iv_hi - iv_lo), 1) AS iv_rank,
       round(100 * below_now / sessions, 1) AS iv_percentile,
       round(100 * iv_lo, 1) AS iv_52w_low_pct,
       round(100 * iv_hi, 1) AS iv_52w_high_pct,
       toString(last_d) AS session_date
FROM agg
WHERE sessions >= 200
  AND vol_20d >= 20000
  AND iv_hi > iv_lo
  AND last_d = (SELECT max(date) FROM global_markets.options_greeks)
ORDER BY iv_rank DESC, vol_20d DESC, ticker
LIMIT 15

พิจารณาแถวบนสุด MO ปิดตลาดด้วยค่า at-the-money implied volatility ที่ 31.7% เมื่อเทียบกับช่วงราคาในรอบ 52 สัปดาห์ที่อยู่ระหว่าง 12.9% ถึง 31.7% ส่งผลให้มี IV rank อยู่ที่ 100 และมี IV percentile อยู่ที่ 99.6

ค่า rank ที่อยู่ระดับสูงสุดของสเกลมีความหมายเพียงอย่างเดียวคือ ค่า implied volatility ของเซสชันล่าสุดนั้นสูงที่สุดเมื่อเทียบกับช่วงเวลาที่วัดผล ตัวเลขนี้ไม่ได้ระบุว่าหุ้นมีความผันผวนในเชิงสัมบูรณ์ แต่เป็นการเปรียบเทียบค่าของหุ้นตัวนั้นกับตัวเอง

ความแตกต่างนี้มีความสำคัญอย่างยิ่ง ในกลุ่มหุ้นที่มี rank อยู่ในทศนิยมบนสุด (top rank decile) ของหุ้นทั้งหมดที่คัดกรองมา ค่า implied volatility ปัจจุบันอยู่ระหว่าง 27.3% ถึง 174.2% โดยมีค่ามัธยฐานอยู่ที่ 79.4% หุ้นที่มีความเคลื่อนไหวต่ำซึ่งอยู่ในระดับสูงสุดของช่วงความผันผวนที่ต่ำของตนเอง จะมีค่าเท่ากับหุ้นที่มีความเคลื่อนผันผวนสูงซึ่งอยู่ในระดับสูงสุดของช่วงความผันผวนที่สูงของตนเอง หากต้องการดูระดับค่าความผันผวนแบบสัมบูรณ์แทนที่จะเป็นแบบสัมพัทธ์ ให้ดูที่ กระดานหุ้นที่มี implied volatility สูงที่สุด ซึ่งจะจัดลำดับหุ้นตามค่า IV ดิบ

IV rank เทียบกับ IV percentile

ตัวเลขทั้งสองใช้ข้อมูลประวัติความผันผวนแฝง (implied volatility) ในรอบ 52 สัปดาห์เดียวกัน แต่มีวิธีการคำนวณที่ต่างกัน

  • IV rank คือ (IV ปัจจุบัน ลบด้วย ค่าต่ำสุดในรอบ 52 สัปดาห์) หารด้วย (ค่าสูงสุดในรอบ 52 สัปดาห์ ลบด้วย ค่าต่ำสุด) โดยแสดงผลเป็นเปอร์เซ็นต์ ค่านี้พิจารณาเพียงค่าปัจจุบันและค่าสูงสุดกับค่าต่ำสุดในช่วงเวลาดังกล่าวเท่านั้น
  • IV percentile คือ สัดส่วนของจำนวนวันในรอบ 252 วันทำการที่ค่า IV ปิดต่ำกว่าค่าปัจจุบัน โดยพิจารณาจากทุกวันทำการในช่วงเวลาดังกล่าว

หากมีวันที่มีความผันผวนรุนแรงเพียงวันเดียวในปีนั้น จะทำให้เกิดค่าสูงสุดที่ IV rank จะนำมาคำนวณเสมอ ในขณะที่ IV percentile จะมองว่าวันนั้นเป็นเพียงหนึ่งใน 252 วันเท่านั้น ตารางด้านล่างแสดงผลต่างในทิศทางเดียว คือ IV percentile ลบด้วย IV rank โดยเรียงจากค่ามากที่สุดไปน้อยที่สุด ส่วนชื่อที่มีผลต่างในทิศทางตรงกันข้าม (rank สูงกว่า percentile) จะถูกแยกไว้ในอีกการคัดกรองหนึ่งและไม่ปรากฏในที่นี้

คำสั่งดึงข้อมูลจุดที่ IV percentile สูงกว่า IV rank มากที่สุด จากตลาดล่าสุด
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_session AS (
    SELECT underlying_symbol AS u,
           date AS d,
           quantileExact(0.5)(implied_volatility) AS iv,
           sum(volume) AS vol
    FROM global_markets.options_greeks
    WHERE date >= (SELECT max(date) FROM global_markets.options_greeks) - 380
      AND iv_converged AND implied_volatility BETWEEN 0.02 AND 5
      AND abs(strike_price / underlying_close - 1) <= 0.05
      AND expiration_date BETWEEN date + 20 AND date + 60
      AND underlying_symbol NOT IN ('SPCX','KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT','AMDL','NUAI','VXX','VIXY')
    GROUP BY u, d
    HAVING count() >= 10
),
ranked AS (
    SELECT u, d, iv, vol,
           row_number() OVER w AS rn,
           first_value(iv) OVER w AS iv_latest,
           first_value(d) OVER w AS d_latest
    FROM per_session
    WINDOW w AS (PARTITION BY u ORDER BY d DESC)
),
agg AS (
    SELECT u,
           any(iv_latest) AS iv_cur,
           any(d_latest) AS last_d,
           count() AS sessions,
           min(iv) AS iv_lo,
           max(iv) AS iv_hi,
           countIf(iv < iv_latest) AS below_now,
           sumIf(vol, rn <= 20) AS vol_20d
    FROM ranked
    WHERE rn <= 252
    GROUP BY u
),
board AS (
    SELECT u,
           round(100 * iv_cur, 1) AS iv_now_pct,
           round(100 * (iv_cur - iv_lo) / (iv_hi - iv_lo), 1) AS iv_rank,
           round(100 * below_now / sessions, 1) AS iv_percentile,
           round(100 * iv_hi, 1) AS iv_52w_high_pct
    FROM agg
    WHERE sessions >= 200
      AND vol_20d >= 20000
      AND iv_hi > iv_lo
      AND last_d = (SELECT max(date) FROM global_markets.options_greeks)
)
SELECT u AS ticker,
       iv_now_pct,
       iv_rank,
       iv_percentile,
       round(iv_percentile - iv_rank, 1) AS percentile_minus_rank,
       iv_52w_high_pct
FROM board
ORDER BY percentile_minus_rank DESC, iv_now_pct DESC, ticker
LIMIT 12

ค่าส่วนต่างที่กว้างที่สุดในทิศทางนี้คือ AMZN: โดยมี IV percentile อยู่ที่ 92.1 เทียบกับ IV rank ที่ 26.7 ซึ่งมีส่วนต่างอยู่ที่ 65.4 จุด จากข้อมูลชุดเดียวกันและวันเดียวกัน ค่า IV ปัจจุบันของหุ้นตัวนี้คือ 43% และค่าสูงสุดในรอบ 52 สัปดาห์คือ 99.4% เนื่องจาก percentile นับจำนวนวันทำการ และวันส่วนใหญ่ในช่วงเวลาดังกล่าวของหุ้นตัวนี้มีความผันผวนน้อยกว่าวันล่าสุด ส่วน rank วัดระยะห่างจากค่าสูงสุดและต่ำสุด ซึ่งค่าสูงสุดในรอบ 52 สัปดาห์ยังคงสูงกว่าค่าล่าสุด ข้อมูลชุดเดียวกันแต่ให้คำตอบที่ต่างกัน

ไม่มีตัวเลขใดที่เป็นคำตอบที่ถูกต้องเพียงหนึ่งเดียว Rank บอกให้ทราบว่าค่าล่าสุดอยู่ใกล้กับค่าสูงสุดหรือต่ำสุดเพียงใด ส่วน percentile บอกให้ทราบว่าค่าปัจจุบันมีความผิดปกติเพียงใดเมื่อเทียบกับวันทำการโดยทั่วไป

ลักษณะของ IV rank ที่สูงอย่างแท้จริง

คำสั่งดึงข้อมูลความผันผวนแฝงรายสัปดาห์ของหุ้นอันดับหนึ่ง พร้อมระดับสูงสุดและต่ำสุดในรอบ 52 สัปดาห์
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_session AS (
    SELECT underlying_symbol AS u,
           date AS d,
           quantileExact(0.5)(implied_volatility) AS iv,
           sum(volume) AS vol
    FROM global_markets.options_greeks
    WHERE date >= (SELECT max(date) FROM global_markets.options_greeks) - 380
      AND iv_converged AND implied_volatility BETWEEN 0.02 AND 5
      AND abs(strike_price / underlying_close - 1) <= 0.05
      AND expiration_date BETWEEN date + 20 AND date + 60
      AND underlying_symbol NOT IN ('SPCX','KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT','AMDL','NUAI','VXX','VIXY')
    GROUP BY u, d
    HAVING count() >= 10
),
ranked AS (
    SELECT u, d, iv, vol,
           row_number() OVER w AS rn,
           first_value(iv) OVER w AS iv_latest,
           first_value(d) OVER w AS d_latest
    FROM per_session
    WINDOW w AS (PARTITION BY u ORDER BY d DESC)
),
agg AS (
    SELECT u,
           any(iv_latest) AS iv_cur,
           any(d_latest) AS last_d,
           count() AS sessions,
           min(iv) AS iv_lo,
           max(iv) AS iv_hi,
           sumIf(vol, rn <= 20) AS vol_20d
    FROM ranked
    WHERE rn <= 252
    GROUP BY u
),
leader AS (
    SELECT u, iv_lo, iv_hi
    FROM agg
    WHERE sessions >= 200
      AND vol_20d >= 20000
      AND iv_hi > iv_lo
      AND last_d = (SELECT max(date) FROM global_markets.options_greeks)
    ORDER BY round(100 * (iv_cur - iv_lo) / (iv_hi - iv_lo), 1) DESC, vol_20d DESC, u
    LIMIT 1
)
SELECT toString(toMonday(r.d)) AS week,
       round(100 * quantileExact(0.5)(r.iv), 1) AS iv_pct,
       round(100 * any(l.iv_hi), 1) AS iv_52w_high_pct,
       round(100 * any(l.iv_lo), 1) AS iv_52w_low_pct
FROM ranked AS r
INNER JOIN leader AS l ON r.u = l.u
WHERE r.rn <= 252
GROUP BY week
HAVING uniqExact(r.d) >= 3
    OR max(r.d) = (SELECT max(date) FROM global_markets.options_greeks)
ORDER BY week

นี่คือเส้นทางรายสัปดาห์ของ MO ซึ่งเป็นหุ้นอันดับต้นๆ ของกระดาน โดยมีการลากเส้นแนวนอนเพื่อใช้เป็นจุดอ้างอิงของราคาสูงสุดและต่ำสุดในรอบ 52 สัปดาห์ แต่ละจุดที่แสดงคือค่ามัธยฐานของข้อมูลรายวันในสัปดาห์นั้น ดังนั้นโดยโครงสร้างแล้ว เส้นดังกล่าวจะอยู่ภายในกรอบราคาสูงสุด-ต่ำสุดรายวัน แทนที่จะแตะเส้นอ้างอิงใดเส้นหนึ่ง การวัดค่านี้เริ่มตั้งแต่ช่วง 22.3% และสิ้นสุดสัปดาห์ที่ระดับล่าสุดใน 30.9% โดยมีเพดานอยู่ที่ 31.7% และพื้นอยู่ที่ 12.9% ค่า rank ของเซสชันเดียวคือค่าที่อ่านได้รายวันของ 31.7% จากหุ้นด้านบน IV rank ที่อยู่ระดับสูงสุดของสเกลก็คือภาพลักษณะนี้เท่านั้น กล่าวคือ ค่าล่าสุดอยู่ที่ขอบบนของกรอบราคาของตนเอง ไม่ว่ากรอบราคานั้นจะอยู่ที่ระดับใดก็ตาม

รูปแบบของกราฟมีความสำคัญพอๆ กับค่าที่วัดได้ หุ้นที่มีราคาปรับตัวขึ้นต่อเนื่องหลายเดือนกับหุ้นที่มีราคาพุ่งขึ้นไปยังระดับเดียวกันภายในสัปดาห์เดียว จะให้ค่า rank ที่เท่ากัน สำหรับพฤติกรรมที่มักเกิดขึ้นหลังจากมีเหตุการณ์ตามกำหนดการ สามารถดูได้ที่ การวัดค่า IV crush จากผลประกอบการจริง

สถานะภาพรวมของตลาดต่อ IV rank

คำสั่งดึงข้อมูลการกระจายตัวของกลุ่มหุ้นที่คัดกรองตาม IV rank จากตลาดล่าสุด
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_session AS (
    SELECT underlying_symbol AS u,
           date AS d,
           quantileExact(0.5)(implied_volatility) AS iv,
           sum(volume) AS vol
    FROM global_markets.options_greeks
    WHERE date >= (SELECT max(date) FROM global_markets.options_greeks) - 380
      AND iv_converged AND implied_volatility BETWEEN 0.02 AND 5
      AND abs(strike_price / underlying_close - 1) <= 0.05
      AND expiration_date BETWEEN date + 20 AND date + 60
      AND underlying_symbol NOT IN ('SPCX','KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT','AMDL','NUAI','VXX','VIXY')
    GROUP BY u, d
    HAVING count() >= 10
),
ranked AS (
    SELECT u, d, iv, vol,
           row_number() OVER w AS rn,
           first_value(iv) OVER w AS iv_latest,
           first_value(d) OVER w AS d_latest
    FROM per_session
    WINDOW w AS (PARTITION BY u ORDER BY d DESC)
),
agg AS (
    SELECT u,
           any(iv_latest) AS iv_cur,
           any(d_latest) AS last_d,
           count() AS sessions,
           min(iv) AS iv_lo,
           max(iv) AS iv_hi,
           sumIf(vol, rn <= 20) AS vol_20d
    FROM ranked
    WHERE rn <= 252
    GROUP BY u
),
screened AS (
    SELECT least(intDiv(toUInt16(floor(100 * (iv_cur - iv_lo) / (iv_hi - iv_lo))), 10), 9) AS b,
           100 * iv_cur AS iv_now_pct
    FROM agg
    WHERE sessions >= 200
      AND vol_20d >= 20000
      AND iv_hi > iv_lo
      AND last_d = (SELECT max(date) FROM global_markets.options_greeks)
),
buckets AS (
    SELECT b,
           count() AS names,
           round(quantileExact(0.5)(iv_now_pct), 1) AS median_iv_pct,
           round(min(iv_now_pct), 1) AS lowest_iv_pct,
           round(max(iv_now_pct), 1) AS highest_iv_pct
    FROM screened
    GROUP BY b
)
SELECT concat(toString(b * 10), '-', toString(b * 10 + 10)) AS iv_rank_bucket,
       names,
       sum(names) OVER (ORDER BY b DESC) AS names_cumulative,
       median_iv_pct,
       round(median_iv_pct - first_value(median_iv_pct) OVER (ORDER BY b DESC), 1) AS median_gap_to_top_pct,
       lowest_iv_pct,
       highest_iv_pct
FROM buckets
ORDER BY b DESC

228 ชื่อหลักทรัพย์ผ่านเกณฑ์สภาพคล่องและประวัติศาสตร์ในเซสชันนี้ เมื่อแบ่งกลุ่มตามทศนิยมของ rank พบว่า 30 ของหลักทรัพย์อยู่ในช่วง 90-100 และ 6 อยู่ในช่วง 0-10 ซึ่งเป็นอีกด้านหนึ่ง ค่ากลางของ implied volatility ปัจจุบันมีแนวโน้มลดลงตาม rank ที่ลดลง โดยเริ่มจาก 79.4% ในช่วงบนสุด ไปจนถึง 37% ในช่วง 0-10 ที่อยู่ล่างสุด และคอลัมน์ส่วนต่างใช้สำหรับวัดค่าในแต่ละช่วงเทียบกับค่ากลางของช่วงบนสุด โปรดพิจารณาความชันตลอดทั้งตารางแทนการดูเพียงขั้นตอนเดียว เนื่องจากช่วงที่มีหลักทรัพย์เพียงไม่กี่ชื่ออาจมีค่ากลางที่คลาดเคลื่อน และช่วงที่อยู่ติดกันสองช่วงอาจมีค่าสลับกันได้

การกระจายตัวคือบริบทที่จำเป็นสำหรับการอ่านค่าเพียงค่าเดียว ค่า rank ที่ดูสูงอาจไม่มีความหมายมากนักหากไม่ทราบจำนวนหลักทรัพย์อื่นที่มีค่าใกล้เคียงกันในเวลาเดียวกัน

IV rank สำหรับหุ้นยอดนิยม

คำสั่งดึงข้อมูลIV rank และ IV percentile ของ 12 หุ้นยอดนิยม จากตลาดล่าสุด
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH per_session AS (
    SELECT underlying_symbol AS u,
           date AS d,
           quantileExact(0.5)(implied_volatility) AS iv
    FROM global_markets.options_greeks
    WHERE date >= (SELECT max(date) FROM global_markets.options_greeks) - 380
      AND underlying_symbol IN ('SPY','QQQ','AAPL','MSFT','AMZN','META','NVDA','AMD','TSLA','COIN','MSTR','PLTR')
      AND iv_converged AND implied_volatility BETWEEN 0.02 AND 5
      AND abs(strike_price / underlying_close - 1) <= 0.05
      AND expiration_date BETWEEN date + 20 AND date + 60
    GROUP BY u, d
    HAVING count() >= 10
),
ranked AS (
    SELECT u, d, iv,
           row_number() OVER w AS rn,
           first_value(iv) OVER w AS iv_latest,
           first_value(d) OVER w AS d_latest
    FROM per_session
    WINDOW w AS (PARTITION BY u ORDER BY d DESC)
),
agg AS (
    SELECT u,
           any(iv_latest) AS iv_cur,
           any(d_latest) AS last_d,
           count() AS sessions,
           min(iv) AS iv_lo,
           max(iv) AS iv_hi,
           countIf(iv < iv_latest) AS below_now
    FROM ranked
    WHERE rn <= 252
    GROUP BY u
)
SELECT u AS ticker,
       round(100 * iv_cur, 1) AS iv_now_pct,
       round(100 * (iv_cur - iv_lo) / (iv_hi - iv_lo), 1) AS iv_rank,
       round(100 * below_now / sessions, 1) AS iv_percentile,
       round(100 * iv_lo, 1) AS iv_52w_low_pct,
       round(100 * iv_hi, 1) AS iv_52w_high_pct,
       toString(last_d) AS session_date
FROM agg
WHERE sessions >= 200
  AND iv_hi > iv_lo
  AND last_d = (SELECT max(date) FROM global_markets.options_greeks)
ORDER BY iv_rank DESC, ticker

ค่าชี้วัดเดียวกันนี้ถูกนำมาใช้กับหุ้นสิบสองตัวที่ได้รับความนิยมสูง AMD มีค่า IV rank สูงที่สุดในกลุ่มที่ 83.7 โดยมีค่า implied volatility อยู่ที่ 85.8% ส่วน TSLA มีค่าต่ำที่สุดในรายการ โดยมี rank อยู่ที่ 0 และมี implied volatility อยู่ที่ 37% โปรดสังเกตความแตกต่างระหว่างคอลัมน์ rank และ percentile ในแถวเดียวกัน ซึ่งเป็นลักษณะเดียวกับการคำนวณแบบ range-versus-count ที่ใช้ใน divergence panel

หุ้นแต่ละตัวมีหน้าข้อมูล IV แยกเป็นของตนเอง: NVDA implied volatility, TSLA implied volatility, AAPL implied volatility, และ AMD implied volatility โดยแต่ละตัวจะมีข้อมูลประวัติย้อนหลังครบถ้วนและมีข้อมูล term structure สำหรับคำอธิบายแนวคิดเบื้องหลังคะแนนทุกค่าในหน้านี้ สามารถเริ่มต้นศึกษาได้ที่ what implied volatility is

วิธีการวัดผล

ข้อมูลตัวเลขทั้งหมดมาจากแหล่งข้อมูลเดียว คือไฟล์ daily options greeks ซึ่งประกอบด้วยข้อมูลหนึ่งแถวต่อหนึ่งสัญญาต่อหนึ่งเซสชัน ครอบคลุมออปชันของหุ้นและ ETF ที่จดทะเบียนในสหรัฐฯ

  • ค่า IV หนึ่งค่าต่อหนึ่งชื่อต่อหนึ่งเซสชัน คือค่ามัธยฐานของ implied volatility ของสัญญา near-the-money ของชื่อนั้นๆ โดยหมายถึง strike price ที่อยู่ในช่วง 5% ของราคาปิดของหุ้น และมีอายุคงเหลือ 20 ถึง 60 วันปฏิทิน การใช้ค่ามัธยฐานแทนค่าเฉลี่ย เพื่อป้องกันไม่ให้สัญญาที่ตั้งราคาผิดพลาดเพียงสัญญาเดียวส่งผลกระทบต่อค่าที่อ่านได้
  • เซสชันจะถูกนับก็ต่อเมื่อมีสัญญาอย่างน้อย 10 สัญญาที่ผ่านเกณฑ์ดังกล่าว หากเซสชันมีสภาพคล่องต่ำจะถูกคัดออกแทนการนำมาเผยแพร่
  • เฉพาะผลลัพธ์ที่คำนวณค่าได้สำเร็จ (converged solves) เท่านั้น ค่า implied volatility ถูกคำนวณจากราคาออปชัน และไฟล์จะระบุว่าการคำนวณนั้นสำเร็จหรือไม่ แถวที่คำนวณไม่สำเร็จจะถูกคัดออก เช่นเดียวกับค่าที่ต่ำกว่า 2% หรือสูงกว่า 500% ทั้งนี้ การคำนวณที่ไม่สำเร็จถือเป็นความล้มเหลวทางตัวเลข ไม่ใช่ราคาตลาด
  • ช่วงเวลาที่ใช้คือ 252 เซสชันล่าสุด ที่มีข้อมูลสำหรับชื่อนั้นๆ ภายในช่วงการดูย้อนหลัง 380 วันปฏิทิน ชื่อหุ้นต้องมีเซสชันที่วัดผลได้อย่างน้อย 200 เซสชัน จึงจะปรากฏบนหน้านี้
  • IV rank คำนวณจาก (ค่าปัจจุบัน ลบ ค่าต่ำสุดในช่วงเวลา) หารด้วย (ค่าสูงสุดในช่วงเวลา ลบ ค่าต่ำสุดในช่วงเวลา) แล้วคูณด้วย 100 IV percentile คือจำนวนเซสชันในช่วงเวลาที่มี implied volatility ต่ำกว่าเซสชันปัจจุบันอย่างชัดเจน หารด้วยจำนวนเซสชันทั้งหมด
  • เกณฑ์ขั้นต่ำด้านสภาพคล่อง (Liquidity floor) ชื่อหุ้นต้องมีการซื้อขายออปชันอย่างน้อย 20,000 สัญญา ตลอด 20 เซสชันล่าสุดที่วัดผลได้ เพื่อเข้าสู่กลุ่มที่ผ่านการคัดกรอง สำหรับแผงข้อมูลหุ้นยอดนิยม (household-name panel) จะใช้เกณฑ์ขั้นต่ำของเซสชัน เกณฑ์ขั้นต่ำของประวัติ และเกณฑ์เซสชันล่าสุดแบบเดียวกัน แต่ไม่ใช้เกณฑ์ปริมาณการซื้อขาย เนื่องจากหุ้นทั้งสิบสองตัวถูกระบุชื่อไว้โดยตรงแทนการใช้การคัดกรอง
  • กองทุนที่มีเลเวอเรจ (Leveraged), กองทุนที่มีทิศทางตรงกันข้าม (inverse) และกองทุน volatility-futures จะถูกคัดออก จากการคัดกรองโดยใช้รายการที่ระบุไว้ชัดเจน กองทุนที่สร้างขึ้นเพื่อให้เคลื่อนที่สามเท่าของดัชนีจะมีค่า implied volatility เป็นสามเท่าโดยโครงสร้าง ซึ่งจะทำให้ข้อมูลของหุ้นรายตัวที่แท้จริงถูกเบียดบัง ผลิตภัณฑ์ที่ถือ VIX futures แทนที่จะเป็นหุ้นจะอยู่ในรายการเดียวกัน เนื่องจากค่า implied volatility ของผลิตภัณฑ์เหล่านั้นอธิบายถึงเส้นโค้งของ futures ไม่ใช่บริษัท
  • แผงข้อมูล weekly path จะแสดงค่ามัธยฐาน ไม่ใช่ค่าของเซสชันใดเซสชันหนึ่ง แต่ละจุดคือค่ามัธยฐานของค่าที่อ่านได้รายวันในสัปดาห์นั้นสำหรับชื่อที่มีอันดับสูงสุด ดังนั้นเส้นที่พล็อตจึงอยู่ในช่วงระหว่างค่าสูงสุดและค่าต่ำสุดรายวันโดยโครงสร้าง สัปดาห์ที่มีเซสชันที่วัดผลได้น้อยกว่าสามเซสชันจะถูกคัดออก ยกเว้นกรณีเดียวคือ สัปดาห์ที่มีเซสชันล่าสุดจะถูกพล็อตเสมอ แม้ว่าจะมีเพียงวันเดียวก็ตาม
  • สิ่งที่ไฟล์นี้ไม่มี สัญญาที่มีวันหมดอายุภายในวันเดียวกัน (0DTE) และออปชันดัชนีแบบ cash-settled ไม่อยู่ในชุดข้อมูลนี้ ดังนั้นการพุ่งขึ้นของความผันผวนแบบ 0DTE จะไม่ส่งผลต่อตัวเลขเหล่านี้ SPY และ QQQ จะปรากฏในฐานะ ETF ปกติ นอกจากนี้ไม่มีฟิลด์ open interest ในคลังข้อมูลนี้ ดังนั้นเกณฑ์สภาพคล่องทั้งหมดข้างต้นจึงเป็นปริมาณสัญญาที่มีการซื้อขาย ไม่ใช่ open interest
  • การประทับวันที่คือเซสชันจริง ไฟล์ greeks จะสรุปข้อมูลล่าช้ากว่าข้อมูลหุ้น (equity tape) ไปไม่กี่เซสชัน ดังนั้นแต่ละกระดานจะใช้ข้อมูลตามวันที่ของเซสชันนั้น และทุกแถวในทุกกระดานมาจากเซสชันเดียวกันนั้น แผงข้อมูล weekly path เป็นข้อยกเว้นที่ตั้งใจไว้ โดยจะดึงประวัติย้อนหลังหนึ่งปีสำหรับชื่อที่มีอันดับสูงสุด ข้อมูลเหล่านี้ไม่ใช่ราคาเสนอขายแบบเรียลไทม์

FAQ

IV rank คืออะไร?

IV rank คือค่าที่ใช้ประเมินว่าความผันผวนแฝง (implied volatility) ในปัจจุบันของหุ้นตัวหนึ่ง อยู่ในระดับใดเมื่อเทียบกับช่วง 52 สัปดาห์ที่ผ่านมา โดยมีค่าตั้งแต่ 0 (ต่ำสุด) ถึง 100 (สูงสุด) สูตรคำนวณคือ นำค่า IV ปัจจุบันลบด้วยค่าต่ำสุดในรอบ 52 สัปดาห์ แล้วหารด้วยค่าสูงสุดในรอบ 52 สัปดาห์ลบด้วยค่าต่ำสุด การคำนวณนี้เป็นการเปรียบเทียบหุ้นตัวนั้นกับข้อมูลในอดีตของตนเองเท่านั้น ไม่ได้เปรียบเทียบกับหุ้นตัวอื่น ด้วยเหตุนี้ หุ้นสองตัวที่มีความผันผวนแตกต่างกันอย่างมากอาจมีค่า rank เท่ากันได้

IV rank ระดับใดที่เหมาะสมสำหรับการขาย options?

ไม่มีค่า rank ระดับใดที่รับประกันว่าการขายจะถูกต้อง และหน้านี้ไม่ได้ระบุค่าดังกล่าวไว้ ค่า rank สูงหมายถึงค่า premium ของ option อยู่ในระดับใกล้เคียงกับระดับสูงสุดที่หุ้นตัวนั้นเคยเรียกเก็บในช่วงหนึ่งปีที่ผ่านมา ส่วนค่า rank ต่ำหมายถึงระดับใกล้เคียงกับระดับต่ำสุด โดยทั่วไปผู้ขายมักชอบค่าที่สูง และผู้ซื้อชอบค่าที่ต่ำ อย่างไรก็ตาม ทั้งสองฝั่งต่างมีความเสี่ยงหากการเคลื่อนที่ของราคาหุ้นจริงแตกต่างจากราคาที่ได้ประเมินไว้

IV rank ต่างกับ IV percentile อย่างไร?

IV rank ใช้เพียงค่าความผันผวนแฝงของวันนี้และค่าสูงสุดกับต่ำสุดของช่วง 52 สัปดาห์ ส่วน IV percentile จะนับจำนวนวันจาก 252 วันล่าสุดที่มีค่าปิดต่ำกว่าค่าของวันนี้ หากมีวันใดวันหนึ่งที่มีความผันผวนสูงผิดปกติ จะทำให้ช่วงความกว้างของข้อมูลขยายออกและทำให้ค่า rank ลดลง ในขณะที่ค่า percentile แทบจะไม่เปลี่ยนแปลง ซึ่งอาจส่งผลให้ค่าทั้งสองมีความแตกต่างกันได้หลายสิบจุดในหุ้นตัวเดียวกัน ดังที่แสดงในตารางด้านบน

สามารถตรวจสอบ IV rank ได้ฟรีที่ไหน?

หน้านี้คือเครื่องมือตรวจสอบ IV rank แบบฟรี โดยระบบจะอัปเดตข้อมูลตามกำหนดเวลาโดยอ้างอิงจากข้อมูล options ทั้งหมดของสหรัฐฯ และแสดงคำสั่ง SQL ที่ใช้คำนวณในทุกช่องข้อมูล นอกจากนี้ยังมีหน้าข้อมูลเฉพาะสำหรับหุ้นแต่ละตัว และ หน้า volatility skew ที่แสดงข้อมูลความผันผวนแฝงที่แตกต่างกันในแต่ละ strike price สำหรับวันหมดอายุเดียว


ทุกตารางในหน้านี้มีการจัดเก็บคำสั่ง query ของตนเอง คุณสามารถเปิดดูเพื่อตรวจสอบที่มาของค่าที่วัดได้ตั้งแต่ต้นจนจบ หรือสามารถใช้การคัดกรอง IV rank แบบเดียวกันนี้กับช่วงเวลาหรือกลุ่มหุ้นใดก็ได้บน Strasmore terminal