Коэффициент put/call: акции против индексов
Разбираем различия между коэффициентами put/call для акций и индексов. Узнайте, почему индексные показатели обычно выше, как правильно интерпретировать данные и сравнивать значения.
Высокий коэффициент put/call — это не единый показатель. На основе данных ленты опционных сделок рассчитываются как минимум три его разновидности. Первая учитывает только опционы на отдельные акции. Вторая — только индексные продукты. Третья объединяет оба сегмента. У каждого из них свой диапазон нормальных значений, поэтому показатель 1,20 может быть аномалией для одного ряда данных и обычным результатом для другого. Если вы впервые сталкиваетесь с этим индикатором, в разделе что измеряет коэффициент put/call описаны базовые принципы.
Почему put/call ratio для индексов выше, чем для отдельных акций?
Начните с анализа того, кто выступает покупателем. Индексный put-опцион — это самый дешевый инструмент для хеджирования всего диверсифицированного портфеля. Фонд, удерживающий четыреста позиций, не покупает четыреста отдельных put-опционов. Он приобретает put-опционы на индекс, регулярно пролонгирует их и учитывает уплаченную премию как расходы на страхование. Этот объем сделок представляет собой защиту уже имеющихся акций, и он формируется независимо от того, настроен управляющий оптимистично или нет.
Опционы на отдельные акции имеют иную структуру потоков. Значительная часть объема приходится на покупку call-опционов по конкретным бумагам, а продажа covered-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. Сопоставьте с ним столбец коэффициентов.
Одно предостережение перед продолжением. Опубликованный индексный коэффициент рассчитывается на основе опционов на сам уровень индекса, которые при экспирации исполняются денежными расчетами, а не поставкой акций. Мини-индексные опционы представляют собой версию этого контракта с меньшим номиналом. В данных таблицах используются опционы на широкие рыночные ETF в качестве аналога для того же хеджирующего потока, что является именно тем моментом, по которому расходятся мнения поставщиков данных.
Что учитывает каждый опубликованный коэффициент?
- Только акции (Equity-only): опционы на акции отдельных компаний, поток по конкретным бумагам, в большинстве сессий преобладают call-опционы.
- Только индексы (Index-only): опционы на уровень индекса, расчеты по которым производятся денежными средствами; на них приходится основной объем хеджирования портфелей.
- Итого (Total): все контракты в обеих категориях, объем put-опционов по отношению к объему call-опционов.
Все три показателя учитывают объем торгов, то есть количество контрактов, сменивших владельца в течение сессии, а не позиции, оставшиеся открытыми после её завершения. Объем торгов против открытого интереса разграничивает эти два понятия.
Является ли совокупный put/call ratio средним арифметическим двух других показателей?
Нет. Совокупный показатель представляет собой взвешенную смесь, где весом выступает объем торгов call-опционами. Обозначим через w долю индексного сегмента в общем объеме call-опционов по обоим сегментам. Совокупный коэффициент равен коэффициенту по акциям плюс произведение w на разницу между двумя коэффициентами. Когда индексный сегмент составляет незначительную часть объема call-опционов, совокупный показатель практически совпадает с коэффициентом по акциям. Когда он доминирует, совокупный показатель приближается к индексному коэффициенту.
На следующей панели оба компонента зафиксированы на уровне их значений за шестьдесят сессий, а 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, если индексный сегмент не вносит вклада в объем call-опционов, и 1.396, если он обеспечивает весь объем. При равном распределении, когда на индексный сегмент приходится 50% объема call-опционов, совокупный показатель фиксируется на отметке 0.979. Ни один из компонентов не изменился на протяжении этих одиннадцати строк. Изменилась только пропорция.
Может ли совокупный коэффициент вырасти, если обе его составляющие падают?
Это возможно, и именно здесь кроется ловушка использования одного общего показателя. Рассмотрим гипотетический пример из двух торговых сессий с использованием округленных чисел для наглядности расчетов.
В первый день в сегменте акций было совершено 1 000 000 сделок с call-опционами и 600 000 сделок с put-опционами, что дает коэффициент 0,60. В сегменте индексов объем составил 200 000 call-опционов и 280 000 put-опционов, коэффициент — 1,40. Итого: 880 000 put-опционов против 1 200 000 call-опционов, или 0,73.
Во второй день оба коэффициента снизились. В сегменте акций зафиксировано 600 000 call-опционов и 330 000 put-опционов, коэффициент — 0,55. В сегменте индексов — 800 000 call-опционов и 1 040 000 put-опционов, коэффициент — 1,30. Итого: 1 370 000 против 1 400 000, или 0,98.
Оба компонента снизились. Совокупный показатель при этом вырос на четверть пункта. Единственное, что изменилось — это доля объема call-опционов, приходящаяся на сегмент с более высоким коэффициентом: она увеличилась с семнадцати до пятидесяти семи процентов. Инвестор, следящий только за общим числом, зафиксировал бы всплеск активности в put-опционах, которого не наблюдалось ни в одном из сегментов по отдельности.
Эта доля не является константой в реальных рыночных данных. В приведенной ниже таблице пошагово отслеживаются коэффициенты обоих сегментов и доля ETF-сегмента в общем объеме call-опционов.
Точный 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 против 1.55 в сегменте ETF, разрыв составил 1.05, при этом 45.2 процентов объема call-опционов пришлось на ETF-сегмент. На Aug 12 эти значения составили 0.55, 1.34, а разрыв — 0.79, при доле ETF в 49.5 процентов. Столбец разрыва положителен на обоих концах отображаемого периода из 32 сессий, а столбец доли меняется под ним.
Почему два источника показывают разные коэффициенты put/call за один и тот же день?
Различия возникают из-за разной классификации данных, причем опционы на 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 dateAug 12, в последний день, представленный на панели, показатель только для отдельных акций составил 0.55, а версия с включенными опционами на ETF — 0.94. Один и тот же день, одна и та же лента сделок, одинаковые подписи на осях. Пороговое значение, определенное по данным одного поставщика, нельзя автоматически применять к данным другого.
Что тогда считать высоким коэффициентом put/call?
Рабочее правило здесь узкое. Сравнивайте коэффициент только с его собственной историей, полученной из того же источника и по той же методике расчета. Ответ на этот вопрос дает перцентиль: какое место текущее значение занимает в ряду данных за последний год? Фиксированная отметка 1,00 не подходит, так как 1,00 — это экстремальное значение для акций и обычное для индексов.
Две привычки помогают сохранять объективность сравнения. Изучите примечание к методике расчета перед тем, как ссылаться на уровень, особенно в части учета ETF. И анализируйте компоненты наряду с общим показателем, так как итоговое значение может меняться только из-за изменения структуры. В статье Является ли высокий коэффициент put/call бычьим сигналом этот вопрос рассматривается подробнее, а в как рассчитывается коэффициент put/call пошагово описана математика процесса.
Примечания к данным и определения корзин
Корзина ETF включает SPY, QQQ, IWM и DIA. Корзина отдельных акций включает AAPL, MSFT, NVDA, AMZN, TSLA, JPM, KO и JNJ. Обе группы являются выборками своих категорий, а не всего рынка, поэтому приведенные здесь уровни иллюстрируют распределение, не претендуя на воспроизведение заголовков отчетов конкретных провайдеров.
Каждая панель суммирует объем контрактов за сессию отдельно для call и put, а затем делит их. Взвешивание по долларовому объему или премии не применяется.
Каждое окно привязано к последней сессии с зафиксированным объемом, а не к календарному дню. Стороны put и call сопоставляются по первой букве типа контракта, поэтому лента, использующая P и C вместо put и call, также корректно распределяет данные по корзинам.
Контракт учитывается, если по нему был зафиксирован объем торгов за сессию, включая глубоко вне денег (deep out-of-the-money) страйки. Дальние страйки составляют значительную долю объема хеджирующих put-опционов, и их исключение привело бы к занижению показателей корзины ETF.
Опционы на уровень индекса, с расчетами в денежной форме и европейским стилем исполнения, являются иным продуктом, нежели опционы на ETF. Панели по отдельным базовым активам используют опционы на ETF в качестве индикатора потоков хеджирования индекса, что и поднимает вопрос о корректности формирования корзин, упомянутый выше.
Данные за последнюю сессию или две могут отсутствовать на переднем крае графика, пока идет обработка записей за день.
Часто задаваемые вопросы
Какое значение put/call ratio считается нормальным для опционов на акции?
Для опционов на отдельные акции показатель обычно составляет менее 1,00, так как в большинстве сессий объем торгов call-опционами выше. Среди двенадцати инструментов, представленных в панели за последние шестьдесят сессий выше, минимальное значение составило 0.43. Норма для каждой конкретной серии определяется ее собственной историей, а не общим пороговым значением.
Почему put/call ratio для индексов обычно выше 1?
Put-опционы на индексы являются стандартным инструментом хеджирования портфелей, и спрос на них регулярно формируется управляющими, которые уже владеют базовыми активами. Объем хеджирующих сделок учитывается в знаменателе и числителе той же дроби, что и направленные сделки, поэтому данный показатель исторически находится на более высоком уровне.
Какой put/call ratio обычно отображается на графиках настроений рынка?
В большинстве опубликованных графиков используются либо совокупные данные, либо данные только по акциям, при этом подписи к осям редко уточняют тип показателя. Перед сравнением графика с пороговыми значениями из других источников ознакомьтесь с методологией расчета, так как уровни этих серий различаются.
Можно ли сравнивать put/call ratio от разных провайдеров?
Уровни данных не сопоставимы. Провайдеры по-разному учитывают ETF и объемы торгов на различных биржах. Сравнивать можно только направление движения и перцентильный ранг внутри серии данных одного и того же провайдера.
Каждая панель здесь поставляется с SQL-запросом, на основе которого она была построена, поэтому любую из этих выборок можно перестроить с использованием другой совокупности активов или временного окна. Задайте тот же вопрос на обычном английском языке в терминале Strasmore.