Cara Pengiraan Nisbah Put/Call Langkah Demi Langkah
Ketahui cara pengiraan nisbah put/call menggunakan formula volum dan open interest. Fahami sebab bacaan indeks lebih tinggi serta nilai normal yang dijangkakan pada tahun 2026.
Nisbah put/call dikira dengan membahagikan bilangan kontrak put yang didagangkan dengan bilangan kontrak call yang didagangkan dalam tempoh masa yang sama. Jika dua ratus lima puluh ribu put dan lima ratus ribu call bertukar tangan dalam satu sesi, nisbahnya ialah 0.50. Setiap hujah mengenai penunjuk ini, volum berbanding open interest serta ekuiti berbanding indeks, berpunca daripada perkara yang dikira pada setiap bahagian pembahagian tersebut. Untuk definisi mudah, mulakan dengan apakah itu nisbah put/call. Halaman ini melakukan pengiraan tersebut.
Formula put/call ratio, langkah demi langkah
Formula ini mempunyai dua input dan satu operasi: kira jumlah put yang didagangkan, kira jumlah call yang didagangkan, kemudian bahagikan nilai pertama dengan nilai kedua. Put ialah kontrak yang memberikan pemiliknya hak untuk menjual seratus saham aset asas pada harga strike tetap pada atau sebelum tarikh luput. Call memberikan hak untuk membeli pada harga strike tetap. Volume mengira kontrak yang bertukar tangan sepanjang sesi, dan ia ditetapkan semula kepada sifar pada pembukaan seterusnya.
Tiada pemberat dalam pengiraan ini. Satu lot dalam kontrak mingguan yang jauh di luar wang (far out of the money) dikira sama nilainya dengan satu lot dalam strike paling aktif di papan dagangan, dan kedua-duanya tidak diselaraskan mengikut jumlah wang yang dipertaruhkan. Nisbah ini hanyalah kiraan kontrak.
Pilihan yang mengubah jawapan ialah kontrak mana yang dikira. Panel di bawah menjalankan aritmetik yang sama merentasi lapan nama yang mempunyai kecairan tinggi sepanjang satu bulan penuh.
SQL tepat di sebalik setiap nombor
SELECT
underlying_symbol AS symbol,
sumIf(volume, right_letter = 'P') AS put_volume,
sumIf(volume, right_letter = 'C') AS call_volume,
round(toFloat64(sumIf(volume, right_letter = 'P'))
/ toFloat64(sumIf(volume, right_letter = 'C')), 2) AS put_call_ratio
FROM
(
SELECT
underlying_symbol,
volume,
substring(ticker, length(ticker) - 8, 1) AS right_letter
FROM global_markets.options_greeks
WHERE date >= '2026-07-01'
AND date < '2026-08-01'
AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
AND volume > 0
)
GROUP BY symbol
HAVING call_volume > 0 AND put_volume > 0
ORDER BY put_call_ratio DESCSepanjang Julai 2026, IWM mencatatkan nisbah tertinggi daripada lapan nama tersebut pada 3.11 put bagi setiap call, dan MSFT mencatatkan nisbah terendah pada 0.38. Satu formula, satu bulan, dan spread antara nama tertinggi dengan terendah jauh lebih besar daripada turun naik harian yang sering ditulis. Nisbah yang disebut tanpa kategori yang berkaitan hampir tidak membawa sebarang maklumat.
Berdasarkan volum atau berdasarkan open interest
Dua pengiraan berbeza boleh digunakan untuk pengangka dan penyebut.
Versi volum mengira kontrak yang didagangkan dalam tempoh masa tertentu. Ia merupakan ukuran aliran yang bermula daripada sifar setiap sesi dan menggambarkan aktiviti pasaran pada hari tersebut. Setiap nisbah utama dalam liputan pasaran menggunakan ukuran ini.
Versi open interest membahagikan jumlah put yang belum selesai dengan jumlah call yang belum selesai, di mana open interest ialah bilangan kontrak yang telah dibuka dan belum ditutup, dilaksanakan, atau luput. Ini merupakan ukuran stok, iaitu posisi terkumpul dan bukannya aktiviti harian, dan ia bergerak dengan perlahan. Sesi di mana tiga puluh ribu put bertukar tangan antara dua pemegang sedia ada akan menambah tiga puluh ribu kepada volum dan mengekalkan open interest pada tahap yang sama. Volum opsyen berbanding open interest membincangkan perakaunan ini.
Ambil satu nama hipotesis yang berakhir pada hari Selasa dengan empat puluh ribu put dan lima puluh ribu call yang belum selesai, iaitu nisbah open interest sebanyak 0.80. Pada hari Rabu, tiga puluh ribu put dan sepuluh ribu call didagangkan: nisbah volum sebanyak 3.00. Kedua-dua angka tersebut menggambarkan rantaian opsyen yang sama pada hari yang sama, namun ia berbeza hampir empat kali ganda, dan kedua-duanya adalah tepat. Nisbah open interest juga menjadi asas kepada pengiraan max pain, yang menimbang harga strike berdasarkan kontrak yang belum selesai dan bukannya kontrak yang didagangkan.
Ukuran aliran bersifat tidak menentu. Di bawah adalah nisbah volum harian bagi satu ETF dan satu saham tunggal sepanjang bulan yang sama.
SQL tepat di sebalik setiap nombor
SELECT
toString(d) AS session_date,
concat(formatDateTime(d, '%b '), toString(toDayOfMonth(d))) AS day_label,
round(toFloat64(sumIf(volume, sym = 'SPY' AND right_letter = 'P'))
/ toFloat64(sumIf(volume, sym = 'SPY' AND right_letter = 'C')), 2) AS spy_put_call_ratio,
round(toFloat64(sumIf(volume, sym = 'AAPL' AND right_letter = 'P'))
/ toFloat64(sumIf(volume, sym = 'AAPL' AND right_letter = 'C')), 2) AS aapl_put_call_ratio
FROM
(
SELECT
date AS d,
underlying_symbol AS sym,
volume,
substring(ticker, length(ticker) - 8, 1) AS right_letter
FROM global_markets.options_greeks
WHERE date >= '2026-07-01'
AND date < '2026-08-01'
AND underlying_symbol IN ('SPY', 'AAPL')
AND volume > 0
)
GROUP BY d
HAVING countIf(sym = 'SPY' AND right_letter = 'C') > 0
AND countIf(sym = 'AAPL' AND right_letter = 'C') > 0
ORDER BY dPada Jul 1, SPY mencatatkan 1.1 berbanding 0.49 bagi AAPL. Menjelang Jul 31, pasangan tersebut mencatatkan 2 dan 0.55. Sepanjang 22 sesi, catatan harian berubah-ubah, dan kedua-dua siri tersebut berada pada tahap yang berbeza dalam carta. Jurang tahap tersebut merupakan fakta yang lebih berguna antara kedua-duanya.
Ekuiti, indeks, ETP dan jumlah: empat nisbah Cboe
Angka yang disebut sebagai "nisbah put/call" datang daripada statistik pasaran harian Cboe, yang menerbitkan beberapa daripadanya. Kategori tersebut, mengikut penamaan Cboe:
- Nisbah put/call ekuiti: opsyen ke atas saham individu.
- Nisbah put/call indeks: opsyen ke atas indeks, termasuk SPX dan VIX.
- Nisbah put/call produk dagangan bursa (ETP): opsyen ke atas ETF, di mana SPY, QQQ dan IWM berada.
- Nisbah put/call jumlah: semua kategori dicampurkan bersama.
Setiap satunya dikira dengan cara yang sama, jumlah put dibahagikan dengan jumlah call dalam kategori tersebut, jadi bacaannya hanya berbeza mengikut apa yang terkandung dalam kumpulan itu. Kumpulan-kumpulan ini tidak boleh ditukar ganti.
Opsyen indeks ialah instrumen standard untuk melindung nilai keseluruhan portfolio dalam satu dagangan. Dana yang memegang buku saham yang luas membeli put indeks sebagai perlindungan dan tiada sebab yang sepadan untuk membeli call indeks. Permintaan itu datang secara sebelah pihak, dan ia jatuh sepenuhnya ke dalam pengangka kategori indeks. Aliran saham tunggal membawa kecenderungan yang bertentangan, di mana pembelian call pada nama individu merupakan bahagian yang besar dan berterusan daripada jumlah dagangan. Kedua-dua kategori ini berada pada tahap yang berbeza dari segi struktur, dan membandingkan bacaan daripada satu kategori dengan penanda aras daripada kategori yang lain merupakan kesilapan paling lazim yang dilakukan dengan penunjuk ini.
ETF pasaran luas membawa peranan lindung nilai yang sama seperti opsyen indeks sementara dikira dalam kategori produk dagangan bursa. Panel di bawah menjejaki median bulanan bagi kedua-dua bahagian pecahan tersebut.
SQL tepat di sebalik setiap nombor
WITH
daily AS
(
SELECT
d,
toFloat64(sumIf(volume, right_letter = 'P' AND sym IN ('SPY', 'QQQ', 'IWM')))
/ toFloat64(sumIf(volume, right_letter = 'C' AND sym IN ('SPY', 'QQQ', 'IWM'))) AS etf_ratio,
toFloat64(sumIf(volume, right_letter = 'P' AND sym NOT IN ('SPY', 'QQQ', 'IWM')))
/ toFloat64(sumIf(volume, right_letter = 'C' AND sym NOT IN ('SPY', 'QQQ', 'IWM'))) AS stock_ratio
FROM
(
SELECT
date AS d,
underlying_symbol AS sym,
volume,
substring(ticker, length(ticker) - 8, 1) AS right_letter
FROM global_markets.options_greeks
WHERE date >= '2025-08-01'
AND date < '2026-08-01'
AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
AND volume > 0
)
GROUP BY d
HAVING countIf(right_letter = 'C' AND sym IN ('SPY', 'QQQ', 'IWM')) > 0
AND countIf(right_letter = 'C' AND sym NOT IN ('SPY', 'QQQ', 'IWM')) > 0
)
SELECT
toString(toStartOfMonth(d)) AS month,
formatDateTime(toStartOfMonth(d), '%b %Y') AS month_label,
round(quantileExact(0.5)(etf_ratio), 2) AS etf_median_ratio,
round(quantileExact(0.5)(stock_ratio), 2) AS stock_median_ratio
FROM daily
GROUP BY month, month_label
ORDER BY monthPanel ini berjalan dari Aug 2025 hingga Jul 2026. Pada kedua-dua hujung, median nisbah harian bakul ETF berada berhampiran atau melebihi 1.0, 1.52 pada bulan pertama dan 1.49 pada bulan terakhir. Bakul saham tunggal kekal di bawah 1.0 pada kedua-dua hujung, 0.6 dan 0.56, merentasi kesemua 12 bulan pada carta. Jurang yang kekal itu adalah sebab mengapa penanda aras perlu menyatakan kategorinya sebelum ia membawa sebarang makna.
Apakah yang dianggap sebagai put/call ratio yang normal
Normal ialah satu julat, dan julat tersebut tergolong dalam kategori dan bukannya penunjuk itu sendiri. Panel di bawah mengambil setiap sesi sepanjang dua belas bulan yang lalu dan melaporkan nisbah harian median bagi setiap bakul, dengan pinggir persentil kesepuluh dan kesembilan puluh di sekelilingnya.
SQL tepat di sebalik setiap nombor
WITH
daily AS
(
SELECT
d,
toFloat64(sumIf(volume, right_letter = 'P' AND sym IN ('SPY', 'QQQ', 'IWM')))
/ toFloat64(sumIf(volume, right_letter = 'C' AND sym IN ('SPY', 'QQQ', 'IWM'))) AS etf_ratio,
toFloat64(sumIf(volume, right_letter = 'P' AND sym NOT IN ('SPY', 'QQQ', 'IWM')))
/ toFloat64(sumIf(volume, right_letter = 'C' AND sym NOT IN ('SPY', 'QQQ', 'IWM'))) AS stock_ratio,
toFloat64(sumIf(volume, right_letter = 'P'))
/ toFloat64(sumIf(volume, right_letter = 'C')) AS all_ratio
FROM
(
SELECT
date AS d,
underlying_symbol AS sym,
volume,
substring(ticker, length(ticker) - 8, 1) AS right_letter
FROM global_markets.options_greeks
WHERE date >= '2025-08-01'
AND date < '2026-08-01'
AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
AND volume > 0
)
GROUP BY d
HAVING countIf(right_letter = 'C' AND sym IN ('SPY', 'QQQ', 'IWM')) > 0
AND countIf(right_letter = 'C' AND sym NOT IN ('SPY', 'QQQ', 'IWM')) > 0
)
SELECT
p.2 AS category,
round(quantileExact(0.1)(p.3), 2) AS p10_ratio,
round(quantileExact(0.5)(p.3), 2) AS median_ratio,
round(quantileExact(0.9)(p.3), 2) AS p90_ratio
FROM
(
SELECT arrayJoin([
tuple(1, 'Broad market ETFs', etf_ratio),
tuple(2, 'Single stocks', stock_ratio),
tuple(3, 'All eight names', all_ratio)
]) AS p
FROM daily
)
GROUP BY p.1, p.2
ORDER BY p.1Bagi bakul saham tunggal, sesi median berada pada 0.58, dengan 0.45 pada persentil kesepuluh dan 0.76 pada persentil kesembilan puluh. Bakul ETF pasaran luas berada lebih tinggi merentasi taburan tersebut: median sebanyak 1.54 antara pinggir 1.25 dan 1.86.
Jadi, adakah 1.20 itu tinggi? Berbanding bakul saham tunggal, angka 1.20 berada melepasi persentil kesembilan puluh bagi 0.76, yang menjadikannya luar biasa. Berbanding bakul ETF, ia hampir menjadi rutin. Berbanding kategori indeks, di mana aliran lindung nilai yang diterangkan di atas tertumpu, angka yang sama perlu dinilai berbanding set tahap yang berbeza pula. Satu angka, dan kategori tersebut menentukan keputusan sebelum sebarang tafsiran bermula.
Julat ini juga berubah-ubah. Persentil yang dikira sepanjang dua belas bulan yang lalu menggambarkan dua belas bulan yang lalu, dan julat penanda aras yang disalin daripada artikel yang ditulis sedekad lalu menggambarkan pasaran dengan campuran kontrak yang berbeza dan hampir tiada perdagangan tamat tempoh sifar hari di dalamnya. Mengira semula persentil sepanjang tempoh terkini adalah satu-satunya cara yang jujur untuk menentukan sama ada sesuatu bacaan itu tinggi atau rendah.
Tafsiran adalah tugas yang berasingan daripada pengiraan. Bacaan yang tinggi dibaca oleh sesetengah pihak sebagai kedudukan bearish dan oleh pihak contrarian sebagai lindung nilai yang sesak, dan sama ada put/call ratio yang tinggi adalah bullish mengupas hujah tersebut dengan sewajarnya.
Mengapa purata bergerak 21 hari
Nisbah bagi satu sesi merupakan sampel kecil daripada siri yang tidak menentu, jadi versi yang diterbitkan biasanya dilicinkan. Konvensyen lazimnya ialah purata bergerak 21 sesi, iaitu kira-kira satu bulan dagangan: jumlahkan 21 nisbah harian terakhir, bahagikan dengan 21, kemudian gerakkan tetingkap ke hadapan sebanyak satu sesi. Versi sepuluh dan lima puluh sesi juga wujud, dan tempoh yang dipilih menentukan sejauh mana lonjakan satu hari akan kekal.
Dua perincian perlu diketahui. Mengambil purata 21 nisbah harian tidak sama dengan membahagikan jumlah volum put sebulan dengan jumlah volum call sebulan; kaedah pertama memberikan wajaran yang sama kepada setiap sesi, manakala kaedah kedua memberikan wajaran lebih berat kepada sesi yang sibuk. Selain itu, bacaan yang dilicinkan pada tahap ekstrem telah dikumpulkan sepanjang satu bulan sesi, jadi ia juga akan keluar daripada tahap ekstrem itu secara perlahan.
SQL tepat di sebalik setiap nombor
WITH
daily AS
(
SELECT
d,
toFloat64(sumIf(volume, right_letter = 'P'))
/ toFloat64(sumIf(volume, right_letter = 'C')) AS raw_ratio
FROM
(
SELECT
date AS d,
volume,
substring(ticker, length(ticker) - 8, 1) AS right_letter
FROM global_markets.options_greeks
WHERE date >= '2026-01-02'
AND date < '2026-08-01'
AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
AND volume > 0
)
GROUP BY d
HAVING countIf(right_letter = 'C') > 0
)
SELECT
session_date,
day_label,
daily_ratio,
ma21_ratio
FROM
(
SELECT
d,
toString(d) AS session_date,
concat(formatDateTime(d, '%b '), toString(toDayOfMonth(d))) AS day_label,
round(raw_ratio, 2) AS daily_ratio,
round(avg(raw_ratio) OVER (ORDER BY d ROWS BETWEEN 20 PRECEDING AND CURRENT ROW), 2) AS ma21_ratio
FROM daily
)
WHERE d >= '2026-04-01'
ORDER BY dGarisan bergerigi ialah nisbah harian bagi bakul saham tunggal, manakala garisan licin ialah purata 21 sesinya. Pada sesi pertama yang ditunjukkan, Apr 1, cetakan harian adalah 1.04 berbanding purata yang dilicinkan sebanyak 0.81. Pada Jul 31, pasangan tersebut mencatatkan 0.56 dan 0.58. Sepanjang 84 sesi, purata tersebut bergerak hanya sebahagian kecil daripada jarak yang diliputi oleh siri mentah, yang merupakan tujuan utama memetik nombor yang dilicinkan itu.
Cara panel ini mengira
Jenis kontrak diperoleh daripada simbol opsyen itu sendiri: huruf yang terletak di hadapan kod strike lapan digit ialah C untuk call dan P untuk put. Hanya kontrak dengan volum yang dilaporkan bagi sesi tersebut dimasukkan ke dalam kiraan, jadi strike yang tidak didagangkan tidak menambah apa-apa kepada kedua-dua pihak. Panel pertama membahagikan jumlah volum put bulanan dengan jumlah volum call bulanan bagi setiap nama. Panel selebihnya mengira satu nisbah bagi setiap sesi terlebih dahulu, kemudian meringkaskan sesi-sesi tersebut, yang sepadan dengan cara purata bergerak yang diterbitkan dibina. Bakul: SPY, QQQ dan IWM bagi pasaran luas, manakala AAPL, MSFT, NVDA, TSLA dan KO bagi pihak saham tunggal. Setiap panel mengandungi SQL tepat yang menghasilkannya.
Soalan Lazim
Bagaimanakah anda mengira put/call ratio?
Bahagikan bilangan kontrak put dengan bilangan kontrak call dalam tempoh masa yang sama. Kebanyakan versi yang diterbitkan menggunakan volum sesi, jadi bacaan 0.65 bermakna enam puluh lima put didagangkan bagi setiap seratus call. Versi open interest menggunakan kontrak yang belum selesai dan bukannya kontrak yang didagangkan, serta menjawab soalan yang berbeza.
Adakah put/call ratio melebihi 1 dianggap tinggi?
Ia bergantung kepada kategori. Bagi bakul saham tunggal dalam panel di atas, persentil ke-90 bagi bacaan harian berada pada 0.76, jadi transaksi di atas tahap itu adalah luar biasa. Bagi ETF pasaran luas dan opsyen indeks, di mana lindung nilai portfolio tertumpu pada bahagian put, bacaan sekitar dan melebihi 1 adalah perkara biasa.
Apakah perbezaan antara put/call ratio volum dan open interest?
Volum mengira kontrak yang didagangkan semasa sesi dan ditetapkan semula setiap pagi. Open interest mengira kontrak yang masih terbuka dan dibawa ke hari berikutnya. Versi volum boleh meningkat dua kali ganda dalam satu sesi manakala versi open interest berubah sebanyak beberapa peratus, jadi kedua-duanya sering menunjukkan arah yang berbeza pada hari yang sama.
Put/call ratio yang manakah dipetik oleh media kewangan?
Biasanya Cboe equity put/call ratio atau jumlah put/call ratio, dan paling kerap sebagai purata bergerak dua puluh satu sesi dan bukannya bacaan harian mentah. Empat kategori Cboe beroperasi pada tahap yang berbeza, jadi angka yang dipetik tanpa kategori yang dilampirkan tidak boleh diukur berbanding mana-mana penanda aras.
Setiap panel pada halaman ini disertakan dengan SQL yang menghasilkannya, supaya setiap kiraan boleh disemak baris demi baris. Untuk menjalankan aritmetik yang sama pada nama lain atau tempoh yang lebih panjang, minta ia dalam bahasa Inggeris yang mudah pada terminal Strasmore.