Strasmore Research
Edukasi Matt ConnorOleh Matt Connor · data as of August 6, 2026 · refreshed weekly

IV Rank vs IV Percentile: Formula dan Contoh

Pahami perbedaan IV rank dan IV percentile, dua formula lengkap, satu contoh yang dapat dihitung manual, serta alasan nilainya bisa berbeda tajam pada ticker yang sama.

Perbedaan antara IV rank dan IV percentile terletak pada dua perhitungan yang menggunakan data yang sama. IV rank mengukur posisi implied volatility hari ini dalam kisaran 52 minggu, dari pembacaan terendah hingga tertinggi. IV percentile menghitung persentase hari perdagangan dalam periode tinjauan yang ditutup di bawah pembacaan hari ini. Ticker yang sama, pada sore yang sama, dapat mencatat nilai 18 untuk salah satunya dan 70 untuk yang lain.

Dua formula, ditulis lengkap

IV rank = (IV saat ini dikurangi IV terendah dalam 52 minggu) / (IV tertinggi dalam 52 minggu dikurangi IV terendah dalam 52 minggu) x 100

IV percentile = (jumlah hari perdagangan dalam periode pengamatan ketika IV berada di bawah IV hari ini) / (total hari perdagangan dalam periode pengamatan) x 100

Keduanya menghasilkan nilai antara 0 dan 100. Keduanya memerlukan dua input yang sama: rangkaian implied volatility harian untuk saham tersebut dan periode pengamatan, yang secara konvensional mencakup 252 hari perdagangan. Implied volatility sendiri merupakan estimasi tahunan pasar opsi mengenai seberapa besar pergerakan saham, yang dihitung dari harga opsi terkini. Penjelasan apa yang diukur implied volatility membahas konsep ini dari awal.

Perbedaan keduanya terletak pada seberapa banyak data dalam periode pengamatan yang digunakan. IV rank hanya melihat tepat dua hari dari 252 hari: hari dengan IV tertinggi dan hari dengan IV terendah. Semua data di antaranya hanya menjadi latar belakang. IV percentile memperlakukan setiap hari secara setara dan tidak memperhitungkan jarak antara setiap pembacaan. Yang pertama menunjukkan posisi dalam suatu rentang. Yang kedua menghitung jumlah hari.

Contoh perhitungan yang dapat diperiksa secara manual

Gunakan seri IV fiktif selama ten days, dengan satu pembacaan per sesi: 22, 24, 21, 60, 26, 25, 23, 27, 24, dan hari ini 28. Nilai terendahnya 21 dan nilai tertingginya 60.

IV rank: (28 - 21) / (60 - 21) x 100 = 7 / 39 x 100 = 17,9.

IV percentile: tujuh dari sepuluh pembacaan, yaitu 22, 24, 21, 26, 25, 23, dan 24, berada di bawah 28. Hasilnya 7 / 10 x 100 = 70,0.

IV rank sebesar 17,9 menunjukkan volatilitas yang murah. IV percentile sebesar 70 menunjukkan bahwa volatilitas berada di bawah level saat ini pada sebagian besar hari dalam window tersebut. Keduanya merupakan deskripsi yang benar atas sepuluh angka yang sama.

Sekarang ubah satu nilai. Ganti 60 dengan 30 dan biarkan sembilan pembacaan lainnya tetap sama. IV rank menjadi (28 - 21) / (30 - 21) x 100 = 77,8. IV percentile tidak berubah, tetap 70,0. Satu sesi yang menetapkan nilai tertinggi bernilai 60 poin bagi IV rank, tetapi sama sekali tidak memengaruhi IV percentile.

Itulah titik lemah struktural IV rank. Satu lonjakan dalam window, seperti gap setelah earnings atau kepanikan selama satu hari, memperlebar denominator dan menahan rank di dekat titik terendah selama dua belas bulan berikutnya. Dampaknya tetap ada meski lonjakan tersebut sudah tidak lagi tercermin dalam option chain. Ketika kedua skor berbeda jauh, perbedaan itu biasanya menandakan adanya outlier di dalam window. Dalam kondisi tersebut, percentile lebih akurat dalam menggambarkan level yang benar-benar ditempati volatilitas sepanjang periode tersebut. IV rank lebih tepat digunakan ketika rentangnya mulus dan kedua ekstremnya masing-masing mencakup lebih dari satu sesi. Tidak satu pun dari kedua angka tersebut menunjukkan arah pergerakan.

