Strasmore Research
学习 Matt Connor作者: Matt Connor · 更新于 2026-07-23

认沽认购比率(PCR)是什么?期权数据指南

认沽认购比率(PCR)就是看跌期权成交量除以看涨期权成交量。本文用完整的美国期权成交数据测算它的真实区间:按到期期限拆分、指数与个股对比,并放到十年历史中比对。

认沽认购比率(Put/Call Ratio,简称PCR)就是当天看跌期权成交量除以看涨期权成交量:每成交一张看涨方向的合约,对应成交了多少张看跌方向的合约。读数高于1.0,说明当天成交的看跌期权多于看涨期权;明显低于1.0,则说明看涨期权占主导。多数讲解到这里就停了,剩下的只是一句口口相传的经验法则。本页把这个指标真正算出来——覆盖全部挂牌美国期权合约,逐日计算——再按专业投资者的方式把它拆开:指数与个股、按到期期限、以及放到十年历史中比对。

认沽认购比率怎么计算?

把一个交易日内的全部期权成交拿出来,看跌期权的合约成交量加总,看涨期权的合约成交量加总,两者相除。标的下跌时看跌期权升值,上涨时看涨期权升值——所以这个比率被当作一支粗略的温度计,用来衡量下行方向的持仓与上行方向的持仓孰轻孰重。

算术本身刻意做得很简单。假设某只股票在一个交易日内成交了40,000张看跌期权和60,000张看涨期权:40,000 ÷ 60,000 = 0.67,即每三张看涨对应两张看跌。把看涨保持在60,000张、把看跌提高到90,000张,比率就变成1.5。公式到此为止;这里真正难的是解读,不是这道除法。

“成交量”这个词里藏着两个细节:

  • 是成交量,不是未平仓合约数。 标准算法统计的是当天成交的合约张数。另有一种变体使用未平仓合约数(open interest,即尚未了结的存续合约),它的变化慢得多。看图之前先弄清楚它画的是哪一个。
  • 每一笔成交都有买卖两方。 开仓买入的看跌期权、为平掉对冲而卖出的看跌期权、为赚取权利金而卖出的看跌期权,打出来的成交量完全一样。这个比率统计的是交易活跃度,不是交易意图。

全市场的认沽认购比率是什么样?

覆盖全部挂牌的美国个股、ETF与指数期权,逐日计算,从6月1日一直到我们数据中最后一个完整交易日:

查询全市场认沽认购比率逐日走势:2026年6月1日至7月10日的全部挂牌美国期权
每个数字背后的完整 SQL
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
       concat(monthName(day), ' ', toString(toDayOfMonth(day))) AS day_label,
       round(sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P')
             / sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C'), 3) AS put_call_ratio,
       round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-06-01 04:00:00'
  AND window_start < '2026-07-11 04:00:00'
GROUP BY day
ORDER BY day

这个序列在窗口起点读数为0.589June 1),在窗口末尾收于0.686July 10),中间从未越过1.0——全部28个交易日里,看涨期权的成交量都高于看跌期权。这就是第一条实用结论:1.0并不是新手想当然的中性分界线。信息藏在比率于它自己那个区间内的移动之中。下面是已经走完的6月的区间:

查询2026年6月认沽认购比率区间:全市场日度比率的中位数、最高值与最低值
每个数字背后的完整 SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P')
           / sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C') AS ratio
    FROM global_markets.options_minute_aggs
    WHERE window_start >= '2026-06-01 04:00:00'
      AND window_start < '2026-07-01 04:00:00'
    GROUP BY day
)
SELECT round(quantileDeterministic(0.5)(ratio, cityHash64(toString(day))), 3) AS june_median,
       round(max(ratio), 3) AS june_high,
       concat(monthName(argMax(day, ratio)), ' ', toString(toDayOfMonth(argMax(day, ratio)))) AS june_high_day,
       round(min(ratio), 3) AS june_low,
       concat(monthName(argMin(day, ratio)), ' ', toString(toDayOfMonth(argMin(day, ratio)))) AS june_low_day
FROM daily

