Как работает delta-хеджирование на практике
Узнайте, как работает delta-хеджирование для нейтрализации рыночных рисков. Разбираем механизм покупки и продажи акций при изменении цены и почему частые сделки приносят убытки.
Delta-хеджирование — это способ, с помощью которого отдел опционной торговли поддерживает нейтральность по отношению к направлению движения рынка. Он удерживает позицию по акциям, размер которой компенсирует дельту опциона, и корректирует эту позицию по мере изменения цены базового актива. Портфель, имеющий короткую позицию по опционам, в итоге покупает акции после их роста и продает после падения. Прибыль и убытки отдела в этом случае зависят от пройденного активом расстояния, а не от конечной цены.
Что такое delta-хеджирование?
Дельта — это изменение цены опциона при изменении цены базового актива на один доллар. Для call-опционов она варьируется от 0 до 1, для put-опционов — от 0 до -1. Один опцион на акции США покрывает 100 акций, поэтому умножение дельты на 100 дает количество акций, эквивалентное позиции по контракту в данный момент. Наше руководство по дельте опционов подробно описывает этот расчет.
Delta-хедж предполагает открытие компенсирующей позиции по акциям. Продажа одного call-опциона с дельтой 0,50 создает в портфеле эквивалент короткой позиции по 50 акциям; покупка 50 акций нейтрализует её. Термин «хеджированный» здесь имеет узкое значение: нейтральность к небольшому движению в данный момент времени и по данной цене. Дельта не является фиксированной величиной. Она меняется по мере движения цены акции и сокращения срока действия контракта, поэтому позиция по акциям должна следовать за ней.
Почему хедж никогда не остается неизменным
Дельта для разных страйков представляет собой кривую, а не ступенчатую функцию. На графике ниже показана средняя дельта для call- и put-опционов на SPY в зависимости от удаленности страйка от спотовой цены для контрактов с остаточным сроком жизни от 25 до 35 дней по состоянию на июнь 2026 года.
Точный SQL-код для каждого числа
SELECT
concat(if(pct_from_spot >= 0, '+', ''), toString(pct_from_spot), '%') AS strike_vs_spot,
round(avgIf(delta, is_call), 3) AS call_delta,
round(avgIf(delta, is_put), 3) AS put_delta
FROM
(
SELECT
toInt16(round((toFloat64(strike_price) / toFloat64(underlying_close) - 1) * 100)) AS pct_from_spot,
lower(option_type) IN ('call', 'c') AS is_call,
lower(option_type) IN ('put', 'p') AS is_put,
delta
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND iv_converged = 1
AND volume > 0
AND underlying_close > 0
AND days_to_expiry BETWEEN 25 AND 35
AND date >= '2026-06-01'
AND date < '2026-07-01'
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.05
)
GROUP BY pct_from_spot
HAVING countIf(is_call) > 0 AND countIf(is_put) > 0
ORDER BY pct_from_spotЕсли читать кривую слева направо, становится видна вся суть проблемы. Call-опционы, страйк которых находился на -5% от спотовой цены, имели среднюю дельту 0.839. При +5% для того же окна экспирации среднее значение составило 0.099. Линия put-опционов является зеркальным отражением: от -0.164 на низких страйках до -0.864 на высоких. Актив, движущийся вдоль этой кривой, требует от хеджера изменения позиции по акциям в каждой точке. Гамма — это показатель крутизны данной кривой, то есть скорость изменения самой дельты.
Каков объем каждой принудительной сделки?
Гамма определяет размер каждой ребалансировки. На графике ниже она переведена в единицы, которыми реально торгует отдел. Для опционов на SPY «при деньгах» (at-the-money) показано, сколько акций 100 таких контрактов заставляют хеджера купить или продать при изменении базового актива на 1%, с группировкой по остаточному сроку действия.
Точный SQL-код для каждого числа
SELECT
multiIf(bucket = 1, '0-2 days',
bucket = 2, '3-7 days',
bucket = 3, '8-21 days',
bucket = 4, '22-45 days',
'46-90 days') AS expiry_window,
toUInt32(round(avg(shares_per_contract) * 100)) AS hedge_shares
FROM
(
SELECT
multiIf(days_to_expiry <= 2, 1,
days_to_expiry <= 7, 2,
days_to_expiry <= 21, 3,
days_to_expiry <= 45, 4,
5) AS bucket,
toFloat64(gamma) * toFloat64(underlying_close) AS shares_per_contract
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND iv_converged = 1
AND volume > 0
AND underlying_close > 0
AND days_to_expiry BETWEEN 0 AND 90
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.01
AND date >= '2026-06-01'
AND date < '2026-07-01'
)
GROUP BY bucket
ORDER BY bucketКонтракты с 0-2 days до экспирации требовали изменения хеджа примерно на 3429 акций при движении на 1%. Те же 100 контрактов при 46-90 days требовали изменения примерно на 587. Одинаковое количество контрактов, одинаковый базовый актив, но совершенно разный объем принудительной торговли. Портфели с короткими сроками экспирации ребалансируются часто и активно, портфели с длинными сроками — дрейфуют. Как греки меняются со временем отслеживает это увеличение крутизны по мере приближения к экспирации.
Пять закрытий и стоящие за ними акции
Ниже представлен механизм на примере гипотетического движения цены. Цены вымышлены для простоты расчетов, а дельта указана как данность, без моделирования. Отдел продает 10 call-опционов «при деньгах» на акцию стоимостью 100 долларов по цене 2 доллара за акцию и получает 2000 долларов (10 контрактов по 100 акций, по 2 доллара за акцию). При каждом закрытии торгов отдел восстанавливает нейтральную позицию.
- Закрытие 1, цена акции 100,00 долларов, дельта 0,50. Портфель имеет короткую позицию по 500 дельтам, поэтому хедж покупает 500 акций. Позиция хеджа: 500 акций в лонг.
- Закрытие 2, цена акции 103,00 доллара, дельта 0,62. Цель — 620 акций, поэтому хедж докупает 120 штук. 500 акций, удерживаемых во время роста, принесли 1500 долларов.
- Закрытие 3, цена акции 99,00 долларов, дельта 0,44. Цель падает до 440, поэтому хедж продает 180 штук. 620 акций, удерживаемых во время падения, принесли убыток 2480 долларов, в результате чего хедж ушел в минус на 980 долларов.
- Закрытие 4, цена акции 102,00 доллара, дельта 0,58. Цель — 580 акций, поэтому хедж докупает 140 штук. 440 акций принесли прибыль 1320 долларов, в результате чего хедж вышел в плюс на 340 долларов.
- Закрытие 5, цена акции 100,00 долларов, дельта 0,48. Цель — 480 акций, поэтому хедж продает 100 штук. 580 акций принесли убыток 1160 долларов, оставив хедж с убытком 820 долларов.
Цена акции вернулась к исходной точке. Хеджер покупал по 103 и 102 доллара, продавал по 99 и 100 долларов и имеет убыток 820 долларов по позиции в акциях при полученной премии в 2000 долларов, при этом опцион все еще открыт. Ни один шаг не был ошибкой: каждая сделка была механически верной на тот момент. Знаки операций — это то, что сохраняется при любых изменениях чисел. Каждая покупка следовала за ростом цены, а каждая продажа — за падением, и портфель, короткий по опционам, не может изменить этот паттерн. Удвойте количество контрактов, и гамма удвоится вместе с ними, поэтому каждая сделка в этом списке также удвоится, как и итоговый счет за тот же путь. Почему маркет-мейкеры теряют деньги рассматривает случаи, когда премия не покрывает эти расходы.
Временной распад (time decay) — это другая сторона баланса. За эти пять закрытий опцион также потерял временную стоимость, и эта прибыль продавца является источником покрытия убытков от хеджирования. Спокойный рынок оставляет премию нетронутой. Рваный рынок «съедает» её, а при достаточной волатильности — съедает целиком.
Путь имеет значение, пункт назначения — нет
Хеджер торгует против пути, а не против чистого изменения цены. На графике ниже измеряются оба показателя для четырех известных компаний за июнь 2026 года. Длина пути суммирует все ежедневные процентные изменения без учета знака. Чистое движение — это просто расстояние от первого закрытия до последнего.
Точный SQL-код для каждого числа
SELECT
ticker,
round(path, 1) AS path_length_pct,
round(net, 1) AS net_move_pct,
round(path / greatest(net, 0.05), 1) AS path_to_net_ratio
FROM
(
SELECT
ticker,
arraySum(arrayMap((a, b) -> abs(a / b - 1) * 100,
arraySlice(px, 2),
arraySlice(px, 1, length(px) - 1))) AS path,
abs(px[-1] / px[1] - 1) * 100 AS net
FROM
(
SELECT
ticker,
arrayMap(t -> t.2, arraySort(t -> t.1, groupArray((session_date, session_close)))) AS px
FROM
(
SELECT
ticker,
date AS session_date,
toFloat64(max(close)) AS session_close
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'KO')
AND date >= '2026-06-01'
AND date < '2026-07-01'
GROUP BY ticker, date
)
GROUP BY ticker
)
)
ORDER BY path_to_net_ratioДаже компания с наименьшим разрывом, MSFT, прошла 43.2% ежедневного движения, чтобы закончить на 19% от начальной точки, что дает соотношение 2.3 к 1. На другом конце графика SPY прошла путь, в 11.4 раз превышающий её чистое изменение цены. Трейдер, торгующий по направлению, получает прибыль от второго числа. Delta-хеджер платит за первое.
За что на самом деле платит премия
Премия, которую получает продавец, рассчитывается исходя из подразумеваемой волатильности — движения, которое ожидает рынок. Расходы на хеджирование определяются реализованной волатильностью — движением, которое происходит на самом деле. На графике ниже оба показателя нанесены на одну ось для SPY помесячно за последний год.
Точный SQL-код для каждого числа
WITH
monthly_iv AS
(
SELECT
toStartOfMonth(date) AS m,
round(avg(implied_volatility) * 100, 1) AS implied_vol_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND iv_converged = 1
AND volume > 0
AND underlying_close > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
AND date >= '2025-08-01'
AND date < '2026-08-01'
GROUP BY m
),
monthly_rv AS
(
SELECT
m,
round(arrayReduce('stddevPop', rets) * sqrt(252) * 100, 1) AS realized_vol_pct
FROM
(
SELECT
m,
arrayMap((a, b) -> log(a / b),
arraySlice(px, 2),
arraySlice(px, 1, length(px) - 1)) AS rets
FROM
(
SELECT
toStartOfMonth(session_date) AS m,
arrayMap(t -> t.2, arraySort(t -> t.1, groupArray((session_date, session_close)))) AS px
FROM
(
SELECT
date AS session_date,
toFloat64(max(close)) AS session_close
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
AND date >= '2025-08-01'
AND date < '2026-08-01'
GROUP BY date
)
GROUP BY m
)
WHERE length(rets) > 5
)
)
SELECT
toString(iv.m) AS month,
iv.implied_vol_pct AS implied_vol_pct,
rv.realized_vol_pct AS realized_vol_pct
FROM monthly_iv AS iv
INNER JOIN monthly_rv AS rv ON rv.m = iv.m
ORDER BY iv.mВ последнем месяце на этом графике средняя подразумеваемая волатильность для call-опционов на SPY «при деньгах» со сроком до экспирации от 20 до 45 дней составила 14.8%, в то время как реализованная волатильность базового актива составила 12.1%. Месяцы, когда линия реализованной волатильности находится ниже линии подразумеваемой, — это месяцы, когда путь стоил хеджеру меньше, чем полученная премия. Месяцы, когда она выше, — наоборот. Этот разрыв, а не направление рынка, является риском, который несет delta-хеджированный опционный портфель. Как маркет-мейкеры зарабатывают деньги описывает захват спреда, а гамма-экспозиция суммирует эту принудительную торговлю по всему рынку.
Как отделы хеджируют на практике
Почти никто не проводит ребалансировку при каждом закрытии, и немногие отделы работают по фиксированному графику. Непрерывное хеджирование позволило бы точно следовать за дельтой, но привело бы к потере всей премии на комиссиях и спредах. Обычный подход — использование диапазона: позиция не трогается, пока чистая дельта находится в пределах допустимого отклонения, и корректируется до нейтральной при выходе за его границы. Более широкий диапазон означает меньше сделок и больший дрейф между ними. Отделы также неттируют весь портфель перед совершением сделок, поэтому короткий call в одном сроке экспирации и длинный call в другом могут взаимно уничтожиться до того, как будет совершена хоть одна сделка с акциями. Бета-взвешенная дельта портфеля применяет ту же идею неттинга к разным базовым активам.
Часто задаваемые вопросы
Что такое delta-хеджирование простыми словами?
Это удержание позиции по акциям, которая нейтрализует направленный риск опциона. Дельта, умноженная на 100, дает эквивалент акций для одного контракта, и хеджер удерживает противоположную позицию, обновляя её по мере изменения дельты.
Хеджируют ли маркет-мейкеры каждый проданный опцион?
Они хеджируют чистую экспозицию портфеля, а не каждый контракт в отдельности. Взаимоисключающие позиции сначала компенсируются внутри портфеля, и только оставшаяся дельта приводит к сделке с акциями на рынке.
Почему delta-хедж теряет деньги на волатильном рынке?
Каждая ребалансировка в портфеле с короткими опционами предполагает покупку после роста и продажу после падения. При циклическом движении цены покупки совершаются выше продаж, и эта разница является реализованным убытком. Полученная заранее премия — это бюджет, из которого покрываются эти расходы.
Как часто трейдеры ребалансируют delta-хедж?
На практике нет единого интервала. Более частая ребалансировка позволяет точнее следовать за дельтой, но увеличивает расходы на спреды и комиссии, поэтому многие отделы устанавливают диапазон допустимой дельты и торгуют только при выходе позиции за его пределы.
Является ли delta-хеджированная позиция безрисковой?
Нет. Она нейтрализует небольшие движения в конкретный момент времени. Гэпы и скачки цен, изменения подразумеваемой волатильности, дивиденды и затраты на финансирование остаются актуальными рисками, а сам хедж приносит убытки по мере движения базового актива.
Как проводились измерения
Опционные панели используют ежедневные греки по контрактам, отфильтрованные по тем, которые торговались и для которых подразумеваемая волатильность была корректно рассчитана. «При деньгах» означает страйк в пределах 1% от цены закрытия базового актива в панели объема торгов и в пределах 5% на кривой дельты. Показатель принудительной торговли переводит гамму в акции: хедж одного контракта меняется примерно на величину гаммы, умноженную на цену акции при движении на 1%, и панель масштабирует это до 100 контрактов. Окна «июнь 2026 года» и «последний год» являются фиксированными датами, поэтому эти значения остаются неизменными при последующих просмотрах. Пример с пятью закрытиями является вымышленным, где каждая дельта указана, а не выведена из модели ценообразования.
Каждая панель здесь содержит точный SQL-запрос, который её сформировал. Откройте любой из них, чтобы увидеть, как считалось число, или задайте тот же вопрос на обычном английском языке в терминале Strasmore.