Seperti apa deret IV yang sebenarnya

Berikut adalah data mentah yang digunakan oleh kedua formula. Panel di bawah ini menghitung implied volatility at the money harian untuk AAPL dari kontrak dengan sisa waktu hingga jatuh tempo 20 hingga 45 hari dan dalam kisaran 5% dari harga saham, lalu merata-ratakan pembacaan tersebut per minggu.

QueryImplied volatility at the money AAPL, mingguan, 52 minggu terakhir
SQL tepat di balik setiap angka
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)
Run this yourself

Deret ini mencakup 54 titik mingguan, mulai dari minggu Jul 28, 2025 dengan rata-rata 30.03%, hingga minggu Aug 3, 2026 di 27.7%. Bentuk garis tersebut menentukan apakah rank dan percentile memberikan hasil yang sama. Garis dengan satu lonjakan tinggi yang terisolasi akan memisahkan keduanya. Garis yang bergerak dalam kisaran stabil akan membuat keduanya tetap berdekatan. Halaman implied volatility AAPL kami mengikuti saham ini dari waktu ke waktu; untuk pertanyaan tentang level absolut tanpa riwayat, lihat apakah IV 30% tinggi.

IV rank vs IV percentile pada delapan ticker

Formula yang sama, periode pengamatan yang sama, delapan saham likuid, dalam satu sesi. Kolom gap menunjukkan selisih absolut antara kedua skor tersebut.

QueryPeringkat IV vs persentil IV, delapan nama likuid, tinjauan 52 minggu
SQL tepat di balik setiap angka
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
Run this yourself

Per Aug 3, 2026, perbedaan terbesar dalam tabel adalah 35.6 poin, pada AAPL. IV rank tercatat sebesar 32.4, sedangkan IV percentile sebesar 68. Di sisi lain, TSLA mempertahankan selisih keduanya dalam kisaran 6.5 poin. Screen yang menggunakan satu angka akan menghasilkan daftar berbeda dari screen yang menggunakan angka lainnya. Inilah alasan praktis untuk mengetahui angka mana yang ditampilkan platform Anda. Screen saham dengan IV rank tertinggi mengurutkan pasar berdasarkan angka pertama.

Input rentang di balik setiap rank dalam tabel

Masukkan kolom current, low, dan high ke dalam formula rank, lalu kolom rank di atas akan menghasilkan angka yang sama.

QueryIV ATM saat ini, terendah 52 minggu, dan tertinggi 52 minggu untuk setiap nama
SQL tepat di balik setiap angka
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
Run this yourself

Mengapa dua platform melaporkan nilai yang berbeda untuk ticker yang sama

Tidak ada formula yang ambigu. Input-nya yang berbeda. Vendor jarang menjelaskan seri IV yang digunakan, sementara pilihan yang umum berada di dua ujung rangkaian: IV constant maturity 30 hari yang diinterpolasikan di antara dua expiry di sekitar 30 hari, atau kontrak front month at the money yang jauh lebih fluktuatif. Sebagian platform menggunakan rata-rata seluruh option chain. Panel ini menguji satu saham dengan tiga definisi input IV selama 52 minggu yang sama.

QuerySatu saham, satu sesi, tiga definisi input IV
SQL tepat di balik setiap angka
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
Run this yourself

Pada sesi terakhir, Wide net, any expiry mencatat 37.6%, sedangkan Near 30 day ATM mencatat 27.7%, dan IV rank masing-masing berada di 23.1 dan 32.4. Saham yang sama, sesi yang sama, formula yang sama, tetapi definisi input-nya berbeda.

Faktor kedua adalah panjang periode lookback. 52 minggu merupakan konvensi yang umum, dan banyak platform juga menawarkan pengaturan 30, 60, atau 90 hari.

QuerySesi yang sama dinilai dengan lima jendela tinjauan berbeda
SQL tepat di balik setiap angka
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
Run this yourself

