Почему не исполняется заявка на опционы
Причины отсутствия исполнения ордеров на опционы включают правила приоритета биржи, пропорциональное распределение и особенности маршрутизации сложных стратегий по нетто-цене.
Отсутствие исполнения по вашей заявке на опционы обычно связано с механизмами, которые не видны в торговом терминале частного инвестора: место вашей заявки в очереди на исполнение, наличие объема, к которому вы присоединились, реальная ширина рынка и возможность исполнения нетто-цены для многоногой стратегии. Отображаемая котировка — это лишь моментальный снимок того, по какой цене кто-то был готов совершить сделку секунду назад. Соответствие этой цене ставит вашу заявку в очередь, но не гарантирует место в её начале.
Является ли опционная котировка гарантией того, что по ней можно совершить сделку?
Нет. Котировка — это двустороннее предложение, которое выставившая его сторона может отменить или изменить в любой момент, а указанный объем актуален только для этого мгновения. Для активно торгуемого базового актива цена бид и аск по одному контракту может обновляться много раз в секунду. Наш руководство по спреду bid-ask в опционах описывает, что означают эти две стороны. Исполнение зависит от того, как долго существует конкретная версия котировки.
В таблице ниже приведено количество обновлений котировок, зафиксированных для опционных контрактов на Apple за 30-секундный интервал, начиная с 14:00:00 по восточному времени 17 июня 2026 года, с разбивкой по секундам.
Точный SQL-код для каждого числа
SELECT
formatDateTime(toTimeZone(sip_timestamp, 'America/New_York'), '%H:%i:%S') AS et_time,
round(count() / 1000, 1) AS quote_updates_k,
round(count() / uniqExact(ticker), 1) AS updates_per_contract
FROM global_markets.cache_options_quotes
WHERE ticker IN
(
SELECT ticker
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = '2026-06-17'
)
AND sip_timestamp >= toDateTime('2026-06-17 18:00:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-17 18:00:30', 'UTC')
GROUP BY et_time
ORDER BY et_timeВ первую секунду лента зафиксировала около 0.9 тысяч обновлений котировок по этим контрактам, что составляет примерно 1.9 обновлений на контракт в секунду. Торговая заявка не может перемещаться с такой скоростью. К тому моменту, как ваш клик превращается в сообщение, дошедшее до биржи, книга заявок уже успевает измениться.
Гарантирует ли лучшая цена первое место в очереди?
Сама по себе — нет. Фондовые биржи в основном используют принцип приоритета цены и времени: кто первым предложил лучшую цену, тот первым совершает сделку. Опционные биржи добавляют к этому два правила, из-за которых отложенные заявки могут оставаться без исполнения.
Заявки частных клиентов имеют приоритет. Почти каждая опционная биржа США отдает предпочтение заявкам от частных лиц перед заявками маркет-мейкеров и профессиональных участников, если они выставлены по одной цене. Это работает в пользу частного трейдера.
После учета приоритета клиентов распределение происходит пропорционально объему (pro-rata), а не по времени поступления. Входящая заявка распределяется между существующими заявками пропорционально их размеру, часто с небольшой надбавкой для того, кто первым выставил цену. Размер, а не время, определяет долю.
Если сложить эти факторы, то заявка на один контракт рядом с заявкой на пятьсот контрактов будет считаться как один контракт из пятисот одного, а не как одна из двух заявок в очереди. Входящая заявка на сто контрактов может «забрать» ликвидность, при этом на вашу маленькую заявку придется лишь один контракт.
В таблице ниже все сделки с опционами Apple, прошедшие 17 июня 2026 года, сгруппированы по размеру, а затем доля каждой группы в общем количестве сделок сравнивается с ее долей в общем объеме контрактов.
Точный SQL-код для каждого числа
WITH
(
SELECT count()
FROM global_markets.options_trades
WHERE underlying_symbol = 'AAPL'
AND sip_timestamp >= toDateTime('2026-06-17 00:00:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-18 00:00:00', 'UTC')
) AS day_prints,
(
SELECT sum(size)
FROM global_markets.options_trades
WHERE underlying_symbol = 'AAPL'
AND sip_timestamp >= toDateTime('2026-06-17 00:00:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-18 00:00:00', 'UTC')
) AS day_contracts
SELECT
multiIf(size = 1, '1 contract',
size <= 5, '2 to 5',
size <= 20, '6 to 20',
size <= 100, '21 to 100',
'over 100') AS size_bucket,
round(100 * count() / day_prints, 2) AS share_of_trades_pct,
round(100 * sum(size) / day_contracts, 2) AS share_of_volume_pct
FROM global_markets.options_trades
WHERE underlying_symbol = 'AAPL'
AND sip_timestamp >= toDateTime('2026-06-17 00:00:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-18 00:00:00', 'UTC')
GROUP BY size_bucket
ORDER BY min(size)Сделки по одному контракту составили 48.48% от общего числа сделок и 7.83% от общего объема перешедших из рук в руки контрактов. В группе over 100 картина обратная: 0.44% сделок обеспечивают 16.67% объема. При пропорциональном распределении именно второе число определяет, какая часть входящей заявки достанется конкретной отложенной заявке. Маркет-мейкеры непрерывно котируют обе стороны и управляют позициями, что подробно описано в нашем руководстве о том, как зарабатывают маркет-мейкеры.
Почему моя заявка на опционы не исполняется по средней цене (mid)?
Средняя цена — это арифметическое значение: сумма бида и аска, деленная на два. Никто не обязан совершать сделки по этой цене. Две цены, которые существуют всегда — это «натуральные» цены: аск, если вы покупаете, и бид, если вы продаете. Все, что находится между натуральной ценой и средней, — это предмет переговоров, которые завершаются, когда модель контрагента оценивает контракт на вашей стороне от средней цены или когда поступает вторая заявка от частного лица, желающего совершить обратную сделку.
Диапазон этих переговоров зависит от ширины рынка, которая сильно варьируется в зависимости от цены контракта. В таблице ниже используется тот же 30-секундный интервал, все котировки опционов Apple сгруппированы по цене контракта, и представлены медианный спред в центах, а также этот же спред в процентах от средней цены.
Точный SQL-код для каждого числа
SELECT
price_bucket,
round(quantileExact(0.5)(spread) * 100, 1) AS median_spread_cents,
round(quantileExact(0.5)(100 * spread / mid), 1) AS spread_pct_of_mid
FROM
(
SELECT
toFloat64(ask_price) - toFloat64(bid_price) AS spread,
(toFloat64(ask_price) + toFloat64(bid_price)) / 2 AS mid,
multiIf(mid < 0.50, 'under $0.50',
mid < 2.00, '$0.50 to $2',
mid < 5.00, '$2 to $5',
mid < 15.00, '$5 to $15',
'$15 and up') AS price_bucket,
multiIf(mid < 0.50, 1, mid < 2.00, 2, mid < 5.00, 3, mid < 15.00, 4, 5) AS bucket_order
FROM global_markets.cache_options_quotes
WHERE ticker IN
(
SELECT ticker
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = '2026-06-17'
)
AND sip_timestamp >= toDateTime('2026-06-17 18:00:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-17 18:00:30', 'UTC')
AND bid_price > 0
AND ask_price > bid_price
)
GROUP BY price_bucket
ORDER BY min(bucket_order)Для контрактов в группе under $0.50 медианный спред составил 17 центов, что равно 75% от средней цены. В группе $15 and up спред составил 170 центов, или 3.8% от средней цены. В центах более дорогой контракт имеет более широкий спред. В процентном выражении более дешевый контракт имеет значительно более широкий рынок, и заявка, выставленная по его средней цене, требует от контрагента уступить большую часть этого спреда. Ликвидность и волатильность влияют на эти показатели по-разному, и два контракта на один и тот же базовый актив могут вести себя совершенно по-разному.
Использование рыночной заявки вместо лимитной снимает вопрос цены, но создает другой. Рыночная заявка исполняется по ценам, имеющимся в книге заявок в данный момент, что в неликвидных опционных сериях может оказаться на несколько тиков дальше от последней котировки, которую вы видели на экране.
Почему спред не исполняется, когда обе «ноги» выглядят доступными?
Многоногая заявка не находится в книгах заявок для отдельных инструментов. Она направляется в книгу сложных заявок и исполняется как единый пакет по нетто-цене. Биржа исполняет ее против другой сложной заявки или против книг отдельных инструментов, когда их совокупная цена лучше вашей нетто-цены, но это не происходит до тех пор, пока не будет оценен весь пакет.
Возьмем гипотетический колл-спред из двух ног. Длинная нога котируется $1.20 (бид) на $1.35 (аск), короткая — $0.60 (бид) на $0.72 (аск). Покупка пакета по натуральным ценам стоит $1.35 минус $0.60, то есть дебет $0.75. Продажа по натуральным ценам дает $1.20 минус $0.72, то есть кредит $0.48. Нетто-рынок по пакету составляет $0.48 бид на $0.75 аск со средней ценой $0.615. Наблюдение за ногами по отдельности не дает информации о том, исполнится ли заявка по $0.62. Комбинированная книга заявок имеет свой собственный двусторонний рынок и свои отложенные заявки.
Отсюда два вывода. Если одна нога торгуется по вашей цене на экране отдельного инструмента, это не значит, что ваш спред исполнится, так как вашей заявки изначально не было в той книге. Спред, оцененный в терминах отдельных ног, а не нетто-цены, оценивается против книги, которой не существует.
Почему заявка не исполняется по страйку с нулевым объемом?
Ничего не сломалось. Большинство зарегистрированных страйков не торгуются в большинство дней. В цепочке опционов перечислены все страйки, открытые биржей, но большинство из них котируются, оставаясь нетронутыми неделями. Объем показывает количество контрактов, по которым прошли сделки сегодня. Открытый интерес показывает количество неисполненных позиций, а разница между ними разобрана в нашем объяснении разницы между объемом и открытым интересом.
В таблице ниже измеряется ликвидность дальних страйков. Мы взяли все контракты на Apple со сроком экспирации от 20 до 45 дней за май и июнь 2026 года, сгруппировали их по удаленности страйка от цены базового актива в тот день и отразили медианный дневной объем вместе с долей дней, когда было совершено менее 10 сделок.
Точный SQL-код для каждого числа
SELECT
moneyness_bucket,
round(quantileExact(0.5)(toFloat64(volume)), 0) AS median_daily_volume,
round(100 * countIf(volume < 10) / count(), 1) AS share_under_10_lots_pct
FROM
(
SELECT
abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) AS gap,
multiIf(gap < 0.02, '0% to 2% from spot',
gap < 0.05, '2% to 5% from spot',
gap < 0.10, '5% to 10% from spot',
gap < 0.20, '10% to 20% from spot',
'more than 20% from spot') AS moneyness_bucket,
multiIf(gap < 0.02, 1, gap < 0.05, 2, gap < 0.10, 3, gap < 0.20, 4, 5) AS bucket_order,
volume
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date >= '2026-05-01'
AND date < '2026-07-01'
AND days_to_expiry BETWEEN 20 AND 45
AND underlying_close > 0
)
GROUP BY moneyness_bucket
ORDER BY min(bucket_order)Контракты 0% to 2% from spot имели медианный дневной объем 354 контрактов, при этом в 2% дней объем был менее 10. Контракты more than 20% from spot показали медиану 6 контрактов в день, а в 55.4% дней объем был менее 10. Заявка, выставленная на таком страйке, ожидает потока, которого нет, и единственным контрагентом остается маркет-мейкер, который изначально выставил котировку.
Как технические аспекты влияют на торговую заявку
- Спред оценивается по нетто-цене. Книга сложных заявок сопоставляет пакеты, и цена отдельной ноги там не имеет значения.
- Средняя цена служит ориентиром. Две цены, всегда доступные на широком рынке — это натуральные цены: аск для покупки и бид для продажи.
- Размер определяет долю при пропорциональном исполнении. Заявка на 1 контракт рядом с гораздо более крупными заявками получает пропорциональную часть от того, что поступает в рынок.
- Отсутствие сделок на страйке — это прежде всего вопрос котирования, а не исполнения. Нет встречного потока заявок.
Часто задаваемые вопросы
Почему моя лимитная заявка на опционы не исполняется, хотя она стоит на биде?
Присоединение к биду ставит вашу заявку в очередь по этой цене, но опционные биржи распределяют исполнение по статусу клиента и размеру, а не только по времени поступления. Небольшая заявка рядом с гораздо более крупными получает пропорциональную долю от каждой сделки, что при малом объеме может округляться до нуля.
Исполняют ли опционные биржи заявки в порядке их поступления?
В основном нет. Заявки частных клиентов имеют приоритет перед заявками маркет-мейкеров и профессионалов по той же цене, а оставшийся объем обычно распределяется пропорционально размеру каждой заявки. Некоторые биржи добавляют приоритет для того, кто первым выставил цену.
Что означает «платить натуральную цену» в опционной заявке?
Натуральная цена — это цена, уже отображаемая на вашей стороне рынка: аск, если вы покупаете, и бид, если вы продаете. Заявка по натуральной цене исполняется против текущей котировки, тогда как заявка по средней цене ожидает улучшения условий другой стороной.
Нормально ли, что опцион с нулевым объемом никогда не исполняется?
Да. Большинство зарегистрированных страйков не торгуются в большинство дней, и отложенная заявка на одном из них конкурирует за поток, которого нет. Отображаемая котировка обычно является обязательством маркет-мейкера, и исполнение зависит от того, нужна ли ему эта сделка в данный момент.
Как были построены эти панели
Две панели с котировками основаны на 30-секундном интервале с 14:00:00 до 14:00:30 по восточному времени 17 июня 2026 года, ограниченном опционными контрактами на Apple, имевшими запись о греках на эту дату. Фиксация интервала обеспечивает стабильность этих цифр при каждом обновлении страницы. Перепись страйков охватывает май и июнь 2026 года и намеренно включает контракты, по которым не было совершено ни одной сделки. Частота, с которой зарегистрированный страйк остается неторгуемым, — это именно то, что измеряет данная панель. Сохраненные временные метки указаны в UTC и конвертируются в восточное время внутри каждого запроса.
Каждая панель выше содержит точный SQL-код, на основе которого она построена. Чтобы провести те же измерения для интересующего вас контракта, задайте вопрос на обычном английском языке в терминале Strasmore.