Strasmore Research

Put/Call สูงเป็นสัญญาณขาขึ้นจริงหรือไม่

ทำความเข้าใจว่า put/call สูงหมายถึงอะไร พร้อมดู percentile ของ options หุ้นและดัชนี และผลลัพธ์หลังเกิดค่าผิดปกติ เพื่อประเมินสัญญาณได้แม่นยำขึ้น

อัตราส่วน put/call ที่สูงเป็นสัญญาณขาขึ้นแบบสวนทางกับตลาดที่ใช้กันมาแต่เดิม กล่าวคือ การซื้อ Put อย่างหนาแน่นผิดปกติถูกมองว่าเป็นสัญญาณว่านักลงทุนส่วนใหญ่ได้เตรียมรับการปรับตัวลงไว้แล้ว แต่การนำสัญญาณนี้ไปใช้มีปัญหาอยู่ประการหนึ่ง นั่นคือคำว่า “สูง” ไม่มีค่าตายตัว และค่า 1.15 บนหน้าจอของคุณอาจเป็นระดับสุดขั้วสำหรับ options ของหุ้นรายตัว แต่เป็นเพียงระดับปกติในวันหนึ่งสำหรับผลิตภัณฑ์ดัชนี

สิ่งที่คำถามนี้ต้องการคือการแจกแจงอ้างอิง บทความนี้จัดทำการแจกแจงดังกล่าวสำหรับตลาดทั้งสองประเภท แล้ววัดผลที่เกิดขึ้นหลังจากพบค่าที่สูง คำอธิบายอัตราส่วน put/call ครอบคลุมวิธีคำนวณอัตราส่วนนี้ และข้อมูลทั้งหมดด้านล่างเริ่มต้นจากคำนิยามดังกล่าว

มีข้อสังเกตสองประการเกี่ยวกับการวัดผล อัตราส่วนทั้งหมดในที่นี้นับจำนวนสัญญาที่ซื้อขายในวันนั้น จึงเป็นอัตราส่วนตามปริมาณการซื้อขาย ส่วน open interest นับสถานะที่ยังไม่ปิดและอยู่คนละระดับกัน (ปริมาณการซื้อขายเทียบกับ open interest อธิบายความแตกต่างระหว่างสองตัวชี้วัดนี้) นอกจากนี้ ตัวเลขยังมาจากตะกร้าหลักทรัพย์ที่กำหนดไว้ตายตัว ได้แก่ หุ้นรายตัวที่นักลงทุนรู้จักกันทั่วไปสิบตัว เทียบกับ ETF ตลาดในวงกว้างสามกอง ไม่ใช่ข้อมูลการซื้อขายของทั้งตลาด ดังนั้นควรพิจารณารูปแบบของการแจกแจงมากกว่าค่าทศนิยมตำแหน่งสุดท้าย

อัตราส่วน put/call ระดับใดจึงถือว่าสูง?

Percentile ช่วยตอบคำถามที่ระดับของอัตราส่วนเพียงอย่างเดียวตอบไม่ได้ กราฟด้านล่างครอบคลุมทุกช่วงการซื้อขายตั้งแต่เดือนมกราคม 2022 ถึงกรกฎาคม 2026 โดยแสดงอัตราส่วนหนึ่งค่าต่อช่วงการซื้อขายสำหรับแต่ละ book

คำสั่งดึงข้อมูลเปอร์เซ็นไทล์อัตราส่วนปริมาณ Put/call: ตะกร้าหุ้นรายตัวเทียบกับ 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

สำหรับตะกร้าหุ้นรายตัว ช่วงการซื้อขายค่ามัธยฐานมี put อยู่ที่ 0.67 รายการต่อ call หนึ่งรายการ กลุ่มช่วงการซื้อขาย 10% บนสุดเริ่มที่ 0.89 และช่วงการซื้อขาย 1% ที่สุดโต่งที่สุดมีค่าเกิน 1.34 ส่วนปลายด้านที่เงียบก็มีประโยชน์สำหรับใช้เป็นจุดอ้างอิงเช่นกัน โดยหนึ่งในทุก 20 ช่วงการซื้อขายปิดที่ 0.48 หรือต่ำกว่า

