Je, Put/Call Ratio ya Juu Ni Bullish?
Wanaofuata mtazamo wa contrarian huita put/call ratio ya juu ishara ya bullish. Tazama percentile bands za equity na index options, na kilichofuata baada ya viwango vya kupita kiasi.
Uwiano wa juu wa put/call ni ishara ya kawaida ya bullish kwa mtazamo wa contrarian: ununuzi mkubwa wa put kuliko kawaida huchukuliwa kuwa ishara kwamba kundi la wawekezaji tayari limejiandaa kwa kushuka. Tatizo ni kwamba tafsiri hiyo si rahisi kuitumia. “Juu” haina thamani iliyowekwa, na uwiano wa 1.15 kwenye skrini yako unaweza kuwa kiwango cha kupita kiasi katika options za hisa moja, lakini ukawa uwiano wa kawaida katika siku ya biashara ya bidhaa za fahirisi.
Swali hili linahitaji usambazaji wa marejeo. Ukurasa huu unatoa usambazaji huo kwa makundi yote mawili, kisha hupima kilichofuata baada ya uwiano kufikia viwango vya juu. Maelezo ya uwiano wa put/call yanaeleza jinsi uwiano huo unavyokokotolewa, na kila kitu hapa chini kinaanzia kwenye ufafanuzi huo.
Kuna mambo mawili kuhusu kipimo hiki. Kila uwiano hapa huhesabu mikataba iliyofanyiwa biashara siku hiyo, hivyo ni uwiano wa volume; open interest huhesabu nafasi ambazo bado ziko wazi na iko katika kiwango tofauti (volume dhidi ya open interest inaeleza tofauti hizo). Nambari pia zinatokana na kundi maalumu la bidhaa: majina kumi ya hisa za kampuni moja yanayojulikana kwa wawekezaji wa kawaida dhidi ya ETF tatu za soko pana, badala ya data ya soko zima. Kwa hiyo, zingatia muundo wa usambazaji huo badala ya tarakimu ya mwisho.
Ni nini kinachochukuliwa kuwa put/call ratio ya juu?
Percentile hujibu swali ambalo kiwango hakiwezi kujibu. Mkunjo ulio hapa chini unajumuisha kila session kuanzia Januari 2022 hadi Julai 2026, ikiwa na ratio moja kwa kila session kwa kila book.
SQL halisi nyuma ya kila namba
WITH book_days AS (
SELECT date AS day,
if(underlying_symbol IN ('SPY', 'QQQ', 'IWM'), 'index_etf', 'equity') AS book,
sumIf(volume, upper(substring(ticker, length(ticker) - 8, 1)) = 'P') AS put_volume,
sumIf(volume, upper(substring(ticker, length(ticker) - 8, 1)) = 'C') AS call_volume
FROM global_markets.options_greeks
WHERE date >= toDate('2022-01-01')
AND date <= toDate('2026-07-31')
AND volume > 0
AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'MSFT', 'NVDA', 'AMZN',
'META', 'TSLA', 'GOOGL', 'JPM', 'KO', 'XOM')
GROUP BY day, book
HAVING call_volume > 0
),
paired AS (
SELECT day,
toFloat64(sumIf(put_volume, book = 'equity'))
/ toFloat64(sumIf(call_volume, book = 'equity')) AS equity_pcr,
toFloat64(sumIf(put_volume, book = 'index_etf'))
/ toFloat64(sumIf(call_volume, book = 'index_etf')) AS index_pcr
FROM book_days
GROUP BY day
HAVING sumIf(call_volume, book = 'equity') > 0
AND sumIf(call_volume, book = 'index_etf') > 0
),
curves AS (
SELECT arrayMap(v -> round(v, 2),
quantilesDeterministic(0.05, 0.10, 0.25, 0.50, 0.75, 0.90, 0.95, 0.99)
(equity_pcr, cityHash64(day))) AS eq,
arrayMap(v -> round(v, 2),
quantilesDeterministic(0.05, 0.10, 0.25, 0.50, 0.75, 0.90, 0.95, 0.99)
(index_pcr, cityHash64(day))) AS idx
FROM paired
)
SELECT z.1 AS percentile,
z.2 AS equity_pcr,
z.3 AS index_etf_pcr
FROM (
SELECT arrayJoin(arrayZip(['p05', 'p10', 'p25', 'p50', 'p75', 'p90', 'p95', 'p99'], eq, idx)) AS z
FROM curves
)Kwenye kikapu cha hisa za kampuni moja moja, session ya wastani ilikuwa na 0.67 puts kwa kila call. Decile ya juu ya sessions ilianza kwenye 0.89, na asilimia moja ya sessions zilizokuwa na viwango vya juu zaidi ilizidi 1.34. Upande wa viwango vya chini una umuhimu huo huo katika kuweka kipimo: session moja kati ya ishirini iliishia kwenye 0.48 au chini ya hapo.
Safu ya ETF ina distribution tofauti katika kila hatua ya curve. Session yake ya wastani ilisoma 1.45, juu ya mstari wa two-to-one ambao median ya hisa za kampuni moja moja iko chini yake kwa kiasi kikubwa, na decile yake ya juu ilianza kwenye 1.77. Ratio inayotajwa bila kutaja book yake haina maana ya kutosha. Print ya 1.15 inamaanisha mambo mawili tofauti kulingana na safu ilikotoka.
Kwa nini ratio ya indexi iliyo juu ya 1 ni ya kawaida, lakini ratio ya hisa iliyo juu ya 1 si ya kawaida
Gawanya volume hiyo hiyo kulingana na underlying, na viwango vinatengana wazi.
SQL halisi nyuma ya kila namba
WITH symbol_days AS (
SELECT underlying_symbol AS symbol,
date AS day,
sumIf(volume, upper(substring(ticker, length(ticker) - 8, 1)) = 'P') AS put_volume,
sumIf(volume, upper(substring(ticker, length(ticker) - 8, 1)) = 'C') AS call_volume
FROM global_markets.options_greeks
WHERE date >= toDate('2026-01-01')
AND date <= toDate('2026-07-31')
AND volume > 0
AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'MSFT', 'NVDA', 'AMZN',
'META', 'TSLA', 'GOOGL', 'JPM', 'KO', 'XOM')
GROUP BY symbol, day
HAVING call_volume > 0
)
SELECT symbol,
round(toFloat64(sum(put_volume)) / toFloat64(sum(call_volume)), 2) AS put_call_ratio,
round(100 * countIf(put_volume > call_volume) / count(), 1) AS above_one_pct,
count() AS observations
FROM symbol_days
GROUP BY symbol
ORDER BY put_call_ratio DESCKatika miezi saba ya kwanza ya 2026, IWM ilikuwa juu ya jedwali ikiwa na puts 2.73 kwa kila call, na kumaliza juu ya moja katika 98.6% ya vipindi vyake 144. Mwishoni mwa jedwali, XOM iliuzwa kwa 0.38, na ilikuwa juu ya moja katika 2.8% ya vipindi.
Pengo hilo ni la kimuundo. ETF options za soko pana ndizo hutumika katika hedging ya portfolio: manager anayeshikilia positions mia mbili hununua index puts badala ya puts kwenye kila holding, na mtiririko huo hauna call trade inayolingana upande wa pili. Volume ya options za hisa moja inaelekea upande mwingine, yaani calls zinazonunuliwa kwa matarajio ya kupanda kwa bei na calls zinazoandikwa dhidi ya hisa ambazo tayari zinamilikiwa. Ratio ya “jumla” huchanganya vitabu vyote viwili, hivyo huwa kati ya viwango hivyo na hubadilika kutokana na mchanganyiko wa bidhaa wa siku husika kama inavyobadilika kutokana na sentiment.
Kuna mabadiliko mengine ya kiwango yanayofaa kufahamika. Volume ya index na ETF sasa ina sehemu kubwa ya expiries za siku hiyo hiyo (options za 0DTE), kundi ambalo halikuuzwa kwa kiwango chochote kinachokaribia hiki wakati thresholds zinazojulikana ziliandikwa. Viwango vya zamani haviwezi kuhamishwa moja kwa moja kwenye tape yenye muundo tofauti.
Je, uwiano wa put/call wa juu unaashiria kupanda? Nini kilifuata viwango vilivyokithiri
Hoja ya kinyume inaweza kupimwa. Panga kila kikao katika sehemu tano kwa kutumia uwiano wa hisa wa siku hiyo, kisha pima jinsi kifuatiliaji cha S&P 500 kilivyobadilika katika vikao vitano na 20 vilivyofuata.
SQL halisi nyuma ya kila namba
WITH raw AS (
SELECT date AS day,
sumIf(volume, upper(substring(ticker, length(ticker) - 8, 1)) = 'P') AS put_volume,
sumIf(volume, upper(substring(ticker, length(ticker) - 8, 1)) = 'C') AS call_volume
FROM global_markets.options_greeks
WHERE date >= toDate('2022-01-01')
AND date <= toDate('2026-07-31')
AND volume > 0
AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'META',
'TSLA', 'GOOGL', 'JPM', 'KO', 'XOM')
GROUP BY day
HAVING call_volume > 0
),
equity_pcr AS (
SELECT day, toFloat64(put_volume) / toFloat64(call_volume) AS pcr
FROM raw
),
spy_daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
toFloat64(argMax(close, window_start)) AS close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2022-01-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-08-01')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY day
),
forward AS (
SELECT day,
close,
any(close) OVER (ORDER BY day ASC ROWS BETWEEN 5 FOLLOWING AND 5 FOLLOWING) AS close_5,
any(close) OVER (ORDER BY day ASC ROWS BETWEEN 20 FOLLOWING AND 20 FOLLOWING) AS close_20
FROM spy_daily
),
joined AS (
SELECT p.day AS day,
p.pcr AS pcr,
100 * (f.close_5 / f.close - 1) AS fwd_5d_pct,
100 * (f.close_20 / f.close - 1) AS fwd_20d_pct
FROM equity_pcr AS p
INNER JOIN forward AS f ON p.day = f.day
WHERE f.close_5 > 0 AND f.close_20 > 0
),
cuts AS (
SELECT quantilesDeterministic(0.2, 0.4, 0.6, 0.8)(pcr, cityHash64(day)) AS q
FROM joined
)
SELECT multiIf(pcr < q[1], 'lowest fifth',
pcr < q[2], 'second fifth',
pcr < q[3], 'middle fifth',
pcr < q[4], 'fourth fifth',
'highest fifth') AS pcr_band,
count() AS observations,
round(min(pcr), 2) AS band_floor_ratio,
round(quantileDeterministic(0.5)(fwd_5d_pct, cityHash64(day)), 2) AS fwd_5d_median_pct,
round(quantileDeterministic(0.5)(fwd_20d_pct, cityHash64(day)), 2) AS fwd_20d_median_pct,
round(quantileDeterministic(0.25)(fwd_20d_pct, cityHash64(day)), 2) AS fwd_20d_p25_pct,
round(quantileDeterministic(0.75)(fwd_20d_pct, cityHash64(day)), 2) AS fwd_20d_p75_pct
FROM joined CROSS JOIN cuts
GROUP BY pcr_band
ORDER BY band_floor_ratio ASCSehemu ya tano yenye vikao tulivu zaidi inaanzia 0.34, na sehemu ya tano yenye shughuli nyingi zaidi inaanzia 0.81. Hivyo, kundi la juu linajumuisha kila usomaji ambao mwekezaji wa kinyume angeuita uliopindukia. Katika vikao hivyo 226, mabadiliko ya wastani ya vikao 20 yalikuwa 3%, ikilinganishwa na 0.91% baada ya sehemu ya tano tulivu zaidi. Baada ya vikao vitano, makundi hayo mawili yalisomeka 0.82% na 0.3%.
Wastani huficha sehemu muhimu. Ndani ya sehemu ya tano ya juu, nusu ya kati ya matokeo ya vikao 20 ilikuwa kati ya -1.82% na 5.71%. Ndani ya sehemu ya tano tulivu zaidi, nusu ya kati ilikuwa kati ya -0.83% na 2.67%. Masafa hayo mawili yanaingiliana kwa kiwango kikubwa. Kundi ambalo kikao kinaangukia hubadilisha kitovu cha mgawanyo, lakini hupunguza kwa kiwango kidogo tu masafa yanayozunguka kitovu hicho. Hilo ndilo jambo ambalo kanuni ya jumla huliacha.
Kuna tahadhari kuhusu uzito wa data. Kipindi cha Januari 2022 hadi Julai 2026 kinajumuisha soko moja la kushuka na ahueni iliyofuata, kikiwa na takribani 226 vikao kwa kila kundi. Hii ni sampuli halisi, lakini inawakilisha kipindi kimoja tu cha historia ya soko.
Je, usomaji uliokithiri hukusanyika karibu na viwango vya chini vya soko?
Hukusanyika katika miezi ya kushuka, ambalo ni dai tofauti. Panga kila mwezi kuanzia 2022 kulingana na jinsi tracker ilivyobadilika ndani ya mwezi huo, kisha hesabu ni usomaji mingapi wa put/call wa decile ya juu uliangukia katika kila kundi.
SQL halisi nyuma ya kila namba
WITH raw AS (
SELECT date AS day,
sumIf(volume, upper(substring(ticker, length(ticker) - 8, 1)) = 'P') AS put_volume,
sumIf(volume, upper(substring(ticker, length(ticker) - 8, 1)) = 'C') AS call_volume
FROM global_markets.options_greeks
WHERE date >= toDate('2022-01-01')
AND date <= toDate('2026-07-31')
AND volume > 0
AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'META',
'TSLA', 'GOOGL', 'JPM', 'KO', 'XOM')
GROUP BY day
HAVING call_volume > 0
),
equity_pcr AS (
SELECT day, toFloat64(put_volume) / toFloat64(call_volume) AS pcr
FROM raw
),
cut AS (
SELECT quantileDeterministic(0.90)(pcr, cityHash64(day)) AS p90
FROM equity_pcr
),
by_month AS (
SELECT toStartOfMonth(day) AS month_start,
countIf(pcr >= cut.p90) AS extreme_reads,
quantileDeterministic(0.5)(pcr, cityHash64(day)) AS median_pcr
FROM equity_pcr CROSS JOIN cut
GROUP BY month_start
),
spy_daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
toFloat64(argMax(close, window_start)) AS close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2022-01-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY day
),
spy_month AS (
SELECT toStartOfMonth(day) AS month_start,
100 * (argMax(close, day) / argMin(close, day) - 1) AS move_pct
FROM spy_daily
GROUP BY month_start
)
SELECT multiIf(s.move_pct <= -3, 'index down 3% or more',
s.move_pct < 0, 'index down under 3%',
s.move_pct < 3, 'index up under 3%',
'index up 3% or more') AS index_move_bucket,
count() AS observations,
round(avg(m.extreme_reads), 1) AS top_decile_reads_avg,
round(quantileDeterministic(0.5)(m.median_pcr, cityHash64(m.month_start)), 2) AS typical_pcr_ratio
FROM by_month AS m
INNER JOIN spy_month AS s ON m.month_start = s.month_start
GROUP BY index_move_bucket
ORDER BY min(s.move_pct) ASCMiezi ambayo tracker ilimaliza ikiwa chini kwa 3% au zaidi ilikuwa na wastani wa 4.2 wa usomaji wa decile ya juu kwa kila mwezi, ikilinganishwa na 1.9 katika miezi ambayo ilipanda kwa 3% au zaidi. Median ya usomaji wa kila siku wa kila kundi iko katika safu ya mwisho, ikiwa 0.75 kwa kundi lililofanya vibaya zaidi na 0.62 kwa kundi lililofanya vizuri zaidi. Ncha mbili za jedwali zina miezi 12 na 22.
Usomaji uliokithiri wa put/call na bei zinazoshuka hujitokeza pamoja. Huo ni utokeaji wa pamoja, na takwimu za mbele katika sehemu iliyotangulia ndizo zinazoonyesha thamani yake. Ratio hiyo hupima mkanda wa biashara wa siku hiyo siku hiyo, kwa hiyo miinuko yake hujitokeza ndani ya kushuka badala ya kutangulia kushuka huko. Kiwango cha chini ni lebo inayowekwa baadaye.
Kusoma kiwango dhidi ya usambazaji wa data
Tabia mbili zinajitokeza kutokana na nambari zilizo hapo juu.
Kwanza, linganisha vitu vinavyolingana. Kiwango kina maana tu kinapolinganishwa na historia ya kitabu hicho hicho katika kipindi kinacholingana. Hilo ndilo jedwali la percentile linakaloonyesha, tofauti na kizingiti kinachokumbukwa bila kuangalia data.
Pili, fuatilia denominator. Uwiano hushuka wakati volume ya call inapoongezeka, hata kama ununuzi wa put haubadiliki. Kushuka kwa uwiano na kuongezeka kwake kunaweza kusababishwa na upande mmoja tu wa sehemu hiyo kusogea. Kwa hiyo, kusoma volume ya put na volume ya call kando kunafanya hesabu ionekane wazi.
Nidhamu hiyo hiyo inatumika kwa kila kipimo cha sentiment kinachotajwa kama nambari pekee. VIX na print ya implied volatility ya 30% haviwezi kutafsiriwa bila usambazaji wao wenyewe. Pia, kanuni za sentiment za contrarian huaminika kwa kuzingatia data tu pale kiwango cha rejea kinapopimwa badala ya kudhaniwa.
Maswali Yanayoulizwa Mara kwa Mara
Je, put/call ratio ya juu ni ishara ya kupanda kwa soko?
Tafsiri ya kinyume huchukulia ununuzi mkubwa wa put kama ishara kwamba kundi kubwa la wawekezaji tayari limejiweka kwa matarajio ya kushuka. Ikipimwa dhidi ya kikapu cha hisa moja kilicho hapo juu, vipindi vilivyokuwa katika theluthi ya juu ya tano ya vipimo vilifuatiwa na mabadiliko ya wastani ya vipindi 20 katika S&P 500 tracker ya 3%, ikilinganishwa na 0.91% baada ya theluthi ya tano iliyokuwa tulivu zaidi. Nusu ya kati ya matokeo ya theluthi ya juu ya tano ilianzia -1.82% hadi 5.71%.
Put/call ratio ya kawaida ni ipi?
Inategemea kabisa ni options zipi zinazohesabiwa. Katika kikapu cha majina kumi ya hisa moja yanayofuatiliwa sana, kipimo cha wastani kwa kipindi cha 2022 hadi Julai 2026 kilikuwa 0.67 puts kwa kila call. Katika ETFs tatu za soko pana kwa vipindi hivyo hivyo, kipimo cha wastani kilikuwa 1.45.
Kwa nini put/call ratio ya index ni kubwa kuliko put/call ratio ya hisa?
Options za index pana na ETFs ndizo njia za kawaida za kuweka kinga kwenye kwingineko. Hedger anayenunua index puts hana trade ya call inayolingana upande wa pili. Kiasi cha biashara katika hisa moja huegemea kwenye calls zinazonunuliwa kwa matarajio ya kupanda na calls zinazoandikwa dhidi ya hisa ambazo tayari zinamilikiwa. Hali hii huifanya ratio ya kitabu hicho kuwa ndogo.
Je, put/call ratio inafaa kwa kuweka muda wa kuingia au kutoka kwenye soko?
Kipimo kilicho hapo juu kinaonyesha mgawanyo wa yaliyofuata kila theluthi ya tano ya vipimo. Tofauti za matokeo ndani ya kundi lolote ni kubwa zaidi kuliko tofauti kati ya vipimo vya wastani vya makundi hayo. Vipimo vilivyo katika decile ya juu pia hujikita katika miezi ambayo index ilimaliza ikiwa chini, kwa kiwango cha 4.2 kwa mwezi katika kundi baya zaidi.
Kuna tofauti gani kati ya put/call ratio ya volume na ile ya open interest?
Ratio ya volume huhesabu mikataba iliyofanyiwa biashara katika kipindi fulani. Kwa hiyo huanza upya kila siku na hubadilika haraka. Ratio ya open interest huhesabu nafasi ambazo bado hazijafungwa. Hivyo hubadilika polepole na huwa katika kiwango chake yenyewe. Vipimo hivi viwili havibadilishani. Kizingiti kilichochukuliwa kutoka kwenye kimoja kinaweza kutafsiri vibaya kingine.
Jinsi namba hizi zinavyoundwa
- Chanzo ni safu moja kwa kila mkataba wa option katika kila kipindi. Kila safu hubeba volume ya biashara ya mkataba huo katika kipindi husika. Puts na calls hutenganishwa kwa kutumia msimbo wa mkataba wa OCC. Herufi nane za mwisho ni strike, na herufi iliyo kabla yake ni C kwa call na P kwa put. Fungua SQL iliyo chini ya paneli yoyote ili kuona jedwali na filters kamili.
- Kila ratio kwenye ukurasa huu ni ratio ya volume. Open interest haitumiki katika hesabu. Kwa hiyo, hakuna kipimo hapa ambacho ni ratio ya open interest.
- Hakuna filter ya ubora wa implied volatility inayotumika. Mikataba huingia kwenye hesabu kwa kutegemea volume ya biashara pekee, kwa sababu paneli hizi huhesabu shughuli za biashara badala ya kupima volatility.
- Kikapu hiki kinajumuisha AAPL, MSFT, NVDA, AMZN, META, TSLA, GOOGL, JPM, KO na XOM kwa kitabu cha hisa moja. Pia kinajumuisha SPY, QQQ na IWM kwa kitabu cha index-ETF. Ratios zinazochapishwa na exchanges hufunika soko lote na hujumuisha bidhaa za index kama SPX. Kwa hiyo, viwango vyake huwa tofauti.
- Bei za index ni print ya mwisho ya kikao cha kawaida cha biashara cha kila siku kwa S&P 500 tracker. Returns za baadaye hazijumuishi vipindi 20 vya mwisho vya sampuli, kwa sababu havina vipindi 20 vya baadaye. Mabadiliko ya kila mwezi hupimwa kutoka kufungwa kwa kipindi cha kwanza hadi kufungwa kwa kipindi cha mwisho ndani ya mwezi huo.
Kila paneli iliyo hapo juu hupanuka na kuonyesha SQL iliyo nyuma yake. Queries zilezile za percentile zinaweza kutumika dhidi ya underlying yoyote unayofuatilia kwenye terminal ya Strasmore.