Strasmore Research
Обучение Matt ConnorАвтор: Matt Connor

Как рассчитывается коэффициент put/call ratio

Узнайте формулу расчета put/call ratio на основе объема торгов и открытого интереса. Разбираем особенности индексов и нормальные значения показателя в две тысячи двадцать шестом году.

Что такое put/call ratio

Put/call ratio рассчитывается как отношение количества проторгованных put-контрактов к количеству проторгованных call-контрактов за один и тот же период. Если за торговую сессию было совершено сделок с 250 000 put-опционов и 500 000 call-опционов, коэффициент составит 0,50. Любые дискуссии об этом индикаторе, будь то сравнение объёма торгов с открытым интересом или акций с индексами, сводятся к тому, какие именно данные учитывались в числителе и знаменателе этой дроби. Базовое определение приведено в разделе что такое put/call ratio. На этой странице представлены соответствующие расчеты.

Пошаговая формула put/call ratio

Формула включает два входных параметра и одну операцию: подсчет объема торгов по put-опционам, подсчет объема торгов по call-опционам и деление первого показателя на второй. Put-опцион — это контракт, дающий владельцу право продать сто акций базового актива по фиксированной цене исполнения (strike price) в день истечения или до него. Call-опцион дает право купить актив по фиксированной цене. Объем торгов (volume) учитывает количество контрактов, сменивших владельца в течение сессии, и обнуляется при открытии следующей.

В расчете не используется взвешивание. Один лот недельного опциона «вне денег» (out of the money) учитывается так же, как один лот самого активного страйка на доске, и ни один из них не масштабируется с учетом объема денежных средств под риском. Коэффициент представляет собой просто количество контрактов.

Выбор, который влияет на результат, заключается в том, какие именно контракты учитывать. В таблице ниже приведены идентичные расчеты для восьми ликвидных инструментов за один полный месяц.

ЗапросОбъем пут- и колл-опционов по восьми компаниям, июль 2026 г.
Точный SQL-код для каждого числа
SELECT
    underlying_symbol                 AS symbol,
    sumIf(volume, right_letter = 'P') AS put_volume,
    sumIf(volume, right_letter = 'C') AS call_volume,
    round(toFloat64(sumIf(volume, right_letter = 'P'))
        / toFloat64(sumIf(volume, right_letter = 'C')), 2) AS put_call_ratio
FROM
(
    SELECT
        underlying_symbol,
        volume,
        substring(ticker, length(ticker) - 8, 1) AS right_letter
    FROM global_markets.options_greeks
    WHERE date >= '2026-07-01'
      AND date <  '2026-08-01'
      AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
      AND volume > 0
)
GROUP BY symbol
HAVING call_volume > 0 AND put_volume > 0
ORDER BY put_call_ratio DESC
Run this yourself

В июле две тысячи двадцать шестого года IWM показал самый высокий коэффициент среди восьми инструментов — 3.11 put-опциона на один call-опцион, а MSFT — самый низкий, 0.38. Одна формула, один месяц и разница между верхним и нижним значением, которая значительно шире, чем ежедневные колебания, о которых принято писать. Коэффициент, приведенный без указания категории, практически не несет полезной информации.

На основе объёма торгов или открытого интереса

Числитель и знаменатель могут рассчитываться двумя способами.

Версия на основе объёма учитывает контракты, проторгованные за определённый период. Это показатель потока, который обнуляется каждую сессию и отражает действия участников рынка за день. Именно этот показатель используется в большинстве рыночных обзоров.

Версия на основе открытого интереса делит количество непогашенных put-опционов на количество call-опционов. Открытый интерес — это число контрактов, которые были открыты и ещё не были закрыты, исполнены или по которым не истёк срок действия. Это показатель запаса, отражающий накопленную позицию, а не дневную активность; он меняется медленно. Сессия, в ходе которой тридцать тысяч put-опционов переходят от одного держателя к другому, увеличивает объём торгов на тридцать тысяч, но оставляет открытый интерес без изменений. В статье Объём опционов против открытого интереса подробно описан механизм учёта.

