تفاوت IV Rank و IV Percentile در تحلیل تکنیکال
بررسی تفاوتهای محاسباتی میان IV Rank و IV Percentile به همراه یک مثال عملی برای درک بهتر. این راهنما نشان میدهد چرا یک Ticker واحد ممکن است در این دو شاخص نتایج متفاوتی ارائه دهد.
تفاوت میان IV rank و IV percentile در واقع به دو محاسبه ریاضی متفاوت بر روی دادههای یکسان بازمیگردد. IV rank نشان میدهد که نوسان ضمنی (implied volatility) امروز در کجای بازه 52 هفتهای خود، از پایینترین تا بالاترین سطح ثبتشده، قرار دارد. در مقابل، IV percentile بیانگر سهم روزهای معاملاتی در بازه زمانی مورد بررسی است که در آنها نوسان ضمنی پایینتر از سطح امروز بسته شده است. به همین دلیل، یک Ticker واحد میتواند در یک بعدازظهر مشخص، امتیاز 18 را در یکی از این دو شاخص و امتیاز 70 را در دیگری کسب کند.
دو فرمول، بهصورت مکتوب
رتبه IV = (IV فعلی منهای کمترین IV در 52 هفته) / (بیشترین IV در 52 هفته منهای کمترین IV در 52 هفته) ضربدر 100
صدک IV = (تعداد روزهای معاملاتی در بازه زمانی که IV آنها کمتر از IV امروز است) / (کل روزهای معاملاتی در بازه زمانی) ضربدر 100
هر دو شاخص عددی بین 0 تا 100 را نشان میدهند. هر دو به دو ورودی یکسان نیاز دارند: سری زمانی نوسان ضمنی (Implied Volatility) روزانه برای سهم، و یک بازه زمانی گذشتهنگر که بهطور معمول 252 روز معاملاتی در نظر گرفته میشود. خودِ نوسان ضمنی، برآورد بازار اختیار معامله از میزان حرکت احتمالی سهم در مقیاس سالانه است که از قیمتهای لحظهای اختیار معامله استخراج میشود؛ موضوعی که در معیارهای سنجش نوسان ضمنی از پایه بررسی شده است.
تفاوت این دو شاخص در میزان استفاده آنها از دادههای بازه زمانی است. رتبه IV دقیقاً به دو روز از 252 روز توجه میکند: روزی که بیشترین مقدار و روزی که کمترین مقدار را داشته است. تمام دادههای میان این دو نقطه، نادیده گرفته میشوند. در مقابل، صدک IV به تکتک روزها وزن یکسانی میدهد و هرگز به میزان فاصله عددی بین مقادیر توجه نمیکند. یکی، جایگاه فعلی را در یک دامنه مشخص میکند و دیگری، شمارش روزهاست.
یک نمونه عملی برای بررسی دستی
یک سری ده روزه فرضی از IV را در نظر بگیرید که برای هر جلسه معاملاتی یک عدد دارد: 22، 24، 21، 60، 26، 25، 23، 27، 24 و عدد امروز که 28 است. کمترین مقدار 21 و بیشترین مقدار 60 است.
رتبه IV یا IV rank: (28 - 21) / (60 - 21) ضربدر 100 = 7 تقسیم بر 39 ضربدر 100 = 17.9.
صدک IV یا IV percentile: هفت مورد از ده عدد، یعنی 22، 24، 21، 26، 25، 23 و 24، پایینتر از 28 هستند که نتیجه 7 تقسیم بر 10 ضربدر 100 = 70.0 را میدهد.
رتبه IV برابر با 17.9 نشاندهنده ارزان بودن نوسانپذیری است. صدک IV برابر با 70 نشان میدهد که نوسانپذیری در بیشتر روزهای این بازه زمانی، کمتر از مقدار فعلی بوده است. هر دو توصیف برای یک مجموعه ده عددی صحیح هستند.
حال یکی از مقادیر را تغییر دهید. عدد 60 را با 30 جایگزین کنید و نه عدد دیگر را ثابت نگه دارید. رتبه IV به (28 - 21) / (30 - 21) ضربدر 100 = 77.8 تغییر میکند. صدک IV تغییری نمیکند و همچنان 70.0 باقی میماند. یک جلسه معاملاتی که سقف را تعیین کرده بود، 60 واحد بر رتبه IV اثر داشت اما هیچ تأثیری بر صدک IV نداشت.
این نقطه ضعف ساختاری رتبه IV است. یک جهش ناگهانی در بازه زمانی، مانند شکاف قیمتی ناشی از گزارش سود یا یک ترس یکروزه، مخرج کسر را بهشدت بزرگ میکند و رتبه را تا دوازده ماه پس از خروج آن رویداد از زنجیره اختیارها، نزدیک به کف نگه میدارد. هنگامی که این دو شاخص اختلاف شدیدی با هم دارند، این اختلاف معمولاً نشاندهنده وجود یک داده پرت در بازه زمانی است و صدک، توصیف دقیقتری از وضعیت نوسانپذیری در طول زمان ارائه میدهد. رتبه IV زمانی معیار بهتری است که دامنه نوسانات هموار باشد و هر دو حد بالا و پایین توسط بیش از یک جلسه معاملاتی شکل گرفته باشند. هیچکدام از این دو عدد، اطلاعاتی درباره جهت حرکت ارائه نمیدهند.
نمای واقعی یک سری IV
در اینجا مواد خامی را میبینید که هر دو فرمول بر اساس آن عمل میکنند. پنل زیر، یک قرائت روزانه از نوسان ضمنی (implied volatility) در قیمت اعمال (at the money) برای AAPL را از قراردادهایی با سررسید 20 تا 45 روز و در محدوده 5 درصد قیمت سهم استخراج کرده و سپس میانگین هفتگی آنها را محاسبه میکند.
کد دقیق SQL پشت هر عدد
WITH daily AS
(
SELECT
date,
avg(toFloat64(implied_volatility)) * 100 AS atm_iv
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date >= today() - 371
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
)
SELECT
toString(toMonday(date)) AS week,
formatDateTime(toMonday(date), '%b %e, %Y') AS week_label,
round(avg(atm_iv), 2) AS aapl_atm_iv_pct,
round(min(atm_iv), 2) AS week_low_iv_pct,
round(max(atm_iv), 2) AS week_high_iv_pct
FROM daily
GROUP BY toMonday(date)
ORDER BY toMonday(date)این سری شامل 54 نقطه داده هفتگی است که از هفته Jul 28, 2025 با میانگین 30.03% شروع شده و تا هفته Aug 3, 2026 با مقدار 27.7% ادامه مییابد. شکل این نمودار تعیین میکند که آیا رتبه (rank) و صدک (percentile) با هم همخوانی دارند یا خیر. نموداری با یک جهش بلند و منفرد، این دو را از هم جدا میکند. نموداری که در یک بازه باثبات حرکت میکند، آنها را به هم نزدیک نگه میدارد. صفحه نوسان ضمنی AAPL ما این نماد را در طول زمان دنبال میکند؛ برای پرسش درباره سطح مطلق بدون در نظر گرفتن سابقه تاریخی، به آیا 30 درصد IV بالا است مراجعه کنید.
رتبه IV در مقابل صدک IV برای هشت تیکر
فرمولهای یکسان، دوره زمانی مشابه، هشت نماد با نقدشوندگی بالا، یک جلسه معاملاتی. ستون gap نشاندهنده فاصله مطلق بین این دو امتیاز است.
کد دقیق SQL پشت هر عدد
WITH daily AS
(
SELECT
underlying_symbol AS symbol,
date,
avg(toFloat64(implied_volatility)) * 100 AS atm_iv
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'SPY', 'QQQ', 'KO')
AND date >= today() - 371
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 symbol, date
),
latest AS
(
SELECT
symbol,
argMax(atm_iv, date) AS iv_now,
max(date) AS as_of
FROM daily
GROUP BY symbol
)
SELECT
d.symbol AS symbol,
round(100 * (l.iv_now - min(d.atm_iv)) / nullIf(max(d.atm_iv) - min(d.atm_iv), 0), 1) AS iv_rank,
round(100 * countIf(d.atm_iv < l.iv_now) / count(), 1) AS iv_percentile,
round(abs(iv_rank - iv_percentile), 1) AS gap,
formatDateTime(any(l.as_of), '%b %e, %Y') AS as_of_label
FROM daily AS d
INNER JOIN latest AS l ON l.symbol = d.symbol
GROUP BY d.symbol, l.iv_now
ORDER BY gap DESCتا تاریخ Aug 3, 2026، بیشترین اختلاف در جدول برابر با 35.6 واحد است که مربوط به AAPL میشود؛ جایی که رتبه IV برابر با 32.4 و صدک IV برابر با 68 است. در سوی دیگر جدول، TSLA این دو معیار را با اختلاف 6.5 واحد نسبت به یکدیگر حفظ کرده است. غربالگری بر اساس یکی از این اعداد، فهرستی متفاوت از غربالگری بر اساس عدد دیگر ارائه میدهد؛ این همان دلیل عملی برای آگاهی از این موضوع است که پلتفرم معاملاتی شما کدامیک را نمایش میدهد. غربالگر سهام با بالاترین رتبه IV بازار را بر اساس اولین مورد مرتب میکند.
ورودیهای بازه برای هر رتبه در این جدول
ستونهای فعلی، پایینترین و بالاترین قیمت را در فرمول رتبه قرار دهید تا ستون رتبه در بالا حاصل شود.
کد دقیق SQL پشت هر عدد
WITH daily AS
(
SELECT
underlying_symbol AS symbol,
date,
avg(toFloat64(implied_volatility)) * 100 AS atm_iv
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'SPY', 'QQQ', 'KO')
AND date >= today() - 371
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 symbol, date
),
latest AS
(
SELECT
symbol,
argMax(atm_iv, date) AS iv_now,
max(date) AS as_of
FROM daily
GROUP BY symbol
)
SELECT
d.symbol AS symbol,
round(l.iv_now, 2) AS current_iv_pct,
round(min(d.atm_iv), 2) AS low_52w_iv_pct,
round(max(d.atm_iv), 2) AS high_52w_iv_pct,
count() AS observations,
formatDateTime(any(l.as_of), '%b %e, %Y') AS as_of_label
FROM daily AS d
INNER JOIN latest AS l ON l.symbol = d.symbol
GROUP BY d.symbol, l.iv_now
ORDER BY current_iv_pct DESCچرا دو پلتفرم برای یک تیکر واحد، مقادیر متفاوتی گزارش میکنند
هیچکدام از فرمولها ابهامی ندارند، اما دادههای ورودی چرا. ارائهدهندگان خدمات بهندرت اعلام میکنند که از کدام سری IV استفاده میکنند و گزینههای رایج در دو سوی مخالف زنجیره قرار دارند: یکی IV با سررسید ثابت 30 روزه که بین دو تاریخ انقضای قبل و بعد از 30 روز درونیابی میشود، و دیگری قرارداد «در سود» (ATM) ماه اول که نوسان بسیار بیشتری دارد. برخی پلتفرمها نیز از میانگین کل زنجیره استفاده میکنند. این پنل یک سهم واحد را با سه تعریف مختلف از ورودی IV در طول 52 هفته بررسی میکند.
کد دقیق SQL پشت هر عدد
WITH contracts AS
(
SELECT
date,
days_to_expiry,
abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) AS moneyness,
toFloat64(implied_volatility) * 100 AS iv_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date >= today() - 371
AND iv_converged = 1
AND volume > 0
),
defs AS
(
SELECT
spec.1 AS iv_series,
spec.2 AS min_dte,
spec.3 AS max_dte,
spec.4 AS max_moneyness
FROM
(
SELECT arrayJoin([
('Near 30 day ATM', 20, 45, 0.05),
('Front month ATM', 1, 19, 0.05),
('Wide net, any expiry', 1, 400, 0.30)
]) AS spec
)
),
daily AS
(
SELECT
s.iv_series AS iv_series,
c.date AS date,
avg(c.iv_pct) AS atm_iv
FROM contracts AS c
CROSS JOIN defs AS s
WHERE c.days_to_expiry BETWEEN s.min_dte AND s.max_dte
AND c.moneyness < s.max_moneyness
GROUP BY iv_series, date
),
latest AS
(
SELECT
iv_series,
argMax(atm_iv, date) AS iv_now
FROM daily
GROUP BY iv_series
)
SELECT
d.iv_series AS iv_series,
round(l.iv_now, 2) AS current_iv_pct,
round(min(d.atm_iv), 2) AS low_52w_iv_pct,
round(max(d.atm_iv), 2) AS high_52w_iv_pct,
round(100 * (l.iv_now - min(d.atm_iv)) / nullIf(max(d.atm_iv) - min(d.atm_iv), 0), 1) AS iv_rank,
round(100 * countIf(d.atm_iv < l.iv_now) / count(), 1) AS iv_percentile
FROM daily AS d
INNER JOIN latest AS l ON l.iv_series = d.iv_series
GROUP BY d.iv_series, l.iv_now
ORDER BY current_iv_pct DESCدر آخرین جلسه معاملاتی، Wide net, any expiry مقدار 37.6% را ثبت کرد، در حالی که Near 30 day ATM مقدار 27.7% را نشان داد و رتبه IV آنها به ترتیب در سطوح 23.1 و 32.4 قرار گرفت. سهم یکسان، جلسه یکسان، فرمول یکسان، اما تعریف متفاوت برای ورودی.
اهرم دوم، طول دوره بازنگری (lookback) است. 52 هفته یک استاندارد مرسوم است و بسیاری از پلتفرمها تنظیمات 30، 60 یا 90 روزه را نیز در کنار آن ارائه میدهند.
کد دقیق SQL پشت هر عدد
WITH daily AS
(
SELECT
date,
avg(toFloat64(implied_volatility)) * 100 AS atm_iv
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date >= today() - 800
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
),
latest AS
(
SELECT
argMax(atm_iv, date) AS iv_now,
max(date) AS as_of
FROM daily
),
windows AS
(
SELECT
spec.1 AS lookback_label,
spec.2 AS lookback_days
FROM
(
SELECT arrayJoin([
('1 month', 30),
('3 months', 90),
('6 months', 180),
('12 months', 371),
('24 months', 742)
]) AS spec
)
)
SELECT
w.lookback_label AS lookback_label,
round(100 * (l.iv_now - min(d.atm_iv)) / nullIf(max(d.atm_iv) - min(d.atm_iv), 0), 1) AS iv_rank,
round(100 * countIf(d.atm_iv < l.iv_now) / count(), 1) AS iv_percentile,
count() AS observations
FROM daily AS d
CROSS JOIN windows AS w
CROSS JOIN latest AS l
WHERE d.date >= l.as_of - w.lookback_days
GROUP BY w.lookback_label, w.lookback_days, l.iv_now
ORDER BY w.lookback_daysبا دوره بازنگری 1 month، این سهم در رتبه IV امتیاز 0.4 و در صدک IV امتیاز 4.8 را کسب میکند. اگر پنجره زمانی را به 24 months افزایش دهیم، همان جلسه معاملاتی امتیازات 23.4 و 63.3 را ثبت میکند. هیچ تغییری در زنجیره اختیار معامله بین این دو ردیف رخ نداده است؛ تنها پنجره زمانی تغییر کرده است. هنگامی که دو صفحه نمایش درباره یک تیکر اختلاف نظر دارند، تنظیمات دوره بازنگری و سری IV اولین دو موردی هستند که باید بررسی شوند.
نحوه استفاده از این دو عدد
هر دو شاخص بهعنوان فیلتری برای انتخاب استراتژی عمل میکنند و هرگز پیشبینیکننده نیستند. معاملهگرانی که حقبیمه میفروشند، از جمله کسانی که اختیار خرید پوششدادهشده و اختیار فروش با پشتوانه نقدی معامله میکنند، معمولاً به دنبال ارقام بالا هستند؛ جایی که قیمت اختیار برای نوسانی بیش از آنچه سهم بهطور معمول در آن بازه زمانی تجربه کرده، تعیین شده است. معاملهگرانی که خریدار حقبیمه هستند، به سمت پایینِ طیف نگاه میکنند، جایی که همان منطق بهصورت معکوس عمل میکند. برای این منظور، یک امتیاز نسبی بهتر از عدد خام IV عمل میکند: IV چهل درصد برای یک سهم رقمی عادی و برای سهمی دیگر رقمی افراطی است؛ رتبهبندی یک سهم بر اساس تاریخچه خودش، این مشکل را برطرف میکند. مطلب آیا نوسان ضمنی بالا خوب است به بررسی بدهبستانهای هر دو طرف میپردازد.
یک نکته احتیاطی وجود دارد که این اعداد نمیتوانند برای شما پاسخ دهند. یک رقم بالا میتواند بالاتر برود و رتبه 95 در روز دوشنبه ممکن است بدون هیچ تغییری در موقعیت معاملاتی شما، در روز جمعه به رتبه 60 برسد. هیچکدام از این امتیازها حاوی اطلاعاتی درباره جهت حرکت نیستند: IV بالا به این معناست که بازار برای یک حرکت بزرگ قیمتگذاری کرده است، بدون آنکه دیدگاهی درباره جهت آن داشته باشد.
پرسشهای متداول
آیا IV rank بهتر است یا IV percentile؟
این دو شاخص به پرسشهای متفاوتی پاسخ میدهند. IV percentile در شرایطی که بازه زمانی مورد بررسی شامل یک جهش ناگهانی و شدید باشد، عملکرد بهتری دارد؛ زیرا بهجای مقایسه با یک نقطه اوج واحد، تعداد روزها را میسنجد. IV rank زمانی که دادههای بازه بهخوبی توزیع شده باشند، شهودیتر است؛ چرا که مستقیماً نشان میدهد سطح فعلی تا چه حد به سقف دوازدهماهه نزدیک است.
چه عددی برای IV rank بالا محسوب میشود؟
بیشتر میزهای معاملاتی (trading desks)، اعداد بالای 50 را نیمه بالایی بازه نوسانی سهم و اعداد بالای 80 را سطحی بهطور واقعی بالا برای آن نماد خاص در نظر میگیرند. این امتیاز بهطور ساختاری نسبی است؛ بنابراین، IV rank 80 برای یک سهم آرام در حوزه کالاهای مصرفی با IV rank 80 برای یک سهم پرنوسان در حوزه رشد، بیانگر سطوح مطلق بسیار متفاوتی از IV است.
آیا IV rank و IV percentile از بازه زمانی یکسانی استفاده میکنند؟
معمولاً برای هر دو از 252 روز معاملاتی استفاده میشود، هرچند این تنظیمات در اکثر پلتفرمها قابلتغییر است و مقدار پیشفرض بسته به ارائهدهنده داده متفاوت است. پنل بالا نشان میدهد که یک سهم در بازههای زمانی مختلف، امتیاز متفاوتی میگیرد؛ این نخستین موردی است که هنگام اختلاف میان دو ابزار باید بررسی شود.
آیا IV rank میتواند 0 یا 100 باشد؟
بله. IV rank در روزی که سهم به سقف 52 هفتهای جدیدی در نوسان ضمنی (implied volatility) میرسد، عدد 100 و در صورت ثبت کف جدید، عدد 0 را نشان میدهد؛ زیرا مقدار امروز خود یکی از نقاط انتهایی بازه است. IV percentile بهندرت به این دو حد میرسد، چرا که جلسه معاملاتی امروز نیز در مخرج کسر لحاظ میشود.
چرا IV rank من بدون تغییر IV تغییر کرد؟
بازه زمانی در هر جلسه معاملاتی بهروز میشود. وقتی یک جهش قدیمی از بازه 52 هفتهای خارج میشود، سقف موجود در مخرج کسر به مقدار پایینتری بازنشانی شده و رتبه افزایش مییابد، حتی اگر IV امروز بدون تغییر باقی مانده باشد. IV crush به دیگر غافلگیری رایج، یعنی افت IV بلافاصله پس از گزارش سود، اشاره دارد.
هر پنل در اینجا دقیقاً از همان کوئری SQL زیرین خود استفاده میکند. برای امتیازدهی به نمادی دیگر در پایانه Strasmore، کافی است تیکر (ticker) را در هر یک از آنها جایگزین کنید.