6月的中位数为0.793,区间下沿是0.589(出现在June 1),上沿是0.923(出现在June 25)。再看这个月人人都记得的那一天——6月5日的抛售,2026年6月市场回顾中有完整记录。当天期权成交103.1百万张合约,是窗口内最繁忙的一个交易日,比率跳升至0.866,而前一天还是0.679。抛售日与看跌占优、成交量创窗口新高的那一天是同一天:下行持仓涌入的当下,比率就把它记录了下来。

两点实务提醒。其一,这个水位会随当周成交产品结构的变化而漂移,所以区间内部逐日的小幅摆动单独看意义有限。其二,总成交量是必不可少的背景——同样的比率,若建立在翻倍的合约张数之上,分量就重得多,这也是上面面板在比率旁边同时列出合约张数的原因。

CBOE、ISEE与其他有名字的认沽认购基准

如果您的券商或财经媒体的图表报出“那个”认沽认购比率,它几乎一定是在引用少数几条有名字的公开序列中的某一条——而它们统计的样本范围各不相同:

  • $CPC —— CBOE总认沽认购比率:CBOE旗下各交易所成交的全部期权,看跌除以看涨。
  • $CPCE —— 只含股票的比率:个股期权。像SPY这类实物交割的ETF期权在这条分界线上被划到股票一侧,尽管交易者把它们当指数产品来用。
  • $CPCI —— 只含指数的比率:现金结算的指数期权(SPX、NDX、RUT、VIX等)。
  • ISEE —— ISE情绪指数,构造方向正好相反:用看涨除以看跌,再乘以100,且只统计客户开仓买入的多头单。ISEE高意味着看涨占优;$CPC高意味着看跌占优。把其中一个当成另一个来读,结论会完全反过来。

CBOE自己那条股票/指数分界线把SPY这类ETF期权归入股票一侧。下面这个面板换了一种划法,把宽基ETF从个股中单独拆出来:这两者的交易特征毫无相似之处。2026年6月的全部合约,归入三个样本组:

