Strasmore Research

هل ارتفاع نسبة put إلى call إشارة صعودية؟

يرى المتداولون المعاكسون أن ارتفاع نسبة put إلى call إشارة صعودية. تعرّف إلى نطاقات المئينات لخيارات الأسهم والمؤشرات، وما حدث فعلاً بعد القراءات المتطرفة.

تُعد النسبة المرتفعة لخيار put إلى خيار call قراءة صعودية كلاسيكية من منظور معاكس للاتجاه: إذ يُنظر إلى الإقبال الاستثنائي على شراء خيارات put باعتباره دليلاً على أن جمهور المتداولين قد تحوّط مسبقاً تحسباً لهبوط. لكن تطبيق هذه القراءة يواجه مشكلة واحدة. فلا توجد قيمة ثابتة تحدد ما هو «مرتفع»، وقد تمثل قراءة قدرها 1.15 على شاشتك مستوى متطرفاً في خيارات سهم واحد، بينما تكون قراءة عادية في جلسة تداول لمنتجات المؤشرات.

ما يحتاج إليه السؤال هو توزيع مرجعي. تعرض هذه الصفحة توزيعاً مرجعياً لكلتا المجموعتين، ثم تقيس ما حدث بعد القراءات المرتفعة. يشرح دليل نسبة put إلى call كيفية احتساب النسبة، ويستند كل ما يلي إلى ذلك التعريف.

ملاحظتان بشأن القياس. تحتسب كل نسبة هنا العقود المتداولة في ذلك اليوم، ما يجعلها نسبة مبنية على حجم التداول؛ أما الفائدة المفتوحة فتحتسب المراكز التي لا تزال مفتوحة، وهي مفهوم مختلف (حجم التداول مقابل الفائدة المفتوحة يوضح الفرق بينهما). كذلك تأتي الأرقام من سلة ثابتة تضم عشرة أسهم فردية واسعة المتابعة مقابل ثلاثة ETFs للسوق الواسع، لا من كامل بيانات السوق. لذلك ركّز على شكل التوزيع، لا على الرقم العشري الأخير.

ما الذي يُعدّ نسبة put/call مرتفعة؟

تجيب النسبة المئوية عن سؤال لا يستطيع المستوى الإجابة عنه. يغطي المنحنى أدناه كل جلسة من يناير 2022 حتى يوليو 2026، بنسبة واحدة لكل جلسة في كل دفتر.

الاستعلامالنسب المئوية لنسبة حجم عقود البيع/الشراء: سلة أسهم فردية مقابل صناديق المؤشرات ETF، 2022 إلى يوليو 2026
استعلام SQL الدقيق وراء كل رقم
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
)
Run this yourself

في سلة الأسهم الفردية، بلغ وسيط الجلسات 0.67 من عقود put لكل عقد call. وبدأ أعلى عُشر من الجلسات عند 0.89، بينما تجاوزت أكثر واحد في المئة تطرفاً 1.34. كما أن الطرف الهادئ من التوزيع مفيد للمعايرة بالقدر نفسه: انتهت جلسة واحدة من كل عشرين عند 0.48 أو أقل.

يمثل عمود ETF توزيعاً مختلفاً عند كل نقطة على المنحنى. فقد بلغت قراءة وسيط جلساته 1.45، أي أعلى من خط الواحد إلى الواحد الذي يقع وسيط الأسهم الفردية أدنى منه بكثير، وبدأ أعلى عُشر خاص به عند 1.77. وتكاد تكون النسبة المذكورة بلا اسم دفترها عديمة المعنى. فذلك التداول المنفذ عند 1.15 يعني أمرين مختلفين، تبعاً للعمود الذي ورد فيه.

لماذا يُعدّ تجاوز نسبة المؤشر الواحد أمراً طبيعياً، بينما لا يُعدّ تجاوز نسبة الأسهم الواحد أمراً طبيعياً

عند تقسيم الحجم نفسه بحسب الأصل الأساسي، تتباعد المستويات بوضوح.

