個股與指數 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 交易量。
每個數據背後的精確 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樣本中的差距很大。最低讀值是 0.43,出現在 MSFT;最高讀值是 2.86,出現在 IWM。該標的在觀察期間成交了 9.6 百萬張 call 契約。bucket 欄標示各列是個股還是大盤 ETF。解讀 ratio 欄時,應一併參考這一欄。
在繼續之前,先說明一項限制。已公布的指數 ratio,是以指數水準本身的選擇權計算,並在到期時以現金結算,而不是交付股票。迷你指數選擇權是這類契約的較小名目金額版本。本頁各表使用大盤 ETF 選擇權,作為相同避險流的個別標的代理;這正是不同資料供應商產生歧異的地方。
各項公布比率的計算內容
- 僅股票:個別公司的股票選擇權,即單一股票流量;多數交易時段以買權為主。
- 僅指數:以指數點位為標的的選擇權,採現金結算,涵蓋大部分投資組合避險交易量。
- 總計:上述兩類的所有契約,賣權交易量高於買權交易量。
三者計算的都是交易量,也就是交易時段內易手的契約數,而不是交易結束後仍未平倉的部位。交易量與未平倉量區分了這兩個概念。
總 put/call ratio 是另外兩者的平均值嗎?
不是。總比率是加權混合值,權重取決於買權成交量。設 w 為指數類別占兩個類別買權總成交量的比重。總比率等於個股比率,加上 w 乘以兩個比率之間的差距。當指數類別只占買權成交量的一小部分時,總比率幾乎貼近個股比率。當指數類別占主導地位時,總比率則會向指數比率靠攏。
下一個面板將兩個組成部分固定在其測得的六十個交易日水準,並讓 w 從零掃描至百分之百。
每個數據背後的精確 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在將兩個組成部分固定於 0.562 與 1.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 籃子在買權成交量中的占比。
每個數據背後的精確 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在 Jun 29,也就是目前顯示範圍內最早的交易日,個股籃子的比率為 0.5,ETF 籃子則為 1.55,兩者差距為 1.05;ETF 籃子占買權成交量的 45.2%。在 Aug 12,上述欄位分別為 0.55、1.34,差距為 0.79;ETF 籃子的占比為 49.5%。圖中顯示的 32 個交易日,差距欄在起點與終點均為正值,而占比欄則在其下方變動。
為什麼兩個來源對同一天列出不同的 put/call ratio?
關鍵在於分類方式,而 ETF 選擇權是其中最容易產生歧義的案例。ETF 是上市證券,因此可歸入股票類別;但 ETF 也追蹤指數,因此也可歸入指數類別。不同發布者的處理方式並不一致:有些會將 ETF 選擇權納入股票 put/call ratio,有些會將交易所交易產品另列為一個系列,也有些會將其與指數產品歸在一起。在每種情況下,圖表上的標籤看起來都一樣。
這項選擇的影響可以量化。下方面板以相同交易時段計算同一類別的 ratio 兩次:一次排除 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在 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 上,直接用英文提出相同問題即可。