Strasmore Research
學習 Matt Connor作者: Matt Connor · data as of August 14, 2026 · refreshed weekly

個股與指數 Put/Call Ratio:多少算高?

個股與指數 put/call ratio 的正常區間不同。了解兩者如何計算、指數數值為何較高,以及公平比較時應注意哪些條件。

高 put/call ratio 並非單一數字。根據同一份選擇權成交資料,市場至少發布三種計算方式。第一種只計入個股選擇權。第二種只計入指數產品。第三種則合併計算兩者。每種指標都有自己的正常區間。因此,1.20 的讀數在某一序列中可能是異常值,在另一序列中則可能只是一般交易日的水準。若你不熟悉這項指標,put/call ratio 衡量的內容可先了解基本概念。

為什麼指數 put/call ratio 高於個股 ratio?

先看買方是誰。指數 put 是涵蓋整個多元化投資組合、成本最低的單一工具。持有四百個部位的基金,不會分別買進四百個 put。基金會買進指數 put,按日曆展期,並將權利金列為保險成本。這類交易量是對基金既有持股的保護,無論經理人是否看好市場,都可能出現。

個股選擇權的交易組合則不同。大量交易是買進個股 call,而備兌買權策略的賣出 call,也會增加另一側的 call 交易量。個股 put 買盤確實存在,但其規模通常緊鄰更大的 call 流量。

公式無法區分這些交易流。若以避險主導的 put 流量除以稀薄的 call 流量,結果會接近或高於 1.00。若以規模有限的 put 流量除以龐大的 call 流量,結果則會接近 0.50。同一個公式,可以對應兩種正常區間。

下方表格統計八檔熱門股票與四檔大盤 ETF 過去六十個交易日的契約交易量,再以各標的的 put 交易量除以 call 交易量。

查詢依標的資產分類的 Put/Call 成交量比率,近60個交易日
每個數據背後的精確 SQL 語法
SELECT
    underlying_symbol                                                    AS symbol,
    if(underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA'),
       'broad-market ETF',
       'single stock')                                                   AS bucket,
    round(sumIf(volume, startsWith(lower(option_type), 'p'))
          / sumIf(volume, startsWith(lower(option_type), 'c')), 2)       AS put_call_ratio,
    round(sumIf(volume, startsWith(lower(option_type), 'c')) / 1e6, 1)   AS call_volume_millions,
    round(sumIf(volume, startsWith(lower(option_type), 'p')) / 1e6, 1)   AS put_volume_millions
FROM global_markets.options_greeks
WHERE date >= (SELECT toDate(max(date))
               FROM global_markets.options_greeks
               WHERE volume > 0) - 60
  AND volume > 0
  AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'JPM', 'KO', 'JNJ',
                            'SPY', 'QQQ', 'IWM', 'DIA')
GROUP BY symbol
HAVING sumIf(volume, startsWith(lower(option_type), 'c')) > 0
ORDER BY put_call_ratio ASC
Run this yourself

樣本中的差距很大。最低讀值是 0.43,出現在 MSFT;最高讀值是 2.86,出現在 IWM。該標的在觀察期間成交了 9.6 百萬張 call 契約。bucket 欄標示各列是個股還是大盤 ETF。解讀 ratio 欄時,應一併參考這一欄。

在繼續之前,先說明一項限制。已公布的指數 ratio,是以指數水準本身的選擇權計算,並在到期時以現金結算,而不是交付股票。迷你指數選擇權是這類契約的較小名目金額版本。本頁各表使用大盤 ETF 選擇權,作為相同避險流的個別標的代理;這正是不同資料供應商產生歧異的地方。

各項公布比率的計算內容

  • 僅股票:個別公司的股票選擇權,即單一股票流量;多數交易時段以買權為主。
  • 僅指數:以指數點位為標的的選擇權,採現金結算,涵蓋大部分投資組合避險交易量。
  • 總計:上述兩類的所有契約,賣權交易量高於買權交易量。

三者計算的都是交易量,也就是交易時段內易手的契約數,而不是交易結束後仍未平倉的部位。交易量與未平倉量區分了這兩個概念。

總 put/call ratio 是另外兩者的平均值嗎?

不是。總比率是加權混合值,權重取決於買權成交量。設 w 為指數類別占兩個類別買權總成交量的比重。總比率等於個股比率,加上 w 乘以兩個比率之間的差距。當指數類別只占買權成交量的一小部分時,總比率幾乎貼近個股比率。當指數類別占主導地位時,總比率則會向指數比率靠攏。

下一個面板將兩個組成部分固定在其測得的六十個交易日水準,並讓 w 從零掃描至百分之百。