الاستعلامنسبة حجم عقود البيع/الشراء حسب الأصل الأساسي: من 1 يناير إلى 31 يوليو 2026
استعلام SQL الدقيق وراء كل رقم
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 DESC
Run this yourself

خلال الأشهر السبعة الأولى من عام 2026، تصدّر IWM الجدول بواقع 2.73 من خيارات put لكل خيار call، إذ تجاوز الواحد في 98.6% من جلساته البالغ عددها 144. وفي الطرف الأدنى، جرى تداول XOM عند 0.38، متجاوزاً الواحد في 2.8% من الجلسات.

الفارق هيكلي. فخيارات ETF واسعة السوق هي الأداة المستخدمة للتحوّط من مخاطر المحفظة. يشتري مدير يحتفظ بمركزين مئة في خيارات put على المؤشر بدلاً من شراء خيارات put على كل حيازة، ولا يقابِل هذا التدفق عادةً تداول مماثل في خيارات call. أما حجم تداول خيارات الأسهم الفردية فيميل إلى الاتجاه المعاكس، مع شراء خيارات call للاستفادة من الصعود وبيع خيارات call مقابل أسهم مملوكة بالفعل. وتمزج النسبة «الإجمالية» بين الدفترين، فتقع بينهما وتتغير مع مزيج المنتجات المتداولة في اليوم بقدر تغيرها مع معنويات السوق.

وتجدر معرفة تحول آخر في المستوى. إذ تستحوذ تداولات المؤشرات وETF الآن على حصة كبيرة من حالات انتهاء الصلاحية في اليوم نفسه (خيارات 0DTE)، وهي فئة لم تكن تُتداول بهذا الحجم تقريباً عندما وُضعت المستويات الشائعة. لذلك لا يمكن نقل المستويات القديمة إلى سوق تختلف تركيبة تداولاته.

هل تُعد نسبة put/call المرتفعة إشارة صعودية؟ ماذا حدث بعد القراءات المتطرفة؟

يمكن اختبار الفرضية العكسية. صنّف كل جلسة إلى خمس شرائح وفق نسبة الأسهم في ذلك اليوم، ثم قِس حركة مؤشر S&P 500 المتتبَّع خلال الجلسات الخمس والعشرين التالية.

الاستعلامتحركات متتبّع S&P 500 بعد كل خُمس من نسبة عقود البيع/الشراء للأسهم، 2022 إلى يوليو 2026
استعلام SQL الدقيق وراء كل رقم
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 ASC
Run this yourself

تبدأ أهدأ خُمس من الجلسات عند 0.34، بينما يبدأ أكثرها نشاطاً عند 0.81. لذلك تضم الشريحة العليا كل قراءة قد يصفها متداول عكسي بأنها متطرفة. وخلال جلسات 226، بلغ متوسط حركة الجلسات العشرين 3%، مقارنةً بـ 0.91% بعد أهدأ خُمس. وبعد خمس جلسات، بلغت قراءتا الشريحتين نفسيهما 0.82% و0.3%.

تخفي المتوسطات الجزء الأهم. ففي الخُمس الأعلى، تراوح النصف الأوسط من نتائج الجلسات العشرين بين -1.82% و5.71%. أما في أهدأ خُمس، فتراوح النصف الأوسط بين -0.83% و2.67%. وتتداخل النطاقات بدرجة كبيرة. فالشريحة التي تقع فيها الجلسة تحرّك مركز التوزيع، لكنها لا تضيق كثيراً النطاق المحيط بهذا المركز. وهذا هو الجانب الذي تغفله القاعدة العامة.

توجد ملاحظة تحفّظية بشأن حجم العينة. تغطي الفترة من يناير 2022 إلى يوليو 2026 سوقاً هابطة واحدة والتعافي الذي تلاها، بمتوسط يقارب 226 جلسة لكل شريحة. وهذه عينة حقيقية، لكنها تمثل فترة واحدة من تاريخ السوق.

هل تتجمع القراءات المتطرفة عند قيعان السوق؟

