نحوه محاسبه نسبت Put/Call در بازارهای مالی
راهنمای کامل محاسبه نسبت Put/Call با استفاده از حجم معاملات و سود باز. بررسی تفاوت شاخصها با سهام و تحلیل مقادیر استاندارد این نسبت در سال 2026 برای معاملهگران.
نسبت Put/Call چیست
نسبت Put/Call از تقسیم تعداد قراردادهای Put معاملهشده بر تعداد قراردادهای Call معاملهشده در یک بازه زمانی مشخص محاسبه میشود. اگر در یک جلسه معاملاتی 250 هزار قرارداد Put و 500 هزار قرارداد Call معامله شود، این نسبت برابر با 0.50 خواهد بود. تمام مباحث پیرامون این شاخص، از جمله حجم معاملات در برابر سود باز (Open Interest) و سهام در برابر شاخص، به نحوه شمارش در هر یک از طرفین این تقسیم بازمیگردد. برای تعریف ساده، از اینکه نسبت Put/Call چیست شروع کنید. این صفحه محاسبات مربوطه را انجام میدهد.
فرمول نسبت Put/Call، گامبهگام
این فرمول دارای دو ورودی و یک عملیات است: تعداد قراردادهای Put معاملهشده را بشمارید، تعداد قراردادهای Call معاملهشده را بشمارید و عدد اول را بر عدد دوم تقسیم کنید. قرارداد Put قراردادی است که به مالک خود حق فروش 100 سهم از دارایی پایه را با یک strike price ثابت در تاریخ سررسید یا پیش از آن میدهد. قرارداد Call حق خرید با یک strike price ثابت را اعطا میکند. حجم معاملات، تعداد قراردادهایی را که در طول جلسه معاملاتی دستبهدست شدهاند محاسبه میکند و در شروع جلسه بعدی به صفر بازمیگردد.
هیچ وزنی در این شمارش لحاظ نمیشود. یک لات در یک قرارداد هفتگی که بسیار دور از قیمت (out of the money) است، به اندازه یک لات در پرمعاملهترین strike موجود در تابلو ارزش دارد و هیچکدام بر اساس سرمایه در معرض ریسک مقیاسبندی نمیشوند. این نسبت صرفاً شمارش قراردادهاست.
انتخابی که نتیجه را تغییر میدهد، این است که کدام قراردادها شمارش شوند. جدول زیر محاسبات یکسانی را برای هشت نماد نقدشونده در طول یک ماه کامل اجرا میکند.
کد دقیق 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 DESCدر طول ژوئیه 2026، IWM بالاترین نسبت را در میان این هشت نماد با 3.11 قرارداد Put به ازای هر Call داشت و MSFT با 0.38 پایینترین نسبت را ثبت کرد. یک فرمول، یک ماه، و یک spread میان بالاترین و پایینترین نماد که بسیار گستردهتر از نوسانات روزمرهای است که درباره آن مطلب نوشته میشود. نسبتی که بدون ذکر دستهبندی آن نقل شود، تقریباً فاقد اطلاعات است.
مبتنی بر حجم یا مبتنی بر سود باز (Open Interest)
دو شمارش متفاوت میتوانند صورت و مخرج کسر را تشکیل دهند.
نسخه مبتنی بر حجم، تعداد قراردادهای معاملهشده در بازه زمانی مورد نظر را میشمارد. این یک معیار جریان (flow) است که در هر جلسه معاملاتی از صفر شروع میشود و نشاندهنده فعالیت معاملهگران در همان روز است. هر نسبت شاخصی که در گزارشهای خبری بازار مشاهده میکنید، از این نوع است.
نسخه مبتنی بر سود باز (Open Interest)، تعداد اختیار فروشهای معوق را بر تعداد اختیار خریدهای معوق تقسیم میکند؛ جایی که سود باز به تعداد قراردادهایی گفته میشود که باز شده و هنوز بسته، اعمال یا منقضی نشدهاند. این یک معیار موجودی (stock) است که موقعیتهای انباشتهشده را نشان میدهد، نه فعالیتهای روزانه، و تغییرات آن بهکندی صورت میگیرد. در جلسهای که 30,000 اختیار فروش بین دو دارنده فعلی دستبهدست میشود، 30,000 واحد به حجم معاملات اضافه میشود اما سود باز تغییری نمیکند. حجم معاملات اختیار در برابر سود باز به جزئیات این حسابداری میپردازد.
یک نماد فرضی را در نظر بگیرید که روز سهشنبه را با 40,000 اختیار فروش و 50,000 اختیار خرید معوق به پایان میرساند؛ یعنی نسبت سود باز 0.80. در روز چهارشنبه، 30,000 اختیار فروش و 10,000 اختیار خرید معامله میشود: یعنی نسبت حجم 3.00. هر دو عدد توصیفکننده یک زنجیره اختیار (option chain) در یک روز واحد هستند، با وجود اینکه نزدیک به چهار برابر با هم اختلاف دارند، هر دو صحیح هستند. نسبتهای سود باز همچنین زیربنای محاسبه حداکثر درد (max pain) هستند که در آن قیمتهای اعمال (strike prices) بر اساس قراردادهای معوق وزندهی میشوند، نه بر اساس قراردادهای معاملهشده.
معیارهای جریان، نوسانی هستند. در ادامه، نسبت حجم روزانه برای یک ETF و یک تکسهم در طول یک ماه مشابه نمایش داده شده است.
کد دقیق 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 dدر Jul 1، نماد SPY عدد 1.1 را در برابر 0.49 برای AAPL ثبت کرد. تا Jul 31، این جفت به ارقام 2 و 0.55 رسید. در طول 22 جلسه معاملاتی، ارقام روزانه نوسان دارند و این دو سری داده در سطوح متفاوتی روی نمودار قرار میگیرند. شکاف میان این سطوح، نکته کاربردیتر در میان این دو واقعیت است.
سهام، شاخص، ETP و مجموع: چهار نسبت Cboe
عددی که بهعنوان «نسبت اختیار فروش به خرید» (put/call ratio) نقل میشود، از آمار روزانه بازار Cboe استخراج شده است که چندین مورد از این نسبتها را منتشر میکند. دستهبندیها، طبق نامگذاری Cboe، عبارتاند از:
- نسبت put/call سهام: اختیار معامله روی تکسهمها.
- نسبت put/call شاخص: اختیار معامله روی شاخصها، از جمله SPX و VIX.
- نسبت put/call محصولات قابلمعامله در بورس (ETP): اختیار معامله روی ETFها، که شامل SPY، QQQ و IWM میشود.
- نسبت put/call کل: مجموع تمام دستهها.
هر یک از این نسبتها به روش مشابهی محاسبه میشوند؛ یعنی مجموع اختیار فروشها تقسیم بر مجموع اختیار خریدها در همان دسته، بنابراین تفاوت ارقام تنها به محتوای هر سبد بستگی دارد. این سبدها قابلجایگزینی با یکدیگر نیستند.
اختیار معامله شاخص، ابزار استاندارد برای پوشش ریسک (hedging) کل یک سبد سهام در قالب یک معامله است. صندوقی که سبد گستردهای از سهام را نگهداری میکند، برای پوشش ریسک، اختیار فروش شاخص میخرد و دلیلی برای خرید اختیار خرید شاخص ندارد. این تقاضا بهصورت یکطرفه ایجاد میشود و تماماً در صورت کسرِ دسته شاخص قرار میگیرد. جریان معاملات تکسهمها گرایش معکوسی دارد، بهطوری که خرید اختیار خرید روی نامهای انفرادی، سهم بزرگ و پایداری از حجم معاملات را تشکیل میدهد. این دو دسته به دلیل ساختارشان در سطوح متفاوتی قرار دارند و مقایسه عدد یکی با معیار دیگری، رایجترین اشتباه در استفاده از این شاخص است.
ETFهای بازار گسترده، همان نقش پوشش ریسک اختیار معامله شاخص را ایفا میکنند، در حالی که در دسته محصولات قابلمعامله در بورس (ETP) شمارش میشوند. پنل زیر میانه ماهانه برای هر دو سوی این تفکیک را ردیابی میکند.
کد دقیق 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این پنل از Aug 2025 تا Jul 2026 را در بر میگیرد. در هر دو انتها، میانه نسبت روزانه سبد ETF نزدیک یا بالای 1.0 بود، 1.52 در ماه نخست و 1.49 در ماه آخر. سبد تکسهمها در هر دو انتها زیر 1.0 باقی ماند، 0.6 و 0.56، که در تمام 12 ماهِ نمودار مشهود است. همین شکاف دائمی است که باعث میشود یک معیار، پیش از آنکه معنایی داشته باشد، حتماً باید دستهبندی خود را مشخص کند.
چه چیزی نسبت put/call عادی محسوب میشود
«عادی» یک بازه است و این بازه بیش از آنکه به خودِ شاخص تعلق داشته باشد، به دستهبندی دارایی مربوط میشود. جدول زیر تمامی جلسات معاملاتی دوازده ماه گذشته را بررسی کرده و میانه نسبت روزانه برای هر سبد، به همراه مرزهای صدک دهم و نودم آن را گزارش میکند.
کد دقیق 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.1برای سبد تکسهمها، میانه جلسات معاملاتی برابر با 0.58 بود که در آن 0.45 در صدک دهم و 0.76 در صدک نودم قرار گرفت. سبد ETFهای بازار کلی در سراسر توزیع، در سطوح بالاتری قرار داشت: میانهای برابر با 1.54 که بین مرزهای 1.25 و 1.86 محصور شده است.
بنابراین، آیا عدد 1.20 بالا است؟ در مقایسه با سبد تکسهمها، ثبت عدد 1.20 فراتر از صدک نودم 0.76 است که آن را به رقمی غیرمعمول تبدیل میکند. در مقابل، برای سبد ETF این عدد نزدیک به روال عادی است. در دسته شاخصها، جایی که جریانهای پوشش ریسکِ توصیفشده در بالا متمرکز هستند، همین رقم باید در برابر مجموعهای متفاوت از سطوح سنجیده شود. یک عدد واحد وجود دارد، اما دستهبندی، پیش از هرگونه تفسیر، حکم نهایی را صادر میکند.
این بازهها نیز دچار تغییر میشوند. صدکهای محاسبهشده در دوازده ماه گذشته، تنها توصیفگر همان دوازده ماه هستند؛ بنابراین یک بازه معیار که از مقالهای مربوط به یک دهه پیش کپی شده باشد، بازاری را توصیف میکند که ترکیب قراردادهای متفاوتی داشته و تقریباً فاقد معاملات با سررسید صفر روزه بوده است. محاسبه مجدد صدکها در یک بازه زمانی اخیر، تنها روش صادقانه برای بالا یا پایین خواندن یک عدد است.
تفسیر، وظیفهای جدا از محاسبه است. برخی عدد بالا را به معنای موقعیتگیری نزولی میدانند و معکوسگرایان (contrarians) آن را نشانهای از پوشش ریسکِ اشباعشده تلقی میکنند؛ و مطلب آیا نسبت put/call بالا صعودی است این استدلال را بهدرستی کالبدشکافی میکند.
چرا میانگین متحرک 21 روزه
نسبت یک جلسه معاملاتی، نمونه کوچکی از یک سری داده پرنوسان است، بنابراین نسخه منتشرشده معمولاً هموار میشود. عرف رایج، استفاده از میانگین متحرک 21 جلسه معاملاتی است که تقریباً معادل یک ماه معاملاتی است: مجموع 21 نسبت روزانه اخیر را بر 21 تقسیم کرده و سپس پنجره را یک جلسه به جلو میبریم. نسخههای 10 و 50 روزه نیز وجود دارند و طول دوره انتخابی تعیین میکند که چه میزان از جهشهای تکروزه در نمودار باقی بماند.
دو نکته حائز اهمیت است. میانگینگیری از 21 نسبت روزانه، از نظر محاسباتی با تقسیم حجم کل Put یک ماه بر حجم کل Call همان ماه متفاوت است؛ روش اول به تمام جلسات وزن یکسانی میدهد، در حالی که روش دوم به جلسات پرحجم وزن بیشتری اختصاص میدهد. همچنین، یک عدد هموارشده در نقاط حدی، حاصل دادههای یک ماه معاملاتی است، بنابراین خروج از آن وضعیت حدی نیز بهکندی صورت میگیرد.
کد دقیق 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خط دندانهدار، نسبت روزانه برای سبد تکسهم و خط هموار، میانگین 21 جلسه معاملاتی آن است. در اولین جلسه نمایشدادهشده، Apr 1، رقم ثبتشده روزانه 1.04 در برابر میانگین هموارشده 0.81 بود. در Jul 31، این جفت عدد 0.56 و 0.58 را نشان دادند. در طول 84 جلسه، میانگین تنها بخشی از مسیری را طی میکند که سری دادههای خام پوشش میدهند، و این دقیقاً هدف اصلی از ارائه عدد هموارشده است.
نحوه محاسبه این پنلها
نوع قرارداد از نماد اختیار معامله استخراج میشود: حرفی که پیش از کد هشترقمی قیمت اعمال (strike price) قرار دارد، برای اختیار خرید C و برای اختیار فروش P است. تنها قراردادهایی که حجم معاملات گزارششده برای آن جلسه داشته باشند در شمارش لحاظ میشوند، بنابراین قیمت اعمالی که معامله نشده باشد، تأثیری بر هیچیک از دو طرف ندارد. پنل اول، حجم کل Put ماه را بر حجم کل Call ماه برای هر نماد تقسیم میکند. پنلهای باقیمانده ابتدا برای هر جلسه یک نسبت محاسبه کرده و سپس آن جلسات را خلاصه میکنند، که با نحوه ساخت یک میانگین متحرک منتشرشده مطابقت دارد. سبدها: SPY، QQQ و IWM در سمت بازار کلی، و AAPL، MSFT، NVDA، TSLA و KO در سمت تکسهمها. هر پنل حاوی کد SQL دقیقی است که آن را تولید کرده است.
پرسشهای متداول
نسبت put/call چگونه محاسبه میشود؟
تعداد قراردادهای اختیار فروش (put) را بر تعداد قراردادهای اختیار خرید (call) در همان بازه زمانی تقسیم کنید. اکثر نسخههای منتشرشده از حجم معاملات روزانه استفاده میکنند؛ بنابراین عدد 0.65 به این معناست که در ازای هر 100 قرارداد call، تعداد 65 قرارداد put معامله شده است. نسخه مبتنی بر سود باز (open interest) بهجای قراردادهای معاملهشده، از قراردادهای معوق استفاده میکند و به پرسش متفاوتی پاسخ میدهد.
آیا نسبت put/call بالای 1 بالا محسوب میشود؟
این موضوع به دستهبندی بستگی دارد. برای سبد سهام انفرادی در پنلهای بالا، صدک نودم دادههای روزانه در سطح 0.76 قرار دارد، بنابراین ثبت ارقام بالاتر از آن سطح غیرمعمول است. برای ETFهای بازار گسترده و اختیار معامله شاخصها، که در آنها پوشش ریسک سبد سهام بر سمت put متمرکز است، ارقام حول و حوش 1 و بالاتر از آن عادی هستند.
تفاوت نسبت put/call مبتنی بر حجم و سود باز چیست؟
حجم، قراردادهایی را که در طول جلسه معاملاتی معامله شدهاند میشمارد و هر روز صبح بازنشانی میشود. سود باز (open interest) قراردادهایی را که باز ماندهاند میشمارد و از روزی به روز دیگر منتقل میشود. نسخه مبتنی بر حجم میتواند در طول یک جلسه معاملاتی دو برابر شود، در حالی که نسخه سود باز تنها چند درصد تغییر میکند؛ بنابراین این دو شاخص اغلب در یک روز جهتهای متفاوتی را نشان میدهند.
رسانههای مالی کدام نسبت put/call را نقل میکنند؟
معمولاً نسبت put/call سهام Cboe یا نسبت کل put/call، و اغلب بهصورت میانگین متحرک 21 روزه بهجای یک رقم خام روزانه. چهار دستهبندی Cboe در سطوح متفاوتی عمل میکنند، بنابراین رقمی که بدون ذکر دستهبندی نقل شود، قابل مقایسه با هیچ شاخص استانداردی نیست.
هر پنل در این صفحه با کد SQL که آن را تولید کرده ارائه میشود، بنابراین هر شمارش قابل بررسی خطبهخط است. برای اجرای محاسبات مشابه روی یک نماد دیگر یا بازه زمانی طولانیتر، آن را به زبان ساده در پایانه Strasmore درخواست کنید.