คอลัมน์ ETF มีการกระจายตัวที่แตกต่างกันในทุกจุดบนเส้นโค้ง ช่วงการซื้อขายค่ามัธยฐานอยู่ที่ 1.45 ซึ่งสูงกว่าเส้น one-to-one ที่ค่ามัธยฐานของหุ้นรายตัวอยู่ต่ำกว่าอย่างชัดเจน และ decile บนสุดของ ETF เริ่มที่ 1.77 การเสนออัตราส่วนโดยไม่ระบุว่าเป็นของ book ใดแทบไม่มีความหมาย ค่า 1.15 ที่ปรากฏในการซื้อขายมีความหมายแตกต่างกันสองแบบ ขึ้นอยู่กับว่ามาจากคอลัมน์ใด

เหตุใดอัตราส่วนของดัชนีที่สูงกว่า 1 จึงเป็นเรื่องปกติ แต่อัตราส่วนของหุ้นที่สูงกว่า 1 ไม่ใช่

เมื่อแยกปริมาณการซื้อขายเดียวกันตามสินทรัพย์อ้างอิง ระดับของอัตราส่วนจะแยกออกจากกันอย่างชัดเจน

คำสั่งดึงข้อมูลอัตราส่วนปริมาณ Put/call แยกตามสินทรัพย์อ้างอิง: 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% ของเซสชัน

ส่วนต่างนี้เป็นผลจากโครงสร้าง ตลาด options ของ ETF ที่อ้างอิงตลาดวงกว้างเป็นช่องทางหลักสำหรับการป้องกันความเสี่ยงของพอร์ต ผู้จัดการกองทุนที่ถือครองหุ้นสองร้อยตัวจะซื้อ index put แทนการซื้อ put ของหุ้นแต่ละตัว และกระแสคำสั่งดังกล่าวไม่มีคำสั่งซื้อ call ที่สอดคล้องกันมาหักล้างอยู่ข้างเดียวกัน ขณะที่ปริมาณการซื้อขาย options ของหุ้นรายตัวมีแนวโน้มไปอีกทาง โดยเน้นการซื้อ call เพื่อเก็งกำไรจากขาขึ้น และการขาย call against stock ที่ถือครองอยู่แล้ว อัตราส่วน “total” เป็นการรวมข้อมูลจากทั้งสองฝั่ง จึงอยู่ระหว่างระดับของทั้งสองกลุ่ม และเคลื่อนไหวตามสัดส่วนผลิตภัณฑ์ที่มีการซื้อขายในแต่ละวันพอ ๆ กับที่เคลื่อนไหวตามมุมมองของตลาด

นอกจากนี้ยังมีการเปลี่ยนระดับอีกประการที่ควรทราบ ปัจจุบันปริมาณการซื้อขายของดัชนีและ ETF มีสัดส่วนของการหมดอายุในวันเดียวกันอยู่มาก (options 0DTE) ซึ่งเป็นหมวดหมู่ที่ไม่ได้มีการซื้อขายในระดับใกล้เคียงเช่นนี้ในช่วงที่มีการกำหนดเกณฑ์คุ้นเคยดังกล่าว ระดับเก่า ๆ จึงไม่สามารถนำมาใช้กับกระดานซื้อขายที่มีองค์ประกอบแตกต่างออกไปได้

Put/call ratio ที่สูงเป็นสัญญาณขาขึ้นหรือไม่? ตลาดเคลื่อนไหวอย่างไรหลังแตะระดับสุดขั้ว

กรณีการลงทุนสวนทางกับตลาดสามารถทดสอบได้ โดยแบ่งทุกช่วงการซื้อขายออกเป็นห้ากลุ่มตาม equity ratio ของวันนั้น แล้ววัดการเคลื่อนไหวของดัชนีที่ติดตาม S&P 500 ในช่วง 5 และ 20 ช่วงการซื้อขายถัดไป

