คำนวณ Expected Move จาก Implied Volatility
เรียนรู้สูตร Expected Move จากราคาหุ้น Implied Volatility และจำนวนวัน พร้อมวิธีใช้ straddle shortcut และเปรียบเทียบกับการเคลื่อนไหวที่เกิดขึ้นจริง
Expected move คือช่วงราคาที่ตลาด options กำลังกำหนดไว้สำหรับหุ้นหนึ่งในช่วงจำนวนวันที่กำหนด โดยมี implied volatility เป็นตัวแปรที่ใช้คำนวณ ดังนี้ ราคาหุ้นคูณด้วย implied volatility คูณด้วยรากที่สองของจำนวนวันหารด้วย 365
หุ้นที่มีราคาหุ้น $100 และมี implied volatility 30% ในช่วง 30 วัน จะมี expected move ประมาณ $8.60 หรือ 8.6% เนื่องจาก 0.30 คูณด้วยรากที่สองของ 30 หารด้วย 365 ได้ค่า 0.086
ตัวเลขดังกล่าวเป็นช่วงราคาที่ระดับ one standard deviation ไม่ใช่การคาดการณ์ทิศทางราคา และไม่ใช่ระดับที่ราคาจะทะลุผ่านไม่ได้
วิธีคำนวณการเคลื่อนไหวที่คาดหมายจากความผันผวนโดยนัย
ความผันผวนโดยนัย คือส่วนเบี่ยงเบนมาตรฐานของผลตอบแทนแบบ annualized ที่ราคาของ option สะท้อนออกมา โดยจะแสดงเป็นตัวเลขรายปีเสมอ ดังนั้นค่า 30% จึงอธิบายกรอบการเคลื่อนไหวในช่วงหนึ่งปี และช่วงเวลาที่สั้นกว่านั้นต้องปรับสเกลจากตัวเลขดังกล่าว ความผันผวนจะปรับตามรากที่สองของเวลา จึงต้องนำจำนวนวันไว้ใต้เครื่องหมายรากที่สอง แทนการนำไปหารโดยตรง
การเคลื่อนไหวที่คาดหมาย = ราคา × IV × √(วัน ÷ 365)
มีหลักเกณฑ์สองแบบที่กำหนดว่าผลลัพธ์ของคุณจะตรงกับตัวเลขที่โบรกเกอร์แสดงหรือไม่ การใช้จำนวนวันตามปฏิทินหารด้วย 365 เป็นมาตรฐานสำหรับนักลงทุนรายย่อย ขณะที่ trading desk บางแห่งใช้จำนวนวันทำการหารด้วย 252 ซึ่งให้กรอบการเคลื่อนไหวที่กว้างกว่าเล็กน้อยเมื่อใช้ IV เดียวกัน ผลลัพธ์นี้เป็นค่าหนึ่งส่วนเบี่ยงเบนมาตรฐาน หรือกรอบที่ครอบคลุมผลลัพธ์ประมาณ 68% ภายใต้การแจกแจงปกติ การคูณค่าดังกล่าวด้วย two จะได้กรอบ two-standard-deviation ซึ่งครอบคลุมประมาณ 95%
คำถามว่า IV ที่คุณนำมาใช้มีค่าสูงหรือไม่ เป็นอีกประเด็นหนึ่งที่มีหน้าอธิบายแยกต่างหาก: IV 30% สูงหรือไม่ ซึ่งนำค่าที่สังเกตได้เพียงครั้งเดียวไปเปรียบเทียบกับการแจกแจงของตลาดเอง
เหตุใดช่วงการเคลื่อนไหวจึงเพิ่มขึ้นตามรากที่สองของจำนวนวัน
กำหนดให้หุ้นหนึ่งตัวและช่วงการซื้อขายหนึ่งช่วงคงที่ แล้วเปลี่ยนเฉพาะระยะเวลาที่พิจารณา รูปแบบของสูตรจะปรากฏขึ้นเอง สัญญาใกล้ราคาใช้สิทธิของ Apple ในช่วงกลางเดือนกรกฎาคม 2026 แบ่งตามระยะเวลาที่เหลือจนถึงวันหมดอายุ:
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT multiIf(days_to_expiry <= 7, '1 week',
days_to_expiry <= 14, '2 weeks',
days_to_expiry <= 45, '1 month',
days_to_expiry <= 120, '3 months',
days_to_expiry <= 240, '6 months',
'1 year') AS horizon,
round(avg(days_to_expiry), 0) AS avg_days,
round(100 * avg(toFloat64(implied_volatility)), 1) AS iv_pct,
round(100 * avg(toFloat64(implied_volatility)) * sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_pct,
round(avg(toFloat64(underlying_close)) * avg(toFloat64(implied_volatility))
* sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_usd,
round(avg(toFloat64(underlying_close)), 2) AS underlying_price,
formatDateTime(max(date), '%b %e, %Y') AS as_of
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = (SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date <= toDate('2026-07-15'))
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 1 AND 400
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY horizon
HAVING count() >= 3
ORDER BY avg_daysณ Jul 15, 2026 กลุ่ม 1 week มีจำนวนวันเฉลี่ยจนถึงวันหมดอายุ 5 วัน และมีความผันผวนโดยนัย 28% คิดเป็น expected move 3.17% หรือ $10.41 เมื่อเทียบกับราคาหุ้น $327.8 ส่วนกลุ่ม 1 year มีจำนวนวันเฉลี่ย 292 วัน และมี IV 28.4% คิดเป็น expected move 25.44% หรือ $83.39
ประเด็นสำคัญอยู่ที่อัตราส่วน ไม่ใช่ระดับตัวเลข หากจำนวนวันเพิ่มขึ้นเป็นสี่เท่า expected move จะเพิ่มขึ้นเป็นสองเท่า ไม่ว่าหุ้นตัวใดหรือมี IV เท่าใด เพราะรากที่สองของ 4 เท่ากับ 2 การนำช่วงการเคลื่อนไหวของหนึ่งเดือนมาคำนวณเป็นรายปีด้วยการคูณ 12 จะทำให้ค่าตลอดปีสูงเกินจริงประมาณ 3.5 เท่า ตัวคูณที่ถูกต้องคือรากที่สองของ 12 ซึ่งเท่ากับ 3.46
วิธีลัดด้วย straddle และเหตุผลที่ตัวเลขต่ำกว่าประมาณ 20%
มีวิธีที่เร็วกว่าในการดูการเคลื่อนไหวที่ตลาดคาดไว้ โดยไม่ต้องคำนวณ ให้ดู straddle ที่ระดับราคาใช้สิทธิใกล้เคียงราคาหุ้นปัจจุบัน ซึ่งประกอบด้วย Call และ Put ที่มีราคาใช้สิทธิเดียวกันและวันหมดอายุเดียวกัน แล้วนำค่า Premium ของทั้งสองสัญญามารวมกัน โบรกเกอร์และ trading desk หลายแห่งใช้ผลรวมนี้เป็นการเคลื่อนไหวที่คาดไว้
วิธีทั้งสองไม่ได้ให้ตัวเลขเดียวกัน และส่วนต่างนี้ไม่ได้หมายความว่าวิธีใดวิธีหนึ่งผิด straddle ให้ผลตอบแทนตามระยะห่างแบบค่าสัมบูรณ์ระหว่างราคาหุ้นเมื่อสิ้นสุดสัญญากับราคาใช้สิทธิ ดังนั้นราคาของ straddle จึงสะท้อนการเคลื่อนไหวเฉลี่ยที่ตลาดคาดไว้ ขณะที่สูตรให้ค่าความเบี่ยงเบนมาตรฐานหนึ่งหน่วย สำหรับการแจกแจงแบบปกติ ค่าเบี่ยงเบนสัมบูรณ์เฉลี่ยเท่ากับ 0.798 เท่าของความเบี่ยงเบนมาตรฐาน ดังนั้น straddle จึงอยู่ต่ำกว่าคำตอบจากสูตรประมาณ 20% และการคูณราคา straddle ด้วย 1.25 ซึ่งเท่ากับ 1 หารด้วย 0.798 จะทำให้ตัวเลขทั้งสองสอดคล้องกัน
ลองใช้กับกรณีสมมติที่ราคา $100 จากช่วงต้น สูตรให้ค่า $8.60 ส่วน straddle ที่ระดับราคาใช้สิทธิใกล้เคียงราคาหุ้นปัจจุบันจะมีราคาใกล้เคียง $6.86 เนื่องจาก 0.798 × 8.60 = 6.86 เมื่อนำ $6.86 คูณด้วย 1.25 จะได้กลับมาเป็น $8.58 ทั้งสองวิธีจึงให้ตัวเลขเดียวกัน เมื่อเข้าใจว่าวิธีแต่ละแบบรายงานสถิติใด การอ่าน option chain แสดงตำแหน่งของ Premium ทั้งสองรายการดังกล่าว
สิ่งที่ expected move ไม่ได้หมายความถึง
- ไม่ได้บอกทิศทาง แถบช่วงราคานี้สมมาตรรอบราคาปัจจุบัน และตลาด options ประเมินราคาจากความกว้างของช่วง ไม่ใช่จากด้านใดด้านหนึ่ง
- ไม่ใช่คำรับประกัน สัดส่วน 68% มาจากการแจกแจงปกติ ขณะที่ผลตอบแทนจริงมีหางการแจกแจงที่หนากว่า ดังนั้นผลลัพธ์ที่อยู่ห่างจากค่ากลางมากจึงเกิดขึ้นบ่อยกว่าที่แบบจำลองคาดไว้
- ไม่ใช่แนวกั้น ภายใต้แบบจำลอง ประมาณหนึ่งในสามของช่วงเวลาจะสิ้นสุดนอกแถบหนึ่งส่วนเบี่ยงเบนมาตรฐาน การสิ้นสุดนอกแถบจึงเป็นกรณีปกติ
- ไม่คงที่ Implied volatility จะถูกปรับราคาใหม่ทุกครั้งที่มีการซื้อขาย ดังนั้น expected move สำหรับวันครบอายุเดียวกันจึงถูกคำนวณใหม่ทุกวัน
เกิดอะไรขึ้นหลังประกาศผลประกอบการ
วันประกาศผลประกอบการที่กำหนดไว้เป็นกรณีที่ชัดเจนที่สุดของการที่ implied volatility ถูกดันให้สูงขึ้นล่วงหน้า แล้วถูกปรับลดลงในช่วงการซื้อขายหลังตลาดรับรู้ข่าว รูปแบบนี้เรียกว่า IV crush การเคลื่อนไหวที่คาดหมายไว้จะหดตัวลงตามกรอบเวลาเดียวกัน รายงานผลประกอบการของ NVDA ในช่วงปลายเดือนพฤษภาคม 2023 เผยแพร่หลังตลาดปิดของช่วงการซื้อขายแรกในแผงด้านล่าง
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH
(SELECT avg(toFloat64(implied_volatility))
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date = toDate('2023-05-24')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05) AS iv_report_day,
(SELECT avg(toFloat64(underlying_close))
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date = toDate('2023-05-24')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05) AS px_report_day
SELECT date,
formatDateTime(date, '%b %e') AS session_label,
round(100 * avg(toFloat64(implied_volatility)), 1) AS iv_pct,
round(100 * avg(toFloat64(implied_volatility)) * sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_pct,
round(100 * avg(toFloat64(implied_volatility)) / iv_report_day, 1) AS iv_pct_of_report_day,
round(100 * (avg(toFloat64(underlying_close)) / px_report_day - 1), 2) AS move_from_report_day_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date BETWEEN toDate('2023-05-24') AND toDate('2023-06-09')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY date
HAVING count() >= 3
ORDER BY dateimplied volatility ใกล้ราคาใช้สิทธิ วัดได้ 115.1% ณ May 24 ซึ่งเป็นช่วงการซื้อขายของวันที่ประกาศผล โดยมีการเคลื่อนไหวที่คาดหมายจนถึงวันหมดอายุเท่ากับ 30.54% ในช่วงการซื้อขายถัดมา ค่าที่วัดด้วยวิธีเดียวกันลดลงมาอยู่ที่ 42.9% ของระดับดังกล่าว ภายใน Jun 9 implied volatility อยู่ที่ 39.2% ขณะที่ราคาหุ้นอยู่ห่างจากราคาปิดของวันที่ประกาศผล 1.71%
องค์ประกอบดังกล่าวเป็นที่มาของข้อร้องเรียนที่พบได้บ่อย นักเทรดอาจคาดทิศทางการเคลื่อนไหวของหุ้นหลังประกาศผลประกอบการได้ถูกต้อง แต่ยังขาดทุนจากการถือ Long option ได้ เพราะค่าความผันผวนที่ใช้กำหนดราคาสัญญาถูกปรับลดลงทันทีที่ความไม่แน่นอนคลี่คลาย ปัจจัยที่ผลประกอบการส่งผลต่อค่า Greeks อธิบายผลต่อสถานะดังกล่าวต่อไป
การเคลื่อนไหวที่คาดการณ์ไว้สอดคล้องกับการเคลื่อนไหวที่เกิดขึ้นจริงหรือไม่?
ข้ออ้างนี้สามารถทดสอบได้ ดังนั้นนี่คือการทดสอบ ทุกวันพุธตลอดช่วงสองปีก่อนถึงกลางเดือนมิถุนายน 2026 สำหรับหุ้นสภาพคล่องสูงหกตัว ให้นำ implied volatility ใกล้ราคาใช้สิทธิของสัญญาที่มีอายุคงเหลือ 25 ถึง 40 วันมาแปลงเป็น expected move ในช่วงวันถัดไป จากนั้นวัดว่าราคาหุ้นเคลื่อนไหวจริงไปไกลเพียงใดภายในวันทำการแรกที่อยู่หลังจากนั้นอย่างน้อย 30 วันตามปฏิทิน
SQL เบื้องหลังตัวเลขแต่ละตัว
WITH obs AS (
SELECT underlying_symbol AS ticker,
date AS obs_date,
avg(toFloat64(implied_volatility)) AS iv,
avg(toFloat64(underlying_close)) AS spot
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('NVDA', 'AAPL', 'MSFT', 'XOM', 'SPY', 'KO')
AND date BETWEEN toDate('2024-06-12') AND toDate('2026-06-17')
AND toDayOfWeek(date) = 3
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 25 AND 40
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY ticker, obs_date
HAVING count() >= 4 AND avg(toFloat64(implied_volatility)) > 0.01
),
px AS (
SELECT underlying_symbol AS ticker,
date AS px_date,
avg(toFloat64(underlying_close)) AS close_px
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('NVDA', 'AAPL', 'MSFT', 'XOM', 'SPY', 'KO')
AND date BETWEEN toDate('2024-06-12') AND toDate('2026-07-25')
AND days_to_expiry BETWEEN 5 AND 60
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.02
GROUP BY ticker, px_date
),
moves AS (
SELECT obs.ticker AS ticker,
obs.obs_date AS obs_date,
any(obs.iv) AS iv,
any(obs.spot) AS spot,
argMin(px.close_px, px.px_date) AS end_px,
min(dateDiff('day', obs.obs_date, px.px_date)) AS elapsed_days
FROM obs
INNER JOIN px ON obs.ticker = px.ticker
WHERE px.px_date >= addDays(obs.obs_date, 30)
AND px.px_date <= addDays(obs.obs_date, 36)
GROUP BY ticker, obs_date
)
SELECT ticker,
count() AS windows_tested,
round(quantileDeterministic(0.5)(100 * iv * sqrt(elapsed_days / 365), cityHash64(obs_date)), 2) AS implied_move_pct,
round(quantileDeterministic(0.5)(100 * abs(end_px / spot - 1), cityHash64(obs_date)), 2) AS realized_move_pct,
round(100 * countIf(abs(end_px / spot - 1) > iv * sqrt(elapsed_days / 365)) / count(), 1) AS realized_over_implied_pct
FROM moves
GROUP BY ticker
ORDER BY implied_move_pct DESCNVDA ประเมินกรอบการเคลื่อนไหวกว้างที่สุดในบรรดาหุ้นทั้งหกตัว โดยมี implied move มัธยฐานที่ 13.3% เทียบกับ realized move มัธยฐานที่ 6.77% จากช่วงสังเกตการณ์ 103 ช่วง ในกลุ่มที่มีความผันผวนต่ำที่สุด SPY ประเมินไว้ที่ 4.37% เทียบกับ realized move ที่ 2.68%
คอลัมน์สุดท้ายเป็นตัวชี้วัดที่ตรงไปตรงมาที่สุด กรอบการเคลื่อนไหวที่ระดับหนึ่งส่วนเบี่ยงเบนมาตรฐานควรถูกทะลุประมาณ 32% ของเวลา และควรใช้สัดส่วนนี้เป็นเกณฑ์อ้างอิง ไม่ใช่ใช้ศูนย์เป็นเกณฑ์ 23.3% ของช่วงสังเกตการณ์ NVDA ช่วงปิดนอกกรอบที่ options ประเมินไว้ และ 24.3% ของช่วงสังเกตการณ์ SPY ช่วงก็เกิดเหตุการณ์เดียวกัน เมื่อนำค่ามัธยฐานของแต่ละชื่อมาเปรียบเทียบกันโดยตรง รวมถึงส่วนต่างระหว่างค่าเหล่านั้น ไม่ว่าส่วนต่างจะเป็นไปในทิศทางใด นั่นคือประเด็นทั้งหมดในการพิจารณาว่า options ประเมินการเคลื่อนไหวไว้สูงกว่าที่เกิดขึ้นจริงหรือไม่ การคัดกรองหุ้นที่มีกรอบ implied range กว้างที่สุดเป็นการวิเคราะห์อีกแบบหนึ่ง และ หุ้นที่มี implied volatility สูงที่สุด จัดอันดับหุ้นเหล่านั้น
หมายเหตุและคำจำกัดความของข้อมูล
- Near the money หมายถึงราคาใช้สิทธิที่อยู่ภายใน 5% ของราคาปิดของสินทรัพย์อ้างอิงในเซสชันนั้น โดยใช้สัญญาที่มี implied volatility อยู่ในระดับสอดคล้องกันและมีปริมาณซื้อขายไม่เป็นศูนย์
- Expected move ใช้จำนวนวันตามปฏิทินหารด้วย 365 ตลอดการคำนวณ ส่วน realized move คือระยะห่างเป็นเปอร์เซ็นต์ระหว่างราคาปิด ณ วันสังเกตการณ์กับราคาปิดของเซสชันแรกที่อยู่หลังจากนั้นอย่างน้อย 30 วันตามปฏิทิน โดยไม่นำเครื่องหมายบวกหรือลบมาพิจารณา
- ข้อมูลสังเกตการณ์เป็นรายสัปดาห์ ขณะที่ช่วงเวลาล่วงหน้าครอบคลุม 30 วัน ดังนั้นช่วงเวลาที่อยู่ติดกันจึงซ้อนทับกัน และจำนวนตัวอย่างไม่ใช่การสุ่มที่เป็นอิสระต่อกัน
คำถามที่พบบ่อยเกี่ยวกับ Expected move
คำนวณ Expected move จาก Implied volatility อย่างไร
นำราคาหุ้นคูณด้วย Implied volatility ในรูปทศนิยม แล้วคูณด้วยรากที่สองของจำนวนวันหารด้วย 365 หุ้นราคา $50 ที่มี Implied volatility 40% ในช่วง 45 วัน: 50 × 0.40 × √(45 ÷ 365) = $7.02 หรือเป็นกรอบประมาณ 14%
ราคา At-the-money straddle เท่ากับ Expected move หรือไม่
ใกล้เคียงกัน แต่ไม่เท่ากัน ราคา Straddle สะท้อน Expected move โดยเฉลี่ย ซึ่งอยู่ที่ประมาณ 0.798 ของค่าเบี่ยงเบนมาตรฐานหนึ่งหน่วย เมื่อนำ Premium ของ Straddle คูณด้วย 1.25 จะได้ค่าหนึ่งค่าเบี่ยงเบนมาตรฐานตามสูตร
หุ้นจะเคลื่อนไหวอยู่ภายใน Expected move หรือไม่
โดยทั่วไปจะอยู่ภายใน และแบบจำลองคาดว่าจะมีกรณีที่หลุดกรอบประมาณ 32% ของเวลา จากช่วงเวลารายสัปดาห์ที่ทดสอบไว้ข้างต้น 23.3% จาก NVDA ช่วงเวลาปิดนอกกรอบที่ Implied volatility บ่งชี้ไว้ และมี 24.3% จาก SPY ช่วงเวลาที่เป็นเช่นนั้น
เหตุใด Expected move จึงหดตัวทันทีหลังประกาศผลประกอบการ
Expected move เป็นฟังก์ชันโดยตรงของ Implied volatility ขณะที่ Implied volatility มักถูกดันขึ้นก่อนการประกาศผลตามกำหนดการ และถูกปรับลดลงเมื่อทราบผลแล้ว ในตารางข้างต้น ช่วงการซื้อขายหลังการประกาศผลของ NVDA มีค่าเท่ากับ 42.9% ของค่าที่วัดในวันประกาศผล
Expected move ที่กว้างขึ้นเป็นโอกาสที่ดีกว่าหรือไม่
เป็นเพียงกรอบที่กว้างขึ้นเท่านั้น Expected move ที่ใหญ่ขึ้นหมายความว่าตลาดออปชันกำหนดราคาให้กับความไม่แน่นอนที่สูงขึ้น และสัญญาที่มีความไม่แน่นอนดังกล่าวก็มีต้นทุนสูงขึ้นตามสัดส่วน ความกว้างของกรอบไม่ได้บอกว่าราคานั้นยุติธรรมหรือไม่
ทุกตารางในหน้านี้เป็น Stored query ที่แนบ SQL ไว้ เปิดตารางใดตารางหนึ่ง เปลี่ยน Ticker แล้วรันการทดสอบ Implied เทียบกับ Realized แบบเดียวกันบน Strasmore terminal