个股与指数Put/Call比率:多少算高?
个股与指数put/call比率的正常区间不同。了解指数比率为何更高、各自如何计算,并用八只股票和四只宽基ETF的样本判断读数是否异常。
较高的 put/call 比率并非一个固定数字。同一份期权成交数据至少可以计算出三种比率。一种只统计个股期权。一种只统计指数产品。第三种则将两者合并。每种比率都有自己的正常区间。因此,1.20 的读数在一个序列中可能是异常值,在另一个序列中却可能只是普通交易日的水平。如果您刚接触这项指标,put/call 比率衡量什么将介绍基础知识。
为什么指数看跌/看涨期权比率高于个股比率?
先看买方是谁。指数看跌期权是覆盖整个多元化投资组合的最低成本单一工具。持有四百个头寸的基金不会分别买入四百个看跌期权。基金会买入指数看跌期权,按日历滚动,并将权利金计入保险成本。无论基金经理是否看好市场,这类交易量都是对基金已持有股票的保护。
个股期权的交易结构不同。相当一部分交易量来自买入个股看涨期权,备兑看涨期权卖出也会在另一侧增加看涨期权交易量。个股看跌期权的买入确实存在,但其规模相较更大的看涨期权交易流仍然有限。
这个公式无法区分这些交易流。将以对冲为主的看跌期权交易流除以清淡的看涨期权交易流,结果可能接近或高于1.00。将规模适中的看跌期权交易流除以活跃的看涨期权交易流,结果可能接近0.50。同一个公式,对应两种正常区间。
下表统计了八只家喻户晓的股票和四只宽基ETF过去六十个交易日的合约成交量,然后分别用每个标的的看跌期权成交量除以看涨期权成交量。
每个数字背后的完整 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百万张看涨期权合约。bucket列标明各行对应的是个股还是宽基ETF。请结合该列解读比率列。
在继续之前,需要说明一点。公布的指数比率使用指数水平本身的期权。该期权在到期时以现金结算,而不是交付股票。迷你指数期权是这类合约的较小名义本金版本。本文各表使用宽基ETF期权,作为相同对冲交易流的标的代理;这正是不同数据供应商存在分歧的地方。
各项已公布比率统计什么?
- 仅股票:统计个别公司的股票期权,即单一股票期权交易流;多数交易时段看涨期权成交量占优。
- 仅指数:统计指数点位期权,以现金结算,构成大部分组合对冲交易量。
- 总计:统计上述两类期权的全部合约,其中看跌期权成交量高于看涨期权。
这三项均统计成交量,即交易时段内易手的合约数量,而不是交易结束后仍未平仓的持仓数量。成交量与未平仓合约对这两个概念进行了区分。
总put/call比率是另外两个比率的平均值吗?
不是。总比率是加权混合值,权重取决于看涨期权成交量。设指数类别的看涨期权成交量占两个类别总成交量的比例为 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。这十一行中,两个组成部分均未发生变化。变化的只有构成比例。
总比率上升、但两个组成部分都下降,可能吗?
可能。这正是单一标题数字容易造成误判的地方。下面用一组假设的交易日数据说明,数字取整以便计算。
第一天:股票篮子成交一百万张看涨期权和六十万张看跌期权,比率为零点六零。指数篮子成交二十万张看涨期权和二十八万张看跌期权,比率为一点四零。合计为八十八万张看跌期权除以一百二十万张看涨期权,即零点七三。
第二天:两个比率都下降。股票篮子的比率为零点五五,成交六十万张看涨期权和三十三万张看跌期权。指数篮子的比率为一点三零,成交八十万张看涨期权和一百零四万张看跌期权。合计为一百三十七万除以一百四十万,即零点九八。
两个组成部分都下降了。但总比率上升了零点二五。另一个发生变化的是高比率篮子所占的看涨期权成交量比例,从百分之十七升至百分之五十七。只观察总比率的读者,会记录到看跌期权活动激增,但实际上两个篮子都没有出现这种情况。
在实时数据中,这一占比并不是固定值。下方面板按交易日跟踪两个篮子的比率,以及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 比率不同?
关键在于分组,而 ETF 期权正是容易产生歧义的情况。ETF 是上市证券,因此可以归入股票组。ETF 同时跟踪指数,因此也可以归入指数组。不同发布方的处理方式并不一致:有些将 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在 Aug 12(图表中的最后一个交易时段),仅计算个股期权时的数值为 0.55,将 ETF 期权计入后的数值为 0.94。同一天、同一份交易数据,坐标轴上的文字也相同。根据某一家发布方的序列设定的阈值,不能直接套用到另一家发布方的序列上。
那么,什么样的看跌/看涨期权比率算高?
可操作的判断规则很窄。只有将比率与其自身历史进行比较才有意义,而且数据来源和计算方式必须相同。百分位可以回答这个问题:今天的读数在该精确序列过去一年中处于什么位置。固定使用1.00作为界线则不行,因为1.00在个股序列中可能是极端成交读数,在指数序列中却可能很常见。
两个习惯有助于保持比较的准确性。引用某个水平前,先阅读计算说明,尤其要确认ETF的处理方式。同时查看各组成部分和总值,因为总值可能仅因构成比例变化而波动。高看跌/看涨期权比率是否看涨将进一步解释其含义,看跌/看涨期权比率如何计算则会逐步说明计算过程。
数据说明和分类定义
ETF分类包括SPY、QQQ、IWM和DIA。个股分类包括AAPL、MSFT、NVDA、AMZN、TSLA、JPM、KO和JNJ。两者都只是各自类别的样本,并不代表整个市场。因此,这里的水平仅用于展示两类之间的差异,不会复现任何发布方的头条数据。
每个面板都会汇总该交易时段的合约成交量,分别计算看涨期权和看跌期权的成交量,再进行相除。计算不采用美元金额或权利金加权。
每个窗口均以有成交量记录的最近交易时段为基准,而不是以日历日期为基准。看跌期权和看涨期权则按合约类型的首字母匹配,因此,即使数据源使用P和C而非put和call,也能正确分类。
只要某份合约在该交易时段有成交量记录,就会计入,包括深度虚值行权价。远端行权价在对冲性看跌期权成交量中占比较大,剔除这些合约会低估ETF分类的数值。
指数层面的期权采用现金结算和欧式行权,与ETF期权属于不同产品。各标的面板使用ETF期权代替指数对冲资金流,这正是上文提出的分类问题。
最近一个或两个交易时段可能暂时缺失,因为当天的记录仍在录入。
常见问题
股票期权的正常看跌/看涨期权比率是多少?
单只股票期权的比率通常低于 1.00,因为多数交易时段的看涨期权成交量更大。在上方的最近六十个交易时段面板所覆盖的十二只标的中,最低读数为 0.43。对于任何单一期权系列而言,正常水平取决于该系列自身的历史,而不是统一阈值。
为什么指数看跌/看涨期权比率通常高于 1?
指数看跌期权是投资组合的标准对冲工具。已经持有股票的基金经理会按计划进行这类买入。对冲交易量会计入同一比率的看跌期权一侧,而方向性交易也使用这一比率。因此,该系列在整个历史记录中的水平都更高。
市场情绪图表通常显示哪种看跌/看涨期权比率?
大多数公开图表显示总系列或仅股票系列,但坐标轴标签很少说明具体是哪一种。在将图表与其他地方引用的阈值比较前,请先查看计算口径说明,因为不同系列的运行水平不同。
我可以比较两家不同数据提供商的看跌/看涨期权比率吗?
比率水平不能直接比较。不同提供商对 ETF 的处理方式不同,统计的交易所成交量范围也不同。能够保留下来的比较内容,是同一提供商系列内的方向和百分位排名。
这里的每个面板都附有生成它的 SQL,因此您可以使用不同的标的范围或时间窗口重建这些拆分数据。在 Strasmore 终端中用简单英语提出同样的问题。