คำสั่งดึงข้อมูลการเคลื่อนไหวของกองทุนติดตาม S&P 500 หลังแต่ละควินไทล์ของอัตราส่วน Put/call ของหุ้น, 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 ช่วงดังกล่าว การเคลื่อนไหวมัธยฐานในช่วง 20 ช่วงการซื้อขายอยู่ที่ 3% เทียบกับ 0.91% หลังกลุ่มที่สงบที่สุด เมื่อวัดหลังผ่านไป 5 ช่วงการซื้อขาย กลุ่มสองกลุ่มเดียวกันอยู่ที่ 0.82% และ 0.3%

ค่ามัธยฐานอาจบดบังประเด็นสำคัญ ภายในกลุ่มบนสุด ผลลัพธ์ครึ่งกลางของการเคลื่อนไหวในช่วง 20 ช่วงการซื้อขายอยู่ระหว่าง -1.82% ถึง 5.71% ส่วนภายในกลุ่มที่สงบที่สุด ผลลัพธ์ครึ่งกลางอยู่ระหว่าง -0.83% ถึง 2.67% ช่วงทั้งสองครอบคลุมขอบเขตเดียวกันเป็นส่วนใหญ่ กลุ่มที่ช่วงการซื้อขายนั้นอยู่จะขยับจุดศูนย์กลางของการกระจาย แต่แทบไม่ได้ทำให้ช่วงรอบจุดศูนย์กลางนั้นแคบลง นี่คือส่วนที่กฎง่าย ๆ มักไม่แสดงให้เห็น

ข้อควรระวังเกี่ยวกับน้ำหนักของข้อมูล ช่วงตั้งแต่มกราคม 2022 ถึงกรกฎาคม 2026 ครอบคลุมตลาดหมีหนึ่งครั้งและการฟื้นตัวหลังจากนั้น โดยมีช่วงการซื้อขายประมาณ 226 ช่วงต่อกลุ่ม นี่เป็นกลุ่มตัวอย่างที่มีนัยสำคัญ และเป็นเพียงช่วงหนึ่งของประวัติศาสตร์ตลาดเท่านั้น

ค่าที่อยู่สุดขั้วกระจุกตัวบริเวณจุดต่ำสุดของตลาดหรือไม่?

ค่าดังกล่าวกระจุกตัวในเดือนที่ตลาดปรับตัวลง ซึ่งเป็นข้อสรุปที่แตกต่างกัน เราจัดกลุ่มทุกเดือนตั้งแต่ปี 2022 เป็นต้นมาตามการเคลื่อนไหวของ tracker ภายในเดือนนั้น แล้วนับว่าค่า put/call ที่อยู่ใน decile สูงสุดปรากฏในแต่ละกลุ่มกี่ครั้ง

คำสั่งดึงข้อมูลค่าประเมิน 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

เดือนที่ tracker ปิดลดลงอย่างน้อย 3% มีค่าเฉลี่ยของ readings ใน decile สูงสุดเดือนละ 4.2 ครั้ง เทียบกับ 1.9 ครั้งในเดือนที่ tracker ปรับขึ้นอย่างน้อย 3% ค่ามัธยฐานของ daily reading ในแต่ละกลุ่มแสดงอยู่ในคอลัมน์สุดท้าย โดยอยู่ที่ 0.75 สำหรับกลุ่มที่แย่ที่สุด และ 0.62 สำหรับกลุ่มที่ดีที่สุด ปลายทั้งสองด้านของตารางมีเดือนอยู่ 12 และ 22 เดือน

ค่า put/call ที่อยู่สุดขั้วและราคาที่ปรับตัวลงปรากฏขึ้นพร้อมกัน นี่คือการเกิดร่วมกัน และตัวเลขผลลัพธ์ล่วงหน้าในส่วนก่อนหน้าคือสิ่งที่ควรใช้ประเมินความหมายของปรากฏการณ์นี้ ratio เป็นการวัด tape ของวันเดียวกัน ณ วันเดียวกัน ดังนั้นจุดพุ่งขึ้นของ ratio จึงเกิดขึ้นระหว่างการปรับลดลง มากกว่าจะเกิดขึ้นก่อนหน้า จุดต่ำสุดเป็นเพียงป้ายกำกับที่ถูกนำมาใช้ภายหลังเหตุการณ์เกิดขึ้นแล้ว

การอ่านระดับเทียบกับการกระจายตัว