Рассмотрим гипотетический инструмент, который завершил вторник с сорока тысячами put-опционов и пятьюдесятью тысячами call-опционов в открытом интересе, что даёт коэффициент открытого интереса ноль целых восемь десятых. В среду было проторговано тридцать тысяч put-опционов и десять тысяч call-опционов, что даёт коэффициент объёма три целых ноль десятых. Оба числа описывают одну и ту же опционную цепочку в один и тот же день, они различаются почти в четыре раза, и оба верны. Коэффициенты открытого интереса также лежат в основе расчёта max pain, где страйки взвешиваются по количеству открытых контрактов, а не по количеству проторгованных.

Показатели потока подвержены резким колебаниям. Ниже приведено соотношение дневных объёмов для одного ETF и одной акции за один и тот же месяц.

ЗапросДневное соотношение объемов пут/колл, SPY против AAPL, июль 2026 г.
Точный SQL-код для каждого числа
SELECT
    toString(d)                                                 AS session_date,
    concat(formatDateTime(d, '%b '), toString(toDayOfMonth(d))) AS day_label,
    round(toFloat64(sumIf(volume, sym = 'SPY' AND right_letter = 'P'))
        / toFloat64(sumIf(volume, sym = 'SPY' AND right_letter = 'C')), 2)  AS spy_put_call_ratio,
    round(toFloat64(sumIf(volume, sym = 'AAPL' AND right_letter = 'P'))
        / toFloat64(sumIf(volume, sym = 'AAPL' AND right_letter = 'C')), 2) AS aapl_put_call_ratio
FROM
(
    SELECT
        date                                     AS d,
        underlying_symbol                        AS sym,
        volume,
        substring(ticker, length(ticker) - 8, 1) AS right_letter
    FROM global_markets.options_greeks
    WHERE date >= '2026-07-01'
      AND date <  '2026-08-01'
      AND underlying_symbol IN ('SPY', 'AAPL')
      AND volume > 0
)
GROUP BY d
HAVING countIf(sym = 'SPY' AND right_letter = 'C') > 0
   AND countIf(sym = 'AAPL' AND right_letter = 'C') > 0
ORDER BY d
Run this yourself

Jul 1 показатель SPY составил 1.1 против 0.49 для AAPL. К Jul 31 значения пары составили 2 и 0.55. В течение 22 сессий дневные показатели демонстрируют скачки, а обе серии находятся на разных уровнях на графике. Разрыв между уровнями является более значимым фактом из этих двух.

Акции, индексы, ETP и общий показатель: четыре коэффициента Cboe

Показатель, который называют «put/call ratio», рассчитывается на основе ежедневной рыночной статистики Cboe, публикующей несколько таких коэффициентов. Категории согласно классификации Cboe:

  • Equity put/call ratio: опционы на отдельные акции.
  • Index put/call ratio: опционы на индексы, включая SPX и VIX.
  • Exchange traded products put/call ratio: опционы на ETF, куда входят SPY, QQQ и IWM.
  • Total put/call ratio: сумма всех категорий.

Каждый из них вычисляется одинаково: общее количество put-опционов делится на общее количество call-опционов внутри категории, поэтому значения различаются только наполнением корзины. Эти корзины не являются взаимозаменяемыми.

Индексные опционы — стандартный инструмент для хеджирования всего портфеля одной сделкой. Фонд, удерживающий широкий портфель акций, покупает индексные put-опционы для защиты и не имеет сопоставимых причин для покупки индексных call-опционов. Этот спрос носит односторонний характер и полностью отражается в числителе индексной категории. Потоки по отдельным акциям имеют противоположный уклон, где покупка call-опционов на конкретные бумаги составляет значительную и устойчивую долю объема. Эти две категории находятся на разных уровнях в силу своей структуры, и сравнение показателя одной категории с бенчмарком другой — самая распространенная ошибка при работе с этим индикатором.