تتجمع هذه القراءات في الأشهر الهابطة، وهذا ادعاء مختلف. صنّف كل شهر منذ عام 2022 وفق حركة المؤشر داخله، ثم احسب عدد قراءات put/call التي وقعت ضمن أعلى عُشر في كل مجموعة.

الاستعلامقراءات عقود البيع/الشراء في العُشر الأعلى لكل شهر، مجمّعة حسب حركة متتبّع S&P 500
استعلام SQL الدقيق وراء كل رقم
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) ASC
Run this yourself

سجّلت الأشهر التي أنهى فيها المؤشر الفترة على انخفاض قدره 3% أو أكثر متوسطاً بلغ 4.2 من قراءات أعلى عُشر لكل شهر، مقابل 1.9 في الأشهر التي ارتفع فيها بنسبة 3% أو أكثر. ويظهر الوسيط اليومي للقراءات في كل مجموعة في العمود الأخير، عند 0.75 للمجموعة الأسوأ و0.62 للأفضل. ويضم طرفا الجدول 12 و22 شهراً.

تظهر القراءات المتطرفة لنسبة put/call مع انخفاض الأسعار في الوقت نفسه. هذا تزامن، والأرقام المستقبلية الواردة في القسم السابق هي التي تبيّن قيمة هذا التزامن. فالنسبة تقيس حركة يوم واحد في شريط الأسعار لذلك اليوم، ولذلك تظهر ارتفاعاتها الحادة أثناء الانخفاضات لا قبلها. أما القاع فهو وصف يُلحق بالحركة بعد حدوثها.

قراءة المستوى في ضوء التوزيع

تترتب على الأرقام أعلاه عادتان.

أولاً، قارن بين مقاييس متماثلة. لا تكتسب القراءة معناها إلا عند مقارنتها بتاريخ المؤشر نفسه خلال فترة مماثلة. وهذا تحديداً ما يقدمه جدول المئينات، ولا يقدمه حدٌّ تتذكره من قبل.

ثانياً، راقب المقام. تنخفض النسبة عندما يقفز حجم عقود Call، حتى إذا لم يتغير شراء عقود Put. وقد ينتج انخفاض النسبة أو ارتفاعها عن تحرك أحد طرفي الكسر وحده. لذلك فإن قراءة حجم عقود Put وحجم عقود Call كلٌّ على حدة تُبقي الحسابات واضحة.

ينطبق الانضباط نفسه على كل مقياس لمعنويات السوق يُعرض في صورة رقم مجرد. لا يمكن قراءة مؤشر VIX أو قراءة تقلب ضمني تبلغ 30% من دون توزيعاتهما الخاصة، كما تصمد قواعد المعنويات المخالفة للاتجاه أمام اختبار البيانات فقط عندما يُقاس المستوى المرجعي بدلاً من افتراضه.

الأسئلة الشائعة

هل ارتفاع نسبة put/call يُعد مؤشراً صعودياً؟

تتعامل القراءة المخالفة للاتجاه مع كثرة شراء خيارات put باعتبارها دليلاً على أن المتداولين اتخذوا مراكز تتوقع الهبوط بالفعل. وبالقياس إلى سلة الأسهم الفردية المذكورة أعلاه، أعقبت الجلسات الواقعة ضمن الخُمس الأعلى من القراءات حركة وسيطية على مدى 20 جلسة بلغت 3% في متتبع S&P 500، مقارنةً بـ 0.91% بعد الخُمس الأكثر هدوءاً. وامتد نطاق النصف الأوسط من نتائج الخُمس الأعلى من -1.82% إلى 5.71%.

ما النسبة الطبيعية لـ put/call؟

يعتمد ذلك بالكامل على الخيارات التي تُحتسب. ففي سلة تضم عشرة أسهم فردية معروفة، بلغت القراءة الوسيطية للجلسة خلال الفترة من 2022 إلى يوليو 2026 مقدار 0.67 من خيارات put لكل خيار call. أما في ثلاثة صناديق ETF واسعة السوق خلال الجلسات نفسها، فبلغت القراءة الوسيطية 1.45.

