Put/Call Ratio کا حساب کیسے کیا جاتا ہے؟
Put/call ratio کا حساب traded puts کو traded calls سے تقسیم کر کے ہوتا ہے۔ Volume اور open interest کے فارمولے، index readings کے زیادہ ہونے اور 2026 میں معمول کی reading کو سمجھیں۔
put/call ratio کا حساب اسی مدت میں traded put contracts کی تعداد کو traded call contracts کی تعداد سے تقسیم کر کے کیا جاتا ہے۔ اگر ایک سیشن میں 250,000 puts اور 500,000 calls کی trading ہو، تو ratio 0.50 بنتا ہے۔ اس indicator کے بارے میں ہر بحث—volume بمقابلہ open interest اور equity بمقابلہ index—بالآخر اسی بات پر آتی ہے کہ اس تقسیم کے دونوں جانب کیا شمار کیا گیا۔ سادہ تعریف کے لیے put/call ratio کیا ہے دیکھیں۔ یہ صفحہ حساب پیش کرتا ہے۔
put/call ratio کا فارمولا، مرحلہ وار
اس فارمولے میں دو inputs اور ایک operation شامل ہیں: traded puts کی تعداد گنیں، traded calls کی تعداد گنیں، پھر پہلی تعداد کو دوسری پر تقسیم کریں۔ put ایک ایسا contract ہے جو اپنے holder کو expiry کے دن یا اس سے پہلے، fixed strike price پر underlying کے 100 shares فروخت کرنے کا حق دیتا ہے۔ call، fixed strike پر خریدنے کا حق دیتا ہے۔ Volume سے مراد وہ contracts ہیں جو session کے دوران ہاتھ بدلے۔ اگلے market open پر volume دوبارہ zero ہو جاتا ہے۔
اس count میں کسی چیز کو weight نہیں دیا جاتا۔ far out of the money weekly میں ایک lot کی گنتی اتنی ہی ہوتی ہے جتنی board کے سب سے زیادہ مصروف strike میں ایک lot کی۔ دونوں کو risk میں لگی رقم کے لحاظ سے بھی scale نہیں کیا جاتا۔ یہ ratio صرف contracts کی تعداد پر مبنی ہوتا ہے۔
نتیجے کو بدلنے والا فیصلہ یہ ہے کہ کن contracts کو count کیا جائے۔ ذیل کا panel آٹھ liquid names کے لیے ایک مکمل ماہ کے دوران یکساں arithmetic چلاتا ہے۔
ہر عدد کے پیچھے موجود درست SQL
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 DESCJuly 2026 کے دوران IWM نے ان آٹھ names میں سب سے زیادہ ratio ریکارڈ کیا، یعنی ہر call کے مقابلے میں 3.11 puts، جبکہ MSFT کا ratio سب سے کم رہا، یعنی 0.38۔ ایک ہی formula، ایک ہی ماہ، اور highest اور lowest name کے درمیان ایسا spread جو روزانہ کی اس معمولی تبدیلی سے کہیں زیادہ وسیع ہے جس کا عموماً ذکر کیا جاتا ہے۔ کسی ratio کو اس کی category بتائے بغیر پیش کیا جائے تو اس سے تقریباً کوئی معلومات حاصل نہیں ہوتی۔
حجم کی بنیاد یا open interest کی بنیاد
Numerator اور denominator میں دو مختلف counts استعمال ہو سکتے ہیں۔
Volume والا طریقہ متعلقہ window میں traded contracts گنتا ہے۔ یہ flow measure ہے، جو ہر session میں صفر سے شروع ہوتا ہے اور بتاتا ہے کہ آج traders نے کیا کیا۔ Market coverage میں شائع ہونے والا تقریباً ہر headline ratio یہی measure ہوتا ہے۔
Open interest والا طریقہ outstanding puts کو outstanding calls سے تقسیم کرتا ہے۔ Open interest سے مراد وہ contracts ہیں جو کھولے گئے ہوں اور ابھی close، exercise یا expire نہ ہوئے ہوں۔ یہ stock measure ہے؛ یعنی دن کی activity کے بجائے accumulated position۔ اس لیے یہ آہستہ تبدیل ہوتا ہے۔ اگر ایک session میں 30,000 puts دو موجودہ holders کے درمیان trade ہوں تو volume میں 30,000 کا اضافہ ہوگا، مگر open interest میں کوئی تبدیلی نہیں آئے گی۔ Options volume بمقابلہ open interest میں اس bookkeeping کی وضاحت کی گئی ہے۔
فرض کریں ایک hypothetical نام Tuesday کو 40,000 outstanding puts اور 50,000 outstanding calls کے ساتھ بند ہوتا ہے۔ اس کا open interest ratio 0.80 ہوگا۔ Wednesday کو 30,000 puts اور 10,000 calls trade ہوں تو volume ratio 3.00 بنے گا۔ دونوں numbers ایک ہی دن کی اسی option chain کو بیان کرتے ہیں، مگر ان میں تقریباً چار گنا فرق ہے، اور دونوں درست ہیں۔ Open interest ratios ہی max pain calculation کی بنیاد بھی بنتے ہیں، جس میں strikes کو traded contracts کے بجائے outstanding contracts کی تعداد کے مطابق weight کیا جاتا ہے۔
Flow measures میں تیزی سے اتار چڑھاؤ آتا ہے۔ ذیل میں اسی مہینے کے دوران ایک ETF اور ایک single stock کا روزانہ volume ratio دیا گیا ہے۔
ہر عدد کے پیچھے موجود درست SQL
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 dJul 1 کو SPY میں 0.49 کے مقابلے میں 1.1 print ہوا، جبکہ AAPL کے لیے اعداد Jul 31 تھے۔ 22 sessions تک روزانہ کے prints میں اتار چڑھاؤ آتا رہا، اور chart پر دونوں series مختلف levels پر رہیں۔ ان دونوں facts میں level gap زیادہ مفید ہے۔
2 اور 0.55.
Equity، index، ETP اور total: Cboe کے چار ratios
جسے عام طور پر "put/call ratio" کہا جاتا ہے، وہ Cboe کے روزانہ market statistics سے حاصل ہوتا ہے، جہاں اس ratio کی کئی اقسام شائع کی جاتی ہیں۔ Cboe کے مطابق ان کی categories یہ ہیں:
- Equity put/call ratio: انفرادی stocks پر options۔
- Index put/call ratio: indexes پر options، جن میں SPX اور VIX بھی شامل ہیں۔
- Exchange traded products put/call ratio: ETFs پر options، جن میں SPY، QQQ اور IWM شامل ہیں۔
- Total put/call ratio: تمام categories کا مجموعہ۔
ہر ratio کا حساب ایک ہی طریقے سے کیا جاتا ہے: متعلقہ category میں total puts کو total calls پر تقسیم کیا جاتا ہے۔ اس لیے readings میں فرق صرف اس بات سے پیدا ہوتا ہے کہ ہر bucket میں کیا شامل ہے۔ یہ buckets ایک دوسرے کے متبادل نہیں ہیں۔
Index options ایک ہی trade میں پورے portfolio کی hedging کے لیے standard instrument ہیں۔ وسیع stock portfolio رکھنے والا fund اس کے مقابلے میں index puts خریدتا ہے، جبکہ index calls خریدنے کی اس کے پاس عموماً کوئی مماثل وجہ نہیں ہوتی۔ اس طرح demand یک طرفہ رہتی ہے اور index category کے numerator میں مکمل طور پر شامل ہوتی ہے۔ اس کے برعکس single-stock flow میں انفرادی names پر call buying volume کا بڑا اور مستقل حصہ ہوتی ہے۔ ساختی طور پر دونوں categories کی levels مختلف رہتی ہیں۔ اس indicator میں سب سے عام غلطی یہی ہے کہ ایک category کی reading کو دوسری category کے benchmark کے مقابلے میں پرکھا جائے۔
Broad market ETFs بھی index options جیسا hedging کردار ادا کرتے ہیں، لیکن انہیں exchange traded products category میں شمار کیا جاتا ہے۔ ذیل کا panel اس تقسیم کے دونوں حصوں کے لیے ماہانہ median دکھاتا ہے۔
ہر عدد کے پیچھے موجود درست SQL
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 monthیہ panel Aug 2025 سے Jul 2026 تک کا عرصہ دکھاتا ہے۔ دونوں سروں پر ETF basket کا median daily ratio 1.0 کے قریب یا اس سے اوپر رہا: پہلے مہینے میں 1.52 اور آخری مہینے میں 1.49۔ Single-stock basket دونوں سروں پر 1.0 سے نیچے رہا، یعنی بالترتیب 0.6 اور 0.56، اور chart کے تمام 12 مہینوں میں بھی اسی سطح سے نیچے رہا۔ یہی مستقل فرق ہے جس کی وجہ سے benchmark کا مطلب واضح کرنے کے لیے اس کی category بتانا ضروری ہے۔
عام put/call ratio کس حد کو سمجھا جاتا ہے
Normal ایک range ہے، اور یہ range indicator کے بجائے category سے متعلق ہوتی ہے۔ ذیل کا panel گزشتہ twelve months کے ہر session کو شامل کرتا ہے اور ہر basket کے لیے روزانہ ratio کا median رپورٹ کرتا ہے، جبکہ اس کے گرد 10th اور 90th percentile کی حدود بھی دکھاتا ہے۔
ہر عدد کے پیچھے موجود درست SQL
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.1Single stock basket میں median session 0.58 رہا۔ 10th percentile پر یہ 0.45 اور 90th percentile پر 0.76 تھا۔ Broad market ETF basket میں پوری distribution نسبتاً بلند رہی: median 1.54 تھا، جبکہ حدود 1.25 اور 1.86 پر تھیں۔
تو کیا 1.20 بلند ہے؟ Single stock basket کے مقابلے میں 1.20 کا print 0.76 کے 90th percentile سے اوپر ہے، اس لیے یہ غیر معمولی ہے۔ ETF basket کے مقابلے میں یہ معمول کی سطح کے قریب ہے۔ Index category کے مقابلے میں، جہاں اوپر بیان کردہ hedging flow مرتکز ہوتا ہے، اسی figure کا جائزہ ایک بار پھر مختلف levels کے مقابلے میں لینا ہوگا۔ ایک ہی number ہے، لیکن interpretation شروع ہونے سے پہلے category فیصلہ طے کر دیتی ہے۔
یہ ranges بھی وقت کے ساتھ بدلتی رہتی ہیں۔ گزشتہ twelve months کے دوران calculate کیے گئے percentiles اسی مدت کی عکاسی کرتے ہیں۔ اسی طرح ایک دہائی قبل لکھے گئے article سے لی گئی benchmark range ایسے market کی نمائندگی کرتی ہے جس میں contract mix مختلف تھا اور تقریباً zero day expiry trading موجود نہیں تھی۔ کسی reading کو high یا low قرار دینے کا واحد درست طریقہ یہ ہے کہ percentiles کو حالیہ window کے دوران دوبارہ calculate کیا جائے۔
Interpretation، calculation سے الگ کام ہے۔ کچھ لوگ high reading کو bearish positioning سمجھتے ہیں، جبکہ contrarians اسے crowded hedge کے طور پر دیکھتے ہیں۔ کیا high put/call ratio bullish ہوتا ہے، اس سوال کا درست جائزہ اسی بحث کو الگ سے واضح کرتا ہے۔
21 روزہ moving average کیوں
ایک session کا ratio شور زدہ سلسلے کا چھوٹا سا sample ہوتا ہے، اس لیے شائع کیا جانے والا version عموماً smooth کیا جاتا ہے۔ عام convention 21 session کا moving average ہے، جو تقریباً ایک trading month بنتا ہے: آخری 21 روزانہ ratios کو جمع کریں، 21 سے تقسیم کریں، پھر window کو ایک session آگے بڑھا دیں۔ دس اور پچاس session کے versions بھی استعمال ہوتے ہیں۔ منتخب کی گئی مدت یہ طے کرتی ہے کہ کسی ایک دن کا spike کتنا برقرار رہے گا۔
دو تفصیلات جاننا اہم ہے۔ 21 روزانہ ratios کا average لینا اس حساب کے برابر نہیں کہ ایک ماہ کے put volume کو ایک ماہ کے call volume سے تقسیم کیا جائے۔ پہلے طریقے میں ہر session کو یکساں وزن ملتا ہے، جبکہ دوسرے میں زیادہ مصروف sessions کا وزن زیادہ ہوتا ہے۔ دوسری بات یہ کہ extreme level پر موجود smoothed reading ایک ماہ کے sessions کے دوران تیار ہوئی ہوتی ہے، اس لیے وہ extreme level سے بھی آہستہ آہستہ نکلتی ہے۔
ہر عدد کے پیچھے موجود درست SQL
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 dدندانے دار لکیر single stock basket کا روزانہ ratio دکھاتی ہے، جبکہ ہموار لکیر اس کا 21 session average ہے۔ دکھائے گئے پہلے session، Apr 1، میں daily print 1.04 تھا، جبکہ smoothed reading 0.81 تھی۔ Jul 31 پر دونوں readings بالترتیب 0.56 اور 0.58 تھیں۔ 84 sessions کے دوران average اتنا فاصلہ طے کرتا ہے جو raw series کے طے کردہ فاصلے کا صرف ایک حصہ ہے۔ یہی smoothed number بیان کرنے کا بنیادی مقصد ہے۔
یہ panels کیسے شمار کرتے ہیں
Contract type خود option symbol سے معلوم ہوتا ہے: آٹھ ہندسوں والے strike code سے پہلے موجود حرف call کے لیے C اور put کے لیے P ہوتا ہے۔ صرف وہ contracts count میں شامل ہوتے ہیں جن کا اس session کے لیے volume report ہوا ہو۔ اس لیے جو strike کبھی trade نہ ہوا ہو، وہ کسی بھی side میں کچھ شامل نہیں کرتا۔ پہلا panel ہر name کے لیے ماہانہ total put volume کو ماہانہ total call volume سے تقسیم کرتا ہے۔ باقی panels پہلے ہر session کے لیے ایک ratio calculate کرتے ہیں، پھر ان sessions کا خلاصہ بناتے ہیں۔ یہی طریقہ published moving average کی تیاری سے مطابقت رکھتا ہے۔ Baskets میں broad market side پر SPY، QQQ اور IWM، جبکہ single stock side پر AAPL، MSFT، NVDA، TSLA اور KO شامل ہیں۔ ہر panel میں وہ exact SQL موجود ہے جس سے اسے تیار کیا گیا۔
سوالاتِ متداول
put/call ratio کا حساب کیسے کیا جاتا ہے؟
اسی مدت کے دوران put contracts کی تعداد کو call contracts کی تعداد سے تقسیم کیا جاتا ہے۔ شائع شدہ زیادہ تر versions میں session کا volume استعمال ہوتا ہے، اس لیے 0.65 کا مطلب ہے کہ ہر 100 calls کے مقابلے میں 65 puts trade ہوئے۔ open interest version میں trade ہونے والے contracts کے بجائے زیرِ التوا contracts شمار کیے جاتے ہیں، اس لیے یہ ایک مختلف سوال کا جواب دیتا ہے۔
کیا 1 سے زیادہ put/call ratio بلند سمجھا جاتا ہے؟
یہ category پر منحصر ہے۔ اوپر دیے گئے panels میں single-stock basket کے لیے روزانہ readings کا 90th percentile 0.76 ہے، اس لیے اس سطح سے اوپر prints غیر معمولی ہیں۔ broad market ETFs اور index options میں portfolio hedging زیادہ تر put side پر مرکوز ہوتی ہے، اس لیے 1 کے آس پاس یا اس سے اوپر readings معمول کی بات ہیں۔
volume اور open interest put/call ratio میں کیا فرق ہے؟
Volume ان contracts کو شمار کرتا ہے جن میں session کے دوران trade ہوا، اور ہر صبح دوبارہ صفر سے شروع ہوتا ہے۔ Open interest ان contracts کو شمار کرتا ہے جو کھلے رہتے ہیں اور روز بہ روز carry over ہوتے ہیں۔ volume version ایک ہی session میں دوگنا ہو سکتا ہے، جبکہ open interest version میں چند فیصد تبدیلی آ سکتی ہے۔ اسی لیے ایک ہی دن دونوں مختلف سمتوں کی نشاندہی کر سکتے ہیں۔
financial press کس put/call ratio کا حوالہ دیتی ہے؟
عموماً Cboe equity put/call ratio یا total put/call ratio کا، اور زیادہ تر raw daily print کے بجائے 21-session moving average کی صورت میں۔ Cboe کی چاروں categories مختلف levels پر trade کرتی ہیں، اس لیے category کے بغیر دی گئی quoted figure کا کسی benchmark سے موازنہ نہیں کیا جا سکتا۔
اس صفحے کے ہر panel کے ساتھ اسے تیار کرنے والی SQL بھی موجود ہے، اس لیے ہر count کو line by line check کیا جا سکتا ہے۔ کسی دوسرے نام یا طویل مدت پر یہی arithmetic چلانے کے لیے Strasmore terminal پر plain English میں درخواست دیں۔