ตัวเลขข้างต้นนำไปสู่แนวทางปฏิบัติสองประการ

ประการแรก ควรเปรียบเทียบข้อมูลที่อยู่บนพื้นฐานเดียวกัน ระดับตัวเลขจะมีความหมายก็ต่อเมื่อเทียบกับประวัติของข้อมูลชุดเดียวกันในช่วงเวลาที่ใกล้เคียงกัน ซึ่งเป็นสิ่งที่ตารางเปอร์เซ็นไทล์แสดงให้เห็นได้ แต่เกณฑ์ที่จำจากความทรงจำไม่สามารถทำได้

ประการที่สอง ควรติดตามตัวส่วนของอัตราส่วน อัตราส่วนจะลดลงเมื่อปริมาณการซื้อ Call option พุ่งขึ้น แม้ปริมาณการซื้อ Put option จะไม่เปลี่ยนแปลงก็ตาม การลดลงหรือการพุ่งขึ้นของอัตราส่วนอาจเกิดจากตัวเลขเพียงด้านเดียวของเศษส่วนเคลื่อนไหว ดังนั้นการดูปริมาณ Put option และ Call option แยกกันจึงช่วยให้เห็นที่มาของการคำนวณได้อย่างชัดเจน

หลักการเดียวกันนี้ใช้กับเครื่องวัด sentiment ทุกประเภทที่นำเสนอเป็นตัวเลขเพียงค่าเดียว VIX และ ค่าความผันผวนโดยนัยที่ปรากฏอยู่ที่ 30% ไม่สามารถตีความได้หากไม่ทราบการกระจายตัวของข้อมูลแต่ละชุด และ กฎ sentiment แบบสวนทางกับตลาด จะมีความน่าเชื่อถือเมื่ออ้างอิงจากระดับที่วัดได้จริง ไม่ใช่ระดับที่ตั้งสมมติฐานขึ้นมา

คำถามที่พบบ่อย

อัตราส่วน put/call ที่สูงเป็นสัญญาณขาขึ้นหรือไม่

การตีความแบบสวนทางมองว่า การซื้อ put อย่างหนาแน่นสะท้อนว่านักลงทุนส่วนใหญ่ได้วางสถานะเตรียมรับการปรับตัวลงไว้แล้ว เมื่อวัดเทียบกับตะกร้าหุ้นรายตัวข้างต้น ช่วงที่ค่าอัตราส่วนอยู่ในหนึ่งในห้าสูงสุด ตามมาด้วยการเคลื่อนไหวของดัชนี S&P 500 tracker ในช่วง 20 sessions ถัดไปที่มีค่ามัธยฐาน 3% เทียบกับ 0.91% หลังช่วงหนึ่งในห้าที่สงบที่สุด โดยผลลัพธ์ครึ่งกลางของช่วงหนึ่งในห้าสูงสุดอยู่ระหว่าง -1.82% ถึง 5.71%

อัตราส่วน put/call ปกติอยู่ที่เท่าใด

ขึ้นอยู่ทั้งหมดว่ารวม options ประเภทใดบ้าง ในตะกร้าหุ้นรายตัวขนาดใหญ่จำนวนสิบตัว ค่าอัตราส่วนมัธยฐานต่อ session ตั้งแต่ปี 2022 ถึงกรกฎาคม 2026 อยู่ที่ 0.67 put ต่อ call ส่วน ETF ตลาดวงกว้างสามกองในช่วง sessions เดียวกัน มีค่ามัธยฐานอยู่ที่ 1.45

เหตุใดอัตราส่วน put/call ของดัชนีจึงสูงกว่าอัตราส่วน put/call ของหุ้น

Options ของดัชนีวงกว้างและ ETF เป็นเครื่องมือมาตรฐานสำหรับการป้องกันความเสี่ยงของพอร์ต และผู้ลงทุนที่ซื้อ put ของดัชนีเพื่อป้องกันความเสี่ยงไม่ได้มีธุรกรรม call ที่สอดคล้องกันมาเทียบเคียง นักลงทุนนิยมซื้อ call ของหุ้นรายตัวเพื่อเก็งกำไรขาขึ้น และเขียน call against shares ที่ถืออยู่แล้ว ทำให้อัตราส่วนของกลุ่มนี้ต่ำกว่า