لماذا تكون نسبة put/call للمؤشر أعلى من نسبة put/call للأسهم؟

تُعد خيارات المؤشرات العريضة وETF الأداة المعتادة للتحوط من مخاطر المحفظة. وعندما يشتري المتحوط خيارات put على المؤشر، لا تكون هناك بالضرورة صفقة call مقابلة لها. أما تداولات الأسهم الفردية فتميل إلى شراء خيارات call للاستفادة من الصعود، وإلى بيع خيارات call مقابل أسهم مملوكة بالفعل. وهذا يبقي نسبة تلك المحفظة عند مستوى أقل.

هل تصلح نسبة put/call لتوقيت السوق؟

توضح القياسات أعلاه توزيع ما حدث بعد كل خُمس من القراءات. وكان التشتت داخل أي نطاق أوسع بكثير من الفارق بين القيم الوسيطية للنطاقات. كما تتركز القراءات الواقعة ضمن العُشر الأعلى في الأشهر التي أنهى فيها المؤشر الشهر على انخفاض، عند 4.2 شهرياً في أسوأ مجموعة.

ما الفرق بين نسبة put/call المحسوبة على أساس حجم التداول وتلك المحسوبة على أساس المراكز المفتوحة؟

تحتسب نسبة حجم التداول العقود المتداولة خلال الجلسة، ولذلك تُعاد من الصفر كل يوم وتتفاعل بسرعة. أما نسبة المراكز المفتوحة فتحتسب المراكز التي لا تزال قائمة، وهي تتغير ببطء وتستقر عند مستوى خاص بها. ولا يمكن استخدام النسبتين بالتبادل، كما أن تطبيق عتبة مأخوذة من إحداهما على الأخرى يؤدي إلى قراءة خاطئة.

كيف حُسبت هذه الأرقام
  • المصدر: صف واحد لكل عقد خيار في كل جلسة، ويتضمن حجم التداول المسجل لذلك العقد خلال الجلسة. جرى فصل خيارات put عن خيارات call من رمز عقد OCC، إذ تمثل الأحرف الثمانية الأخيرة سعر التنفيذ، بينما يرمز الحرف السابق لها إلى C لخيار call وإلى P لخيار put. افتح استعلام SQL أسفل أي لوحة للاطلاع على الجدول والمرشحات المستخدمة بدقة.
  • كل نسبة في هذه الصفحة هي نسبة محسوبة على أساس حجم التداول. ولم تدخل المراكز المفتوحة في الحساب، لذلك لا تمثل أي من هذه النسب نسبة محسوبة على أساس المراكز المفتوحة.
  • لم يُطبَّق أي مرشح لجودة التقلب الضمني. أُدرجت العقود بناءً على حجم التداول وحده، لأن هذه اللوحات تقيس نشاط التداول ولا تقيس التقلب.
  • السلة: AAPL وMSFT وNVDA وAMZN وMETA وTSLA وGOOGL وJPM وKO وXOM لمحفظة الأسهم الفردية، إضافةً إلى SPY وQQQ وIWM لمحفظة مؤشرات ETF. أما النسب المنشورة من البورصات فتغطي السوق بأكمله وتشمل منتجات مؤشرات مثل SPX، ولذلك تكون مستوياتها مختلفة.
  • أسعار المؤشر هي آخر صفقة منفذة خلال الجلسة العادية في كل يوم لمتتبع S&P 500. تستبعد العوائد المستقبلية آخر 20 جلسة من العينة، إذ لا يتوافر لها أفق مستقبلي مدته 20 جلسة. وتمتد الحركات الشهرية من إغلاق الجلسة الأولى إلى إغلاق الجلسة الأخيرة داخل كل شهر.

توسّع كل لوحة أعلاه لعرض استعلام SQL الذي تستند إليه، وتُطبَّق استعلامات النسب المئوية نفسها على أي أصل تتابعه في منصة Strasmore.

#put-call ratio#sentiment#options structure#contrarian#reference levels