Dengan lookback 1 month, saham ini mencatat 0.4 untuk IV rank dan 4.8 untuk IV percentile. Ketika periode tersebut diperpanjang menjadi 24 months, sesi yang sama mencatat 23.4 dan 63.3. Tidak ada perubahan pada option chain di antara kedua baris tersebut. Yang berubah hanya periodenya. Ketika dua layar memberikan hasil berbeda untuk ticker yang sama, pengaturan lookback dan seri IV merupakan dua hal pertama yang perlu diperiksa.

Cara menggunakan kedua angka tersebut

Kedua ukuran ini berfungsi sebagai filter dalam pemilihan strategi, bukan sebagai prakiraan. Trader yang menjual premi, termasuk covered call dan cash-secured put, cenderung mencari ukuran yang tinggi. Pada kondisi tersebut, harga opsi mencerminkan ekspektasi pergerakan yang lebih besar daripada pergerakan yang biasanya dihasilkan saham selama periode pengamatan. Trader yang membeli premi melihat kisaran yang rendah, dengan logika yang berlawanan. Untuk tujuan ini, skor relatif lebih berguna daripada angka IV mentah. IV sebesar 40% tergolong biasa untuk satu saham, tetapi ekstrem untuk saham lain. Membandingkan saham dengan riwayatnya sendiri menghilangkan masalah tersebut. Apakah implied volatility yang tinggi menguntungkan bergantung pada trade-off di masing-masing sisi.

Ada satu hal yang tidak dapat dijawab oleh kedua angka tersebut. Ukuran yang tinggi masih dapat naik lebih tinggi. Peringkat 95 pada hari Senin dapat menjadi 60 pada hari Jumat tanpa perubahan pada posisi Anda. Kedua skor tersebut tidak memberikan informasi tentang arah. IV yang tinggi berarti pasar telah memperhitungkan pergerakan besar, tetapi tidak menunjukkan arah pergerakannya.

FAQ

Mana yang lebih baik, IV rank atau IV percentile?

Keduanya menjawab pertanyaan yang berbeda. IV percentile lebih andal ketika periode lookback mencakup satu lonjakan ekstrem, karena metrik ini menghitung jumlah hari, bukan membandingkan IV dengan satu titik ekstrem. IV rank lebih intuitif ketika rentang datanya terisi dengan baik, karena metrik ini menunjukkan secara langsung seberapa dekat IV hari ini dengan level tertinggi dalam dua belas bulan terakhir.

Apa yang dimaksud dengan IV rank yang tinggi?

Sebagian besar trading desk menganggap angka di atas 50 sebagai paruh atas dari rentang historis suatu saham, dan angka di atas 80 sebagai level yang benar-benar tinggi untuk saham tersebut. Skornya bersifat relatif sejak awal. Karena itu, IV rank 80 pada saham consumer staple yang tenang dan IV rank 80 pada saham growth yang volatil dapat menunjukkan level IV absolut yang sangat berbeda.

Apakah IV rank dan IV percentile menggunakan periode lookback yang sama?

Biasanya, keduanya menggunakan 252 hari perdagangan, meski pengaturannya dapat diubah di sebagian besar platform dan default-nya berbeda menurut vendor. Panel di atas menunjukkan satu saham dengan skor berbeda pada setiap panjang periode. Ini adalah hal pertama yang perlu diperiksa ketika dua alat menghasilkan angka yang berbeda.

Apakah IV rank bisa bernilai 0 atau 100?

Ya. IV rank mencapai 100 pada hari ketika sebuah saham mencatatkan level tertinggi baru dalam 52 minggu untuk implied volatility, dan mencapai 0 ketika mencatatkan level terendah baru. Ini terjadi karena angka hari ini sendiri merupakan salah satu titik ujung rentang tersebut. IV percentile jarang menyentuh kedua nilai ekstrem itu, karena sesi hari ini termasuk dalam penyebut perhitungannya.

Mengapa IV rank saya berubah meski IV tidak bergerak?

Periode pengamatan bergeser maju setiap sesi. Ketika lonjakan lama keluar dari periode 52 minggu berjalan, level tertinggi dalam penyebut turun ke nilai yang lebih rendah dan IV rank meningkat, meski IV hari ini tidak berubah. IV crush menjelaskan kejutan umum lainnya, yaitu penurunan IV itu sendiri segera setelah laporan earnings.


Setiap panel di sini dilengkapi SQL yang digunakan untuk menghasilkan datanya. Ganti ticker di salah satu panel untuk menghitung skor saham lain di terminal Strasmore.