Paano Kinakalkula ang Put/Call Ratio
Alamin ang formula ng put/call ratio gamit ang volume at open interest, bakit mas mataas ang index readings, at ano ang normal na reading sa 2026.
Kinakalkula ang put/call ratio sa paghahati ng bilang ng put contracts na na-trade sa bilang ng call contracts na na-trade sa parehong time window. Kung 250,000 puts at 500,000 calls ang nagpalitan sa isang session, ang ratio ay 0.50. Ang bawat argumento tungkol sa indicator—volume laban sa open interest, at equity laban sa index—ay nakaugat sa kung ano ang binilang sa bawat panig ng paghahating iyon. Para sa simpleng depinisyon, magsimula sa kung ano ang put/call ratio. Dito ginagawa ang arithmetic.
Ang formula ng put/call ratio, step by step
May dalawang input at isang operasyon ang formula: bilangin ang mga put na na-trade, bilangin ang mga call na na-trade, at hatiin ang una sa ikalawa. Ang put ay kontratang nagbibigay sa may-ari nito ng karapatang magbenta ng 100 shares ng underlying sa fixed strike price sa o bago ang expiry. Ang call naman ay nagbibigay ng karapatang bumili sa fixed strike. Binibilang ng volume ang mga kontratang nagpalitan ng kamay sa session, at nire-reset ito sa zero sa susunod na open.
Walang weighting sa bilang. Ang isang lot sa isang far out-of-the-money weekly ay kapantay ng isang lot sa strike na may pinakamalaking activity sa board, at hindi rin ina-adjust ang alinman batay sa halagang nakataya. Contract count ang sinusukat ng ratio.
Ang pagpili kung aling mga kontrata ang isasama ang siyang nagpapabago sa resulta. Pinatakbo ng panel sa ibaba ang magkakaparehong arithmetic sa walong liquid na pangalan sa loob ng isang buong buwan.
Ang eksaktong SQL sa likod ng bawat numero
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 DESCNoong July 2026, IWM ang may pinakamataas na ratio sa walo, na nasa 3.11 puts bawat call, habang MSFT ang pinakamababa, sa 0.38. Isang formula, isang buwan, at spread sa pagitan ng pinakamataas at pinakamababang pangalan na mas malawak kaysa sa day-to-day na paggalaw na karaniwang isinusulat sa mga ulat. Halos walang impormasyong ibinibigay ang ratio kung hindi nakasaad ang kategorya nito.
Batay sa volume o sa open interest
Dalawang magkaibang bilang ang maaaring gamitin sa numerator at denominator.
Binibilang ng bersyong batay sa volume ang mga kontratang na-trade sa loob ng window. Isa itong flow measure na nagsisimula sa zero sa bawat session at naglalarawan sa ginawa ng mga market participant sa araw na iyon. Ito ang ginagamit sa bawat headline ratio sa market coverage.
Hinahati naman ng bersyong batay sa open interest ang kabuuang puts na hindi pa nakasasara sa kabuuang calls na hindi pa nakasasara. Ang open interest ay bilang ng mga kontratang nabuksan ngunit hindi pa nakasasara, na-exercise, o nag-expire. Isa itong stock measure: naipong posisyon ito, hindi aktibidad sa araw na iyon, kaya mabagal itong gumalaw. Sa isang session kung kailan nagpalitan ng kamay ang 30,000 puts sa pagitan ng dalawang dati nang holder, nadaragdagan ng 30,000 ang volume at nananatiling hindi nagbabago ang open interest. Tinalakay sa Volume ng options kumpara sa open interest ang bookkeeping.
Ipagpalagay ang isang hypothetical na name na nagtapos noong Martes na may 40,000 puts at 50,000 calls na hindi pa nakasasara, kaya 0.80 ang open interest ratio. Noong Miyerkules, na-trade ang 30,000 puts at 10,000 calls, kaya 3.00 ang volume ratio. Inilalarawan ng dalawang bilang ang parehong option chain sa parehong araw. Halos apat na beses ang diperensya ng mga ito, at parehong tama. Nasa ilalim din ng kalkulasyon ng max pain ang open interest ratios. Tinitimbang nito ang mga strike batay sa mga kontratang hindi pa nakasasara, hindi sa mga kontratang na-trade.
Mabilis magbago ang flow measures. Nasa ibaba ang daily volume ratio para sa isang ETF at isang single stock sa parehong buwan.
Ang eksaktong SQL sa likod ng bawat numero
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 dNoong Jul 1, nag-print ang SPY ng 1.1 kumpara sa 0.49 para sa AAPL. Pagsapit ng Jul 31, nasa 2 at 0.55 na ang dalawang ito. Sa loob ng 22 sessions, pabagu-bago ang daily prints, at nasa magkaibang level sa chart ang dalawang series. Mas kapaki-pakinabang pagtuunan ng pansin ang agwat sa level kaysa sa dalawang fact na ito.
Equity, index, ETP at total: apat na Cboe ratio
Ang tinatawag na “put/call ratio” ay mula sa daily market statistics ng Cboe, na naglalathala ng ilang magkakaibang ratio. Ito ang mga kategorya ayon sa tawag ng Cboe:
- Equity put/call ratio: options sa mga indibidwal na stock.
- Index put/call ratio: options sa mga index, kabilang ang SPX at VIX.
- Exchange traded products put/call ratio: options sa mga ETF, kung saan kabilang ang SPY, QQQ at IWM.
- Total put/call ratio: pinagsamang lahat ng kategorya.
Pareho ang paraan ng pagkalkula sa bawat isa: kabuuang puts na hinati sa kabuuang calls sa loob ng kategorya. Kaya nagkakaiba lamang ang readings batay sa laman ng bawat bucket. Hindi maaaring pagpalitin ang mga bucket.
Ang index options ang karaniwang instrumento para i-hedge ang buong portfolio sa isang trade. Ang fund na may malawak na hawak na mga stock ay bumibili ng index puts laban dito at walang katumbas na dahilan para bumili ng index calls. One-sided ang demand na ito, at buong napupunta sa numerator ng index category. Iba ang daloy sa single stocks, kung saan malaki at tuloy-tuloy na bahagi ng volume ang pagbili ng calls sa mga indibidwal na pangalan. Magkaiba ang antas ng dalawang kategorya dahil sa kanilang estruktura. Ang pagbasa sa isa gamit ang benchmark mula sa isa pa ang pinakakaraniwang pagkakamali sa paggamit ng indicator na ito.
Pareho ang hedging role ng broad market ETFs at index options, ngunit binibilang ang mga ETF sa exchange traded products category. Sinusubaybayan ng panel sa ibaba ang monthly median para sa dalawang panig ng paghahating ito.
Ang eksaktong SQL sa likod ng bawat numero
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 monthSaklaw ng panel ang Aug 2025 hanggang Jul 2026. Sa dalawang dulo, ang median daily ratio ng ETF basket ay nasa malapit o lampas sa 1.0, 1.52 sa unang buwan at 1.49 sa huli. Nanatiling mababa sa 1.0 ang single stock basket sa dalawang dulo, 0.6 at 0.56, sa lahat ng 12 buwan sa chart. Dahil dito, kailangang tukuyin ng benchmark ang kategorya nito bago ito magkaroon ng anumang malinaw na kahulugan.
Ano ang itinuturing na normal na put/call ratio
Ang normal ay isang range, at nakadepende ang range sa category, hindi sa indicator. Kinukuha ng panel sa ibaba ang bawat session sa trailing twelve months at iniuulat ang median daily ratio para sa bawat basket, kasama ang mga hangganan ng 10th at 90th percentile.
Ang eksaktong SQL sa likod ng bawat numero
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.1Para sa single stock basket, umabot sa 0.58 ang median session, habang nasa 0.45 ang 10th percentile at 0.76 ang 90th percentile. Mas mataas ang broad market ETF basket sa buong distribution: may median itong 1.54, sa pagitan ng 1.25 at 1.86.
Kaya mataas ba ang 1.20? Kung ihahambing sa single stock basket, ang 1.20 print ay lampas sa 90th percentile na 0.76, kaya hindi ito karaniwan. Kung ihahambing naman sa ETF basket, malapit ito sa routine. Para sa index category, kung saan nakapokus ang hedging flow na inilarawan sa itaas, kailangan muling suriin ang parehong figure batay sa ibang set ng levels. Iisa ang numero, ngunit ang category ang nagtatakda ng hatol bago magsimula ang anumang interpretation.
Nagbabago rin ang mga range na ito. Inilalarawan ng mga percentile na kinuwenta sa trailing twelve months ang trailing twelve months lamang. Samantala, ang benchmark range na kinopya mula sa isang artikulong isinulat isang dekada na ang nakalipas ay tumutukoy sa market na may ibang contract mix at halos walang zero day expiry trading. Ang muling pagkukuwenta ng mga percentile gamit ang recent window ang tanging tapat na paraan upang masabing mataas o mababa ang isang reading.
Hiwalay na gawain ang interpretation sa calculation. Para sa ilan, ang mataas na reading ay senyales ng bearish positioning. Para naman sa contrarians, indikasyon ito ng crowded hedge. Ang usapin kung bullish ba ang mataas na put/call ratio ang maayos na sumusuri sa argumentong iyon.
Bakit 21 session ang moving average
Maliit na sample lamang ng maingay na series ang ratio ng isang session, kaya karaniwang sini-smooth ang na-publish na bersyon. Ang karaniwang convention ay 21-session moving average, na tinatayang isang trading month: pagsamahin ang huling 21 daily ratio, hatiin sa 21, pagkatapos ay iusog ang window ng isang session. Mayroon ding 10- at 50-session na bersyon. Tinutukoy ng napiling haba kung gaano kalaking bahagi ng spike sa isang araw ang mananatili.
May dalawang detalyeng dapat malaman. Ang pag-average ng 21 daily ratio ay hindi kapareho ng paghahati ng put volume sa isang buwan sa call volume sa isang buwan. Sa una, pantay ang bigat ng bawat session. Sa ikalawa, mas mabigat ang bigat ng mga session na mas maraming trades. At ang smoothed reading na nasa extreme level ay binuo mula sa isang buwan ng mga session, kaya mabagal din itong umaalis sa extreme na iyon.
Ang eksaktong SQL sa likod ng bawat numero
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 dAng jagged line ay ang daily ratio para sa basket ng mga single stock. Ang smooth line naman ay ang 21-session average nito. Sa unang session na ipinapakita, Apr 1, ang daily print ay 1.04 kumpara sa smoothed na 0.81. Sa Jul 31, ang dalawang value ay 0.56 at 0.58. Sa loob ng 84 session, isang bahagi lamang ng distansiyang tinatahak ng raw series ang nalalakbay ng average. Iyan ang buong punto ng pagbanggit sa smoothed number.
Paano binibilang ng mga panel na ito
Ang contract type ay nagmumula mismo sa option symbol: ang letrang nasa unahan ng eight-digit strike code ay C para sa call at P para sa put. Mga contract lamang na may naiulat na volume para sa session ang isinasama sa bilang. Kaya ang strike na walang trade ay walang idinadagdag sa alinmang panig. Hinahati ng unang panel ang kabuuang put volume ng buwan sa kabuuang call volume ng buwan para sa bawat pangalan. Sa mga natitirang panel, kinakalkula muna ang isang ratio para sa bawat session, saka binubuod ang mga session na iyon. Tugma ito sa paraan ng pagbuo ng isang published moving average. Mga basket: SPY, QQQ at IWM para sa broad market side, at AAPL, MSFT, NVDA, TSLA at KO para sa single stock side. Makikita sa bawat panel ang eksaktong SQL na gumawa nito.
Mga Madalas Itanong
Paano kinakalkula ang put/call ratio?
Hatiin ang bilang ng put contracts sa bilang ng call contracts para sa parehong time window. Karamihan sa mga bersyong inilalathala ay gumagamit ng volume ng session. Kaya ang reading na 0.65 ay nangangahulugang may 65 puts na na-trade sa bawat 100 calls. Sa bersyong gumagamit ng open interest, contracts outstanding ang binibilang sa halip na mga na-trade na contracts, kaya ibang tanong ang sinasagot nito.
Mataas ba ang put/call ratio na lampas sa 1?
Nakadepende ito sa kategorya. Para sa single-stock basket sa mga panel sa itaas, nasa 0.76 ang 90th percentile ng daily readings. Kaya hindi pangkaraniwan ang mga print na lampas sa antas na iyon. Para sa broad-market ETFs at index options, kung saan nakatuon sa put side ang portfolio hedging, karaniwan ang readings na nasa paligid ng 1 o mas mataas pa.
Ano ang pagkakaiba ng volume at open interest put/call ratio?
Binibilang ng volume ang mga contract na na-trade sa session at nagre-reset tuwing umaga. Binibilang naman ng open interest ang mga contract na nananatiling open at nadadala mula sa isang araw papunta sa kasunod. Maaaring dumoble ang volume version sa loob ng isang session, samantalang ilang porsiyento lamang ang galaw ng open interest version. Kaya madalas magkaiba ang direksiyong ipinapakita ng dalawa sa parehong araw.
Aling put/call ratio ang karaniwang binabanggit ng financial press?
Karaniwan, ang Cboe equity put/call ratio o ang total put/call ratio. Kadalasan din itong inilalahad bilang 21-session moving average sa halip na raw daily print. Magkakaiba ang levels ng apat na Cboe categories. Kaya hindi maikukumpara sa anumang benchmark ang isang quoted figure kung walang nakatalang kategorya.
May kasamang SQL ang bawat panel sa page na ito na ginamit upang likhain ito. Dahil dito, maaaring suriin ang bawat bilang nang line by line. Para gamitin ang parehong arithmetic sa ibang name o mas mahabang window, hilingin ito sa plain English sa Strasmore terminal.