查詢總值為按 Call 成交量加權的兩類別混合值
每個數據背後的精確 SQL 語法
WITH components AS
(
    SELECT
        round(sumIf(volume, startsWith(lower(option_type), 'p') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA'))
              / sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')), 3) AS equity_ratio,
        round(sumIf(volume, startsWith(lower(option_type), 'p') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA'))
              / sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA')), 3) AS index_ratio
    FROM global_markets.options_greeks
    WHERE date >= (SELECT toDate(max(date))
                   FROM global_markets.options_greeks
                   WHERE volume > 0) - 60
      AND volume > 0
      AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'JPM', 'KO', 'JNJ',
                                'SPY', 'QQQ', 'IWM', 'DIA')
    HAVING sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA')) > 0
       AND sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')) > 0
)
SELECT
    concat(toString(step * 10), '%')                                    AS index_share_of_call_volume,
    equity_ratio,
    index_ratio,
    round(equity_ratio + (index_ratio - equity_ratio) * (step / 10), 3) AS blended_total_ratio
FROM
(
    SELECT
        equity_ratio,
        index_ratio,
        arrayJoin(range(11)) AS step
    FROM components
)
ORDER BY step
Run this yourself

在將兩個組成部分固定於 0.5621.396 後,當指數類別完全不貢獻買權成交量時,混合值為 0.562;當指數類別貢獻全部買權成交量時,混合值為 1.396。在兩者各占一半時,指數類別占買權成交量 50%,總比率為 0.979。這十一列中,兩個組成部分都沒有變化。改變的只有兩者的組成比例。

總比率上升時,兩個組成部分能同時下降嗎?

可以,這正是只看單一標題數字時容易落入的陷阱。以下是假設的兩個交易日,採用整數數字以便計算。

第一天:個股籃子成交 1,000,000 張買權與 600,000 張賣權,比例為 0.60。指數籃子成交 200,000 張買權與 280,000 張賣權,比例為 1.40。合計為 880,000 張賣權除以 1,200,000 張買權,即 0.73。

第二天:兩個比例都下降。個股籃子的比例為 0.55,買權成交量為 600,000 張,賣權成交量為 330,000 張。指數籃子的比例為 1.30,買權成交量為 800,000 張,賣權成交量為 1,040,000 張。合計為 1,370,000 除以 1,400,000,即 0.98。

兩個組成部分都下降,但總比率上升了 0.25。唯一另一項變化,是買權成交量中屬於高比率籃子的占比,從 17% 升至 57%。只觀察總比率的讀者,會以為賣權交易活動增加,但實際上兩個籃子都沒有出現這種情況。

在即時資料中,這個占比並非固定不變。下方面板逐個交易日追蹤兩個籃子的比率,以及 ETF 籃子在買權成交量中的占比。

查詢個股類別與 ETF 類別,逐交易日比較
每個數據背後的精確 SQL 語法
SELECT
    toString(date)                 AS session_date,
    formatDateTime(date, '%b %e')  AS session_label,
    round(sumIf(volume, startsWith(lower(option_type), 'p') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA'))
          / sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')), 2) AS equity_ratio,
    round(sumIf(volume, startsWith(lower(option_type), 'p') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA'))
          / sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA')), 2) AS index_style_ratio,
    round(index_style_ratio - equity_ratio, 2)                                                                            AS ratio_gap,
    round(100 * sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA'))
          / sumIf(volume, startsWith(lower(option_type), 'c')), 1)                                                        AS etf_share_of_calls_pct
FROM global_markets.options_greeks
WHERE date >= (SELECT toDate(max(date))
               FROM global_markets.options_greeks
               WHERE volume > 0) - 45
  AND volume > 0
  AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'JPM', 'KO', 'JNJ',
                            'SPY', 'QQQ', 'IWM', 'DIA')
GROUP BY date
HAVING sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA')) > 0
   AND sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')) > 0
ORDER BY date
Run this yourself

Jun 29,也就是目前顯示範圍內最早的交易日,個股籃子的比率為 0.5,ETF 籃子則為 1.55,兩者差距為 1.05;ETF 籃子占買權成交量的 45.2%。在 Aug 12,上述欄位分別為 0.551.34,差距為 0.79;ETF 籃子的占比為 49.5%。圖中顯示的 32 個交易日,差距欄在起點與終點均為正值,而占比欄則在其下方變動。

為什麼兩個來源對同一天列出不同的 put/call ratio?

關鍵在於分類方式,而 ETF 選擇權是其中最容易產生歧義的案例。ETF 是上市證券,因此可歸入股票類別;但 ETF 也追蹤指數,因此也可歸入指數類別。不同發布者的處理方式並不一致:有些會將 ETF 選擇權納入股票 put/call ratio,有些會將交易所交易產品另列為一個系列,也有些會將其與指數產品歸在一起。在每種情況下,圖表上的標籤看起來都一樣。

這項選擇的影響可以量化。下方面板以相同交易時段計算同一類別的 ratio 兩次:一次排除 ETF 選擇權,另一次則將 ETF 選擇權納入。

查詢以相同股票比率計算,分別納入及排除 ETF 選擇權
每個數據背後的精確 SQL 語法
SELECT
    toString(date)                 AS session_date,
    formatDateTime(date, '%b %e')  AS session_label,
    round(sumIf(volume, startsWith(lower(option_type), 'p') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA'))
          / sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')), 2) AS equity_ratio_etfs_excluded,
    round(sumIf(volume, startsWith(lower(option_type), 'p'))
          / sumIf(volume, startsWith(lower(option_type), 'c')), 2)                                                           AS equity_ratio_etfs_included
FROM global_markets.options_greeks
WHERE date >= (SELECT toDate(max(date))
               FROM global_markets.options_greeks
               WHERE volume > 0) - 30
  AND volume > 0
  AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'JPM', 'KO', 'JNJ',
                            'SPY', 'QQQ', 'IWM', 'DIA')
GROUP BY date
HAVING sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')) > 0
ORDER BY date
Run this yourself

Aug 12,也就是面板中的最後一個交易時段,僅計入個股選擇權的數值為 0.55;將 ETF 選擇權納入後,數值則為 0.94。同一天、相同的成交資料,座標軸上的文字也完全相同。根據某一發布者系列學得的門檻,不能直接套用到另一個發布者的系列。

什麼樣的 put/call ratio 才算高?

可行的判斷原則很窄。比較 ratio 時,只能與相同來源、採用相同計算方式的自身歷史資料相比。百分位數能回答這個問題:今天的讀值位於該精確序列過去一年資料的哪個位置?固定以 1.00 為界則無法回答,因為 1.00 在個股序列中可能是極端成交值,在指數序列中卻可能是常態。

有兩個習慣能讓比較保持一致。引用某個水準前,先閱讀計算方式說明,尤其要確認 ETF 的處理方式。也要把各組成部分與總數一起查看,因為總數可能只因組成比例變化而移動。高 put/call ratio 是否看漲會進一步說明如何解讀,put/call ratio 如何計算則會逐步說明算式。

資料說明與分類定義

ETF 分類包括 SPY、QQQ、IWM 與 DIA。個股分類包括 AAPL、MSFT、NVDA、AMZN、TSLA、JPM、KO 與 JNJ。兩者都是各自分類的樣本,而非涵蓋整個市場,因此本文水準僅用來說明兩者差異,不會重現任何出版商的標題數字。

每個圖表都會加總該交易時段的契約成交量,分別計算買權與賣權,再進行相除。計算不採用美元金額或權利金加權。

每個期間都以最近一個有記錄成交量的交易時段為基準,而非以曆日為基準;買權與賣權則依契約類型的第一個字母配對。因此,即使資料源將 put 和 call 寫成 P 與 C,也能正確分類。

只要該交易時段記錄到某契約的成交量,該契約就會納入計算,包括深度價外履約價。遠價外履約價占避險賣權成交量的比重很大,若排除這些履約價,ETF 分類的數據就會被低估。

指數水準的選擇權採現金結算與歐式履約,和 ETF 選擇權是不同產品。各標的面板以 ETF 選擇權作為指數避險資金流的替代指標,這正是前文提出的分類問題。

在每日資料陸續到位期間,最前端可能會缺少最近一個或兩個交易時段。

常見問題

股票選擇權的正常 put/call ratio 是多少?

單一股票選擇權的 put/call ratio 通常低於 1.00,多數交易時段的買權成交量較大。在上方涵蓋最近 sixty 個交易時段的十二檔標的中,最低讀值為 0.43。任何單一系列的正常水準,應以該系列自身的歷史紀錄為準,而不是套用共同門檻。

為什麼指數 put/call ratio 通常高於 1?

指數 put 是投資組合的標準避險工具。這類買進需求會按照固定時程出現,來源是原本已持有股票的經理人。避險成交量會落在同一比例的 put 端,而這個系列在完整歷史紀錄中的水準也較高。

市場情緒圖表通常顯示哪一種 put/call ratio?

多數已發布的圖表會顯示總體系列或僅股票系列,但座標軸標籤很少明確說明是哪一種。將圖表與其他地方引用的門檻比較前,應先查看計算口徑說明,因為不同系列的運行水準並不相同。

我可以比較兩家不同供應商的 put/call ratio 嗎?

不同供應商的水準不能直接比較。各供應商對 ETF 的處理方式不同,納入計算的交易所成交量也不同。能夠保留下來的比較內容,是同一供應商自身系列中的方向與百分位排名。


本頁每個面板都附有產生該面板的 SQL,因此只要更換標的範圍或時間區間,就能重新建立這些拆分結果。在 Strasmore terminal 上,直接用英文提出相同問題即可。