查询指数类与个股期权对比:2026年6月按样本组划分的认沽认购比率
每个数字背后的完整 SQL
WITH substring(ticker, 3, length(ticker) - 17) AS root
SELECT multiIf(root IN ('SPX', 'SPXW', 'XSP', 'NDX', 'NDXP', 'RUT', 'RUTW', 'VIX', 'VIXW', 'DJX', 'OEX', 'XEO'), 'Index options (SPX, VIX, NDX)',
               root IN ('SPY', 'QQQ', 'IWM', 'DIA'), 'Broad-market ETFs (SPY, QQQ, IWM, DIA)',
               'Single stocks and other ETFs') AS population,
       round(sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P')
             / sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C'), 3) AS put_call_ratio,
       round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(100 * sum(toFloat64(volume)) / sum(sum(toFloat64(volume))) OVER (), 1) AS pct_of_volume
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-06-01 04:00:00'
  AND window_start < '2026-07-01 04:00:00'
GROUP BY population
ORDER BY put_call_ratio DESC

两个与指数挂钩的样本组都偏看跌——宽基ETF为1.175,现金结算的指数期权为1.096,双双高于1.0——而个股及其余标的只有0.588,勉强达到每两张看涨才对应一张多一点的看跌。这背后是结构性的机制:指数产品是组合对冲的标准工具,而对冲用的是看跌期权;个股吸引的则是投机性的看涨买盘。成交量占比同样重要——个股与其他ETF占了6月合约量的59.9%,所以一条“全市场”比率,本质上大半是一条戴着指数帽子的个股比率。

比率取决于您把它对准什么

再往下看一层。同样的算法,2026年6月,对准五个交投最活跃的标的:

查询按标的划分的认沽认购比率:2026年6月五个交投最活跃的标的
每个数字背后的完整 SQL
SELECT multiIf(ticker LIKE 'O:SPY2%', 'SPY',
               ticker LIKE 'O:QQQ2%', 'QQQ',
               ticker LIKE 'O:NVDA2%', 'NVDA',
               ticker LIKE 'O:TSLA2%', 'TSLA',
               'AAPL') AS underlying,
       round(sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P')
             / sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C'), 2) AS put_call_ratio,
       round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-06-01 04:00:00'
  AND window_start < '2026-07-01 04:00:00'
  AND (ticker LIKE 'O:SPY2%' OR ticker LIKE 'O:QQQ2%' OR ticker LIKE 'O:NVDA2%'
       OR ticker LIKE 'O:TSLA2%' OR ticker LIKE 'O:AAPL2%')
GROUP BY underlying
ORDER BY put_call_ratio DESC

五者之中SPY最偏看跌,为1.16NVDA则只有0.56。拿一只标的的比率去和另一只比,几乎没有意义——有用的比较,是一只标的与它自己的历史相比。

认沽认购比率会随到期期限变化吗?

一天的成交量并不是同质的一堆:有的合约几小时后就到期,有的几年后才到期。把6月的成交量按距到期天数分组——参见DTE是什么意思——就能把对冲盘和彩票式的投机盘分开:

查询按距到期天数划分的认沽认购比率:2026年6月全部挂牌美国期权
每个数字背后的完整 SQL
WITH toDate(toTimeZone(window_start, 'America/New_York')) AS trade_day,
     toDate(concat('20', substring(ticker, length(ticker) - 14, 2), '-',
                   substring(ticker, length(ticker) - 12, 2), '-',
                   substring(ticker, length(ticker) - 10, 2))) AS expiry,
     dateDiff('day', trade_day, expiry) AS dte
SELECT multiIf(dte <= 0, '0DTE (expires today)', dte <= 7, '1-7 days', dte <= 30, '8-30 days',
               dte <= 90, '31-90 days', '91+ days') AS expiry_bucket,
       round(sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P')
             / sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C'), 3) AS put_call_ratio,
       round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(100 * sum(toFloat64(volume)) / sum(sum(toFloat64(volume))) OVER (), 1) AS pct_of_volume
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-06-01 04:00:00'
  AND window_start < '2026-07-01 04:00:00'
GROUP BY expiry_bucket
ORDER BY min(dte)

沿着日历往远端每走一步,比率就下一个台阶。当天到期的合约——0DTE期权——读数为0.957,是五个区间里最偏看跌的一档,而且仅这一档就占了6月总成交量的34.3%。到期1至7天的区间降至0.756;8至30天为0.717;31至90天为0.634;而在91天及以上、也就是曲线上LEAPS长期期权那一端,触底于0.564——这是全市场最偏看涨的一个角落。

这张表悄悄改写了那条口口相传的解读。全市场比率是各到期期限的混合值,而混合的结构每周都在变:一个成交集中的到期周五会把权重推向近端,标题上的数字随之移动,而市场的紧张程度其实一点没变。要比就比同类。

从历史看,一个读数有多极端?

六周的数据说明不了一个读数是否罕见。那需要以年为单位——所以下面用市场上历史最长、成交最活跃的期权家族SPY,列出我们期权数据中每个完整年度里日度认沽认购比率的中位数、最低值与最高值:

查询SPY认沽认购比率十年回溯:日度读数按年份的中位数、最低值与最高值
每个数字背后的完整 SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P')
           / sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C') AS ratio
    FROM global_markets.options_minute_aggs
    WHERE ticker LIKE 'O:SPY%'
    GROUP BY day
    HAVING sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C') > 0
)
SELECT toYear(day) AS year,
       count() AS sessions,
       round(quantileDeterministic(0.5)(ratio, cityHash64(toString(day))), 3) AS median_ratio,
       round(min(ratio), 3) AS low,
       round(max(ratio), 3) AS high
FROM daily
WHERE toYear(day) >= 2015
GROUP BY year
ORDER BY year

从中可以读出三点。第一,表中每一年SPY的日度比率中位数都高于1.0——指数对冲带来的看跌倾斜不是2026年的一时情绪,而是这个产品的常态。第二,这个水位在十年间一路下移:中位数从1.7542015年)降到1.1682025年),同期短期限看涨期权的交易规模不断扩张。第三,年度区间很宽——2026年至今的读数横跨0.8481.751,样本为137个交易日。这就是对“今天的读数算极端吗”这个问题的诚实回答:拿它和这个产品自身的分布比,永远不要和1.0比。