อัตราส่วน put/call ใช้จับจังหวะตลาดได้หรือไม่

ข้อมูลข้างต้นแสดงการกระจายตัวของผลลัพธ์หลังจากแต่ละหนึ่งในห้าของค่าที่วัดได้ และช่วงกระจายภายในแต่ละกลุ่มกว้างกว่าความแตกต่างระหว่างค่ามัธยฐานของกลุ่มมาก ค่าที่อยู่ในหนึ่งในสิบสูงสุดยังกระจุกตัวในเดือนที่ดัชนีปิดลดลง โดยกลุ่มที่แย่ที่สุดมีสัดส่วน 4.2 ต่อเดือน

อัตราส่วน put/call จาก volume แตกต่างจากอัตราส่วนจาก open interest อย่างไร

อัตราส่วนจาก volume นับจำนวนสัญญาที่มีการซื้อขายระหว่าง session จึงเริ่มนับใหม่ทุกวันและตอบสนองได้รวดเร็ว ส่วนอัตราส่วนจาก open interest นับสถานะที่ยังคงค้างอยู่ ซึ่งเปลี่ยนแปลงช้าและมีระดับของตัวเอง อัตราส่วนทั้งสองประเภทใช้แทนกันไม่ได้ และการนำ threshold ของประเภทหนึ่งมาใช้กับอีกประเภทจะทำให้ตีความผิด

วิธีจัดทำตัวเลขเหล่านี้
  • แหล่งข้อมูล: หนึ่งแถวต่อหนึ่งสัญญา options ต่อหนึ่ง session โดยมี volume ที่ซื้อขายใน session นั้นแสดงอยู่ แยก put และ call จากรหัสสัญญาของ OCC โดยอักขระแปดตัวสุดท้ายเป็น strike และอักขระก่อนหน้านั้นเป็น C สำหรับ call และ P สำหรับ put เปิด SQL ใต้แต่ละ panel เพื่อดูตารางและตัวกรองที่ใช้โดยละเอียด
  • อัตราส่วนทุกค่าบนหน้านี้เป็นอัตราส่วนจาก volume โดยไม่มีการนำ open interest มาคำนวณ ดังนั้นไม่มีค่าใดในหน้านี้เป็นอัตราส่วนจาก open interest
  • ไม่มีการใช้ตัวกรองคุณภาพของ implied volatility สัญญาจะถูกรวมโดยพิจารณาจาก volume ที่ซื้อขายเท่านั้น เนื่องจาก panel เหล่านี้นับกิจกรรมการซื้อขาย ไม่ได้ใช้วัดความผันผวน
  • ตะกร้าหุ้นประกอบด้วย AAPL, MSFT, NVDA, AMZN, META, TSLA, GOOGL, JPM, KO และ XOM สำหรับกลุ่มหุ้นรายตัว รวมถึง SPY, QQQ และ IWM สำหรับกลุ่ม index-ETF อัตราส่วนที่ตลาดหลักทรัพย์เผยแพร่ครอบคลุมตลาดทั้งหมดและรวมผลิตภัณฑ์ดัชนี เช่น SPX ดังนั้นระดับของอัตราส่วนจึงแตกต่างออกไป
  • ราคาดัชนีใช้ print ล่าสุดของ regular session ในแต่ละวันสำหรับ S&P 500 tracker ผลตอบแทนล่วงหน้าจะตัด 20 sessions สุดท้ายของกลุ่มตัวอย่างออก เนื่องจากยังไม่มีข้อมูลในอนาคตครบ 20 sessions การเคลื่อนไหวรายเดือนคำนวณจากราคาปิดของ session แรกถึงราคาปิดของ session สุดท้ายภายในแต่ละเดือน

ทุก panel ข้างต้นสามารถขยายเพื่อดู SQL ที่อยู่เบื้องหลังได้ และ query สำหรับคำนวณ percentile ชุดเดียวกันสามารถนำไปใช้กับ underlying ใดก็ได้ที่คุณติดตามบน Strasmore terminal

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