Широкие рыночные ETF выполняют ту же хеджирующую роль, что и индексные опционы, но при этом учитываются в категории биржевых продуктов (ETP). На графике ниже представлен месячный медианный показатель для обеих сторон этого разделения.

ЗапросМедианное месячное соотношение пут/колл: широкие рыночные ETF против отдельных акций
Точный SQL-код для каждого числа
WITH
    daily AS
    (
        SELECT
            d,
            toFloat64(sumIf(volume, right_letter = 'P' AND sym IN ('SPY', 'QQQ', 'IWM')))
                / toFloat64(sumIf(volume, right_letter = 'C' AND sym IN ('SPY', 'QQQ', 'IWM')))     AS etf_ratio,
            toFloat64(sumIf(volume, right_letter = 'P' AND sym NOT IN ('SPY', 'QQQ', 'IWM')))
                / toFloat64(sumIf(volume, right_letter = 'C' AND sym NOT IN ('SPY', 'QQQ', 'IWM'))) AS stock_ratio
        FROM
        (
            SELECT
                date                                     AS d,
                underlying_symbol                        AS sym,
                volume,
                substring(ticker, length(ticker) - 8, 1) AS right_letter
            FROM global_markets.options_greeks
            WHERE date >= '2025-08-01'
              AND date <  '2026-08-01'
              AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
              AND volume > 0
        )
        GROUP BY d
        HAVING countIf(right_letter = 'C' AND sym IN ('SPY', 'QQQ', 'IWM')) > 0
           AND countIf(right_letter = 'C' AND sym NOT IN ('SPY', 'QQQ', 'IWM')) > 0
    )
SELECT
    toString(toStartOfMonth(d))                AS month,
    formatDateTime(toStartOfMonth(d), '%b %Y') AS month_label,
    round(quantileExact(0.5)(etf_ratio), 2)    AS etf_median_ratio,
    round(quantileExact(0.5)(stock_ratio), 2)  AS stock_median_ratio
FROM daily
GROUP BY month, month_label
ORDER BY month
Run this yourself

Период на графике охватывает время с Aug 2025 по Jul 2026. На обоих концах временного отрезка медианное дневное значение коэффициента для корзины ETF находилось около или выше 1,0: 1.52 в первом месяце и 1.49 в последнем. Корзина отдельных акций оставалась ниже 1,0 на обоих концах — 0.6 и 0.56 — на протяжении всех 12 месяцев, представленных на графике. Этот постоянный разрыв объясняет, почему бенчмарк должен быть четко привязан к своей категории, прежде чем его значение приобретет смысл.

Что считается нормальным соотношением put/call

Норма — это диапазон, причем он относится скорее к категории активов, чем к самому индикатору. В таблице ниже представлены все торговые сессии за последние двенадцать месяцев и указан медианный дневной коэффициент для каждой корзины, а также границы десятого и девяностого перцентилей.

ЗапросФактические значения дневного соотношения за 12 месяцев торгов
Точный SQL-код для каждого числа
WITH
    daily AS
    (
        SELECT
            d,
            toFloat64(sumIf(volume, right_letter = 'P' AND sym IN ('SPY', 'QQQ', 'IWM')))
                / toFloat64(sumIf(volume, right_letter = 'C' AND sym IN ('SPY', 'QQQ', 'IWM')))     AS etf_ratio,
            toFloat64(sumIf(volume, right_letter = 'P' AND sym NOT IN ('SPY', 'QQQ', 'IWM')))
                / toFloat64(sumIf(volume, right_letter = 'C' AND sym NOT IN ('SPY', 'QQQ', 'IWM'))) AS stock_ratio,
            toFloat64(sumIf(volume, right_letter = 'P'))
                / toFloat64(sumIf(volume, right_letter = 'C'))                                      AS all_ratio
        FROM
        (
            SELECT
                date                                     AS d,
                underlying_symbol                        AS sym,
                volume,
                substring(ticker, length(ticker) - 8, 1) AS right_letter
            FROM global_markets.options_greeks
            WHERE date >= '2025-08-01'
              AND date <  '2026-08-01'
              AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
              AND volume > 0
        )
        GROUP BY d
        HAVING countIf(right_letter = 'C' AND sym IN ('SPY', 'QQQ', 'IWM')) > 0
           AND countIf(right_letter = 'C' AND sym NOT IN ('SPY', 'QQQ', 'IWM')) > 0
    )
SELECT
    p.2                                  AS category,
    round(quantileExact(0.1)(p.3), 2)    AS p10_ratio,
    round(quantileExact(0.5)(p.3), 2)    AS median_ratio,
    round(quantileExact(0.9)(p.3), 2)    AS p90_ratio
FROM
(
    SELECT arrayJoin([
        tuple(1, 'Broad market ETFs', etf_ratio),
        tuple(2, 'Single stocks',     stock_ratio),
        tuple(3, 'All eight names',   all_ratio)
    ]) AS p
    FROM daily
)
GROUP BY p.1, p.2
ORDER BY p.1
Run this yourself

Для корзины отдельных акций медианное значение за сессию составило 0.58, при этом на десятом перцентиле показатель равен 0.45, а на девяностом — 0.76. Корзина ETF на широкий рынок располагается выше по всему распределению: медиана 1.54 при границах от 1.25 до 1.86.

Является ли значение 1,20 высоким? Для корзины отдельных акций показатель 1,20 находится выше девяностого перцентиля, составляющего 0.76, что делает его необычным. Для корзины ETF это значение близко к стандартному. В категории индексов, где концентрируются описанные выше хеджирующие потоки, ту же цифру следует оценивать по иным уровням. Одно число, но категория определяет вердикт еще до начала интерпретации.

Эти диапазоны также имеют свойство смещаться. Перцентили, рассчитанные за последние двенадцать месяцев, описывают именно этот период, а эталонный диапазон, скопированный из статьи десятилетней давности, описывает рынок с другим набором контрактов и практически полным отсутствием торговли опционами с экспирацией в день открытия. Пересчет перцентилей на основе актуального временного окна — единственный объективный способ определить, является ли значение высоким или низким.

Интерпретация — это задача, отдельная от расчетов. Высокое значение одними воспринимается как медвежье позиционирование, а контрарианцами — как перегруженный хедж, и статья является ли высокое соотношение put/call бычьим сигналом подробно разбирает этот спор.

Почему используется 21-дневная скользящая средняя

Показатель за одну сессию — это лишь малая выборка из зашумленного ряда данных, поэтому публикуемая версия обычно сглаживается. Общепринятым стандартом является 21-дневная скользящая средняя, что примерно соответствует одному торговому месяцу: суммируются показатели за последние двадцать один день, делятся на двадцать один, после чего окно сдвигается на одну сессию вперед. Существуют также десяти- и пятидесятидневные версии, и выбор периода определяет, насколько сильно будет заметен всплеск волатильности одного дня.

Важно учитывать два нюанса. Усреднение двадцати одного дневного коэффициента — это не то же самое, что деление общего объема put-опционов за месяц на объем call-опционов за тот же период; первый метод придает равный вес каждой сессии, второй — придает больший вес сессиям с высокой активностью. Кроме того, сглаженное значение на экстремуме формируется в течение месяца, поэтому оно и выходит из этого экстремального состояния постепенно.

ЗапросДневное соотношение пут/колл по отдельным акциям относительно 21-дневной скользящей средней
Точный SQL-код для каждого числа
WITH
    daily AS
    (
        SELECT
            d,
            toFloat64(sumIf(volume, right_letter = 'P'))
                / toFloat64(sumIf(volume, right_letter = 'C')) AS raw_ratio
        FROM
        (
            SELECT
                date                                     AS d,
                volume,
                substring(ticker, length(ticker) - 8, 1) AS right_letter
            FROM global_markets.options_greeks
            WHERE date >= '2026-01-02'
              AND date <  '2026-08-01'
              AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
              AND volume > 0
        )
        GROUP BY d
        HAVING countIf(right_letter = 'C') > 0
    )
SELECT
    session_date,
    day_label,
    daily_ratio,
    ma21_ratio
FROM
(
    SELECT
        d,
        toString(d)                                                 AS session_date,
        concat(formatDateTime(d, '%b '), toString(toDayOfMonth(d))) AS day_label,
        round(raw_ratio, 2)                                         AS daily_ratio,
        round(avg(raw_ratio) OVER (ORDER BY d ROWS BETWEEN 20 PRECEDING AND CURRENT ROW), 2) AS ma21_ratio
    FROM daily
)
WHERE d >= '2026-04-01'
ORDER BY d
Run this yourself

Зубчатая линия представляет собой ежедневный коэффициент для корзины отдельных акций, а плавная — его 21-дневную скользящую среднюю. В первую показанную сессию, Apr 1, дневной объем сделок составил 1.04 против сглаженного значения 0.81. Jul 31 пара показала 0.56 и 0.58. За 84 сессий среднее значение проходит лишь малую часть пути, который преодолевает необработанный ряд, что и является основной целью использования сглаженного показателя.

Как рассчитываются эти панели

Тип контракта определяется по самому тикеру опциона: буква, стоящая перед восьмизначным кодом цены исполнения, обозначает C для call-опциона и P для put-опциона. В расчет включаются только контракты с зафиксированным объемом торгов за сессию, поэтому страйк, по которому не было сделок, не добавляет ничего ни к одной из сторон. Первая панель делит общий месячный объем put-опционов на общий месячный объем call-опционов для каждого инструмента. Остальные панели сначала вычисляют один коэффициент на сессию, а затем суммируют эти сессии, что соответствует методу построения публикуемой скользящей средней. Корзины: SPY, QQQ и IWM для широкого рынка, а также AAPL, MSFT, NVDA, TSLA и KO для отдельных акций. Каждая панель содержит точный SQL-запрос, который использовался для ее формирования.

Часто задаваемые вопросы

Как рассчитывается put/call ratio?

Разделите количество контрактов put на количество контрактов call за один и тот же период. В большинстве публикуемых версий используется объем торгов за сессию, поэтому значение 0,65 означает, что на каждые сто call-опционов приходится шестьдесят пять проторгованных put-опционов. Версия на основе открытого интереса (open interest) учитывает количество неисполненных контрактов, а не объем торгов, и отвечает на другой вопрос.

Считается ли put/call ratio выше единицы высоким?

Это зависит от категории. Для корзины отдельных акций, представленной на панелях выше, девяностый перцентиль ежедневных значений находится на уровне 0.76, поэтому показатели выше этого уровня встречаются редко. Для широких рыночных ETF и индексных опционов, где хеджирование портфелей сосредоточено на стороне put, значения около единицы и выше являются обычными.

В чем разница между put/call ratio по объему и по открытому интересу?

Объем учитывает контракты, проторгованные в течение сессии, и обнуляется каждое утро. Открытый интерес учитывает контракты, которые остаются открытыми, и переносится с одного дня на другой. Версия по объему может удвоиться в течение одной сессии, тогда как версия по открытому интересу меняется на несколько процентов, поэтому эти показатели часто указывают в разные стороны в один и тот же день.

Какой put/call ratio цитирует финансовая пресса?

Обычно это Cboe equity put/call ratio или совокупный put/call ratio, чаще всего в виде двадцатиоднодневного скользящего среднего, а не необработанного дневного значения. Четыре категории Cboe имеют разные уровни, поэтому приведенная цифра без указания категории не может быть сопоставлена с каким-либо эталоном.


Каждая панель на этой странице поставляется с SQL-запросом, который ее сформировал, поэтому каждый расчет можно проверить строка за строкой. Чтобы выполнить те же вычисления для другого актива или за более длительный период, запросите их на обычном английском языке в терминале Strasmore.

#put call ratio#options#sentiment#cboe#options volume