如何跟踪单只股票的认沽认购比率

上面的面板是可复用的做法,不是固定的报告。要为您持有的某只股票构建这个比率:

  1. 先确定样本范围。 是某一只标的的期权,而不是“大盘”——上文那些结构效应会让混合出来的数字无从解读。
  2. 把当天的看跌成交量与看涨成交量分别加总,覆盖该标的的全部行权价与全部到期日,然后相除。在期权代码中,倒数第九个字符是PC——分类全靠这一个字母。
  3. 先建立历史,再判断水位。 单独一天的0.9毫无意义,除非您知道这只标的自己的中位数和区间——也就是SPY那个面板逐年在做的事。
  4. 同时看成交量。 出现在平常成交量上的尖峰是噪音;同样的尖峰出现在六周内最繁忙的一天,就是上文的6月5日。
  5. 固定您的到期范围。 是覆盖全部到期日,还是只看近端?两种做法都站得住脚;在不同交易日之间混着用则不行。

交易者如何解读它——以及它诚实的边界

以下都是解读,不是定律:比率上行被读作对冲需求上升,而极端尖峰被逆向投资者读作投降式抛售——人群终于把保险买齐了。6月5日那一天诚实地展示了其中的机制:比率是在抛售进行当中飙升的,不是在抛售之前。在这个窗口里,它表现得像一支同步温度计,而不是一个预测指标。任何经验法则都要拿真实序列去检验——同时别忘了,0DTE的成交量还在不断改变“正常”的样子。

FAQ

认沽认购比率多少算正常?

完全取决于样本范围。2026年6月,全部挂牌美国期权的全市场日度中位数为0.793,区间在0.5890.923之间——从未高于1.0。同一个月里,宽基ETF期权为1.175,而个股与其他ETF为0.588。对SPY而言的“正常”,放到一只个股上并不正常。

认沽认购比率高是看涨还是看跌?

两种解读都存在,而且都不是定律。按字面理解,看跌期权成交量大意味着市场在为下行布置头寸;逆向投资者则把极端尖峰视为卖出的人群已经全部就位的信号。在2026年6月的数据里,尖峰恰好出现在抛售当天——同步,而非领先。

认沽认购比率和VIX、隐含波动率是一回事吗?

不是,这也是最常见的混淆。认沽认购比率建立在成交量之上——有多少张合约易手。VIX和隐含波动率来自期权价格:这些合约有多贵,以年化波动率的形式表示。隐含波动率偏斜(skew)比较的是下行看跌期权与上行看涨期权的价格。看跌期权成交量很大,价格却可能相当平静;成交量很小,价格却可能透着恐慌——两支仪表可以给出不一致的读数,而且可以同时都是对的。

$CPC、$CPCE、$CPCI分别是什么?

它们是CBOE公开发布的认沽认购比率:$CPC统计全部成交量,$CPCE统计股票期权(SPY及其他ETF在那里算作股票),$CPCI统计现金结算的指数期权。这个划分很重要。我们自己的三分法没有沿用CBOE的两分线,而是把宽基ETF从指数期权和个股中同时拆出来:2026年6月,宽基ETF为1.175,指数期权为1.096,两者均高于1.0,而个股与其他ETF为0.588。ISE的ISEE则是另一条方向相反的指数:看涨除以看跌,且只统计客户开仓买入。

认沽认购比率用成交量还是未平仓合约数计算?

标准算法用的是当天的成交量。基于未平仓合约数的变体也存在,它的变化慢得多,两者在同一天可能指向不同方向——成交量与未平仓合约数的区别一文讲清了这个分别。


本页的每一个数值都来自对完整期权成交数据的已存储查询——您可以展开任意面板查看其SQL,也可以在Strasmore终端上为自己的自选股计算这个比率。

#期权#put-call ratio#hedging#market structure