Что такое аукцион открытия акций и как он работает
Узнайте, как утренний аукцион в девять тридцать утра формирует официальную цену открытия. Разбираем механизм сведения заявок и причины расхождения цены с первой сделкой дня.
38
Утренний аукцион открытия
Утренний аукцион открытия — это единая сделка, совершаемая в 9:30 по восточному времени, которая устанавливает официальную цену открытия каждой акции. До начала торгов биржа-листингодержатель собирает все заявки, предназначенные для исполнения на открытии. Система вычисляет единственную цену, при которой исполняется максимальный объем акций, и проводит весь объем сделок одним принтом. Это утренний аналог аукциона закрытия, завершающего торговый день. Все приведенные ниже показатели основаны на данных консолидированной ленты — публичного реестра всех сделок с акциями в США, при этом к каждому разделу приложен соответствующий SQL-запрос.
Что такое аукцион открытия? Простое определение
Биржи не просто начинают работу в 9:30, сопоставляя заявки по одной. В течение ночи и на премаркете биржа-листинг накапливает заявки, предназначенные для исполнения на открытии, а также подходящие лимитные заявки, находящиеся в книге ордеров. В момент открытия торгов биржа проводит кросс-сделку по всему объему заявок по одной цене. Этот принт имеет собственный код условия сделки (код 17, «Market Center Opening Trade», данные в последней панели), а его цена становится официальной ценой открытия: это «open» в дневной истории котировок, точка отсчета для понятий «гэп вверх» и «гэп вниз». Аукцион и непрерывный рынок являются частью одной ленты сделок; в момент открытия меняется только механизм исполнения.
Аукцион открытия на реальной ленте: SPY, AAPL, NVDA
В таблице ниже представлены данные за 2 июля 2026 года — полноценную торговую сессию (подтверждение приведено в следующем блоке). Мы сопоставляем объем кросс-сделок на открытии для SPY, AAPL и NVDA с остальной частью торгового дня. «Согласованный объем» учитывает только те акции, которые лента добавляет к консолидированному объему; административные сообщения (условия сделок 15, 16, 38) исключены из всех знаменателей.
| Тикер | Объем аукциона (тыс.) | Цена аукциона | Время аукциона (ET) | Кол-во сделок на открытии | Сделки в 09:30 | Мин. объем сделки на открытии | Объем за первые 5 мин. (тыс.) | Доля аукциона в первых 5 мин. (%) | Доля аукциона в дневном объеме (%) | Объем аукциона закрытия (млн.) | Закрытие к открытию (x) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SPY | 122 | 747.22 | 09:30:00 | 2 | 2 | 4 | 1295 | 9.4 | 0.21 | 1.65 | 13.5 |
| AAPL | 323.3 | 294.1 | 09:30:00 | 1 | 1 | 323338 | 1856 | 17.4 | 0.43 | 10.89 | 33.7 |
| NVDA | 690 | 197.12 | 09:30:00 | 1 | 1 | 690026 | 5006 | 13.8 | 0.48 | 17.38 | 25.2 |
Точный SQL-код для каждого числа
SELECT
ticker,
round(toFloat64(maxIf(size, has(conditions, 17))) / 1e3, 1) AS auction_shares_k,
toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17))) AS auction_price,
formatDateTime(toTimeZone(argMaxIf(sip_timestamp, (size, sip_timestamp), has(conditions, 17)), 'America/New_York'), '%H:%i:%S') AS auction_time_et,
countIf(has(conditions, 17)) AS opening_print_count,
countIf(has(conditions, 17) AND formatDateTime(toTimeZone(sip_timestamp, 'America/New_York'), '%H:%i:%S') = '09:30:00') AS open_prints_at_0930,
minIf(size, has(conditions, 17)) AS smallest_open_print_shares,
round(toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]) AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) >= 570 AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) < 575)) / 1e3) AS first5_shares_k,
round(100 * toFloat64(maxIf(size, has(conditions, 17))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]) AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) >= 570 AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) < 575)), 1) AS auction_pct_of_first5,
round(100 * toFloat64(maxIf(size, has(conditions, 17))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))), 2) AS auction_pct_of_day,
round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS closing_auction_shares_m,
round(toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(maxIf(size, has(conditions, 17))), 1) AS close_vs_open_x
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA')
AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA'], ticker)Сначала рассмотрим строку AAPL: кросс на открытии составил 323.3 тысяч акций по цене $294.1, время фиксации — 09:30:00 по восточному времени. Кросс по NVDA составил 690 тысяч акций, по SPY — 122 тысяч. На долю одного только кросса пришлось 17.4% всех акций AAPL, согласованных за первые пять минут сессии (1856 тысяч акций), 13.8% для NVDA и 9.4% для SPY, при этом дневной объем составил всего 0.43%, 0.48% и 0.21% — менее половины одного процента.
Последние два столбца показывают итоговые показатели: кросс на закрытии по AAPL в тот же день составил 10.89 миллиона акций, что в 33.7 раза превышает объем на открытии; по NVDA этот показатель составил 25.2 раза, по SPY — 13.5 раза. Индексные фонды и бенчмарк-дески совершают сделки по официальным ценам закрытия, и этот поток аккумулируется в кроссе в 16:00; утренние торги не имеют эквивалента. Аукцион закрытия — это крупнейшая сделка дня, а аукцион открытия — момент, когда официально начинается торговый день.
Почему официальная цена открытия может отличаться от первой сделки дня?
К моменту проведения аукциона акции обычно торгуются уже несколько часов. Премаркет начинается в четыре часа утра по восточному времени, но ни одна из этих сделок не определяет официальную цену открытия. Приведенная ниже выписка охватывает торги AAPL за первое и второе июля две тысячи двадцать шестого года и начинается с проверки сессии: по SPY второго июля было зафиксировано ровно 390 минутных баров основной сессии — это полная сессия, подтвержденная данными, а не предположениями.
| Бары SPY 02 июля | Кол-во сделок закрытия 01 июля | Цена пред. закрытия | Кол-во сделок на открытии | Цена аукциона | Время аукциона (ET) | Гэп овернайт (%) | Время первой сделки (ET) | Цена первой сделки | Сделки до офиц. открытия | Сделки от звонка до кросса | Сообщения офиц. открытия | Сообщения открытия биржи | Разница цен открытия |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 390 | 1 | 294.38 | 1 | 294.1 | 09:30:00.491313 | -0.1 | 04:00:00 | 296.1 | 15832 | 173 | 2 | 1 | 0 |
Точный SQL-код для каждого числа
WITH
(
SELECT countIf(window_start >= toDateTime('2026-07-02 09:30:00', 'America/New_York') AND window_start < toDateTime('2026-07-02 16:00:00', 'America/New_York'))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-07-02 00:00:00', 'America/New_York') AND window_start < toDateTime('2026-07-03 00:00:00', 'America/New_York')
) AS bars_jul02,
(
SELECT argMax(sip_timestamp, (size, sip_timestamp))
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00' AND has(conditions, 17)
) AS auction_ts,
(
SELECT argMax(exchange, (size, sip_timestamp))
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00' AND has(conditions, 17)
) AS listing_exchange
SELECT
bars_jul02 AS spy_session_bars_jul02,
countIf(has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00') AS jul01_close_print_count,
toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00')) AS prior_close_price,
countIf(has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00') AS opening_print_count,
toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00')) AS auction_price,
formatDateTime(toTimeZone(auction_ts, 'America/New_York'), '%H:%i:%S.%f') AS auction_et,
round(100 * (toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00')) - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00'))) / toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00')), 2) AS overnight_gap_pct,
formatDateTime(toTimeZone(minIf(sip_timestamp, sip_timestamp >= '2026-07-02 00:00:00' AND NOT hasAny(conditions, [15, 16, 38])), 'America/New_York'), '%H:%i:%S') AS first_trade_et,
toFloat64(argMinIf(price, (sip_timestamp, sequence_number), sip_timestamp >= '2026-07-02 00:00:00' AND NOT hasAny(conditions, [15, 16, 38]))) AS first_trade_price,
countIf(sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < auction_ts AND NOT hasAny(conditions, [15, 16, 38])) AS trades_before_official_open,
countIf(sip_timestamp >= toDateTime('2026-07-02 09:30:00', 'America/New_York') AND sip_timestamp < auction_ts AND NOT hasAny(conditions, [15, 16, 38])) AS bell_to_cross_trades,
countIf(has(conditions, 16) AND sip_timestamp >= '2026-07-02 00:00:00') AS official_open_msgs,
countIf(has(conditions, 16) AND sip_timestamp >= '2026-07-02 00:00:00' AND exchange = listing_exchange) AS listing_venue_open_msgs,
round(toFloat64(anyIf(price, has(conditions, 16) AND sip_timestamp >= '2026-07-02 00:00:00' AND exchange = listing_exchange)) - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00')), 4) AS listing_open_msg_price_difference
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'Первая сделка по AAPL второго июля, учитываемая в объеме торгов, прошла в 04:00:00 по восточному времени по цене 296.1 доллара. Официальная цена открытия появилась только в 09:30:00.491313 по восточному времени, когда на аукционе была зафиксирована цена 294.1 доллара. К этому моменту в ленте уже было 15832 сделок по AAPL, включая 173 сделок, прошедших за доли секунды между девятью тридцать и моментом аукциона — это непрерывные торги на других площадках, которые начинаются с открытием основной сессии. Спустя мгновение поступили 2 сообщений с кодом «Market Center Official Open» (условие сделки 16) — это записи каждой торговой площадки о своем официальном открытии, которые не увеличивают объем торгов. Биржа листинга дублирует цену аукциона (разница составляет 0).
Выписка также позволяет оценить ночной гэп. Предыдущее официальное закрытие AAPL, зафиксированное ровно 1 сделкой первого июля, составило 294.38 доллара. На следующее утро аукцион прошел по цене 294.1 доллара, что означает изменение за ночь на -0.1%. Ночь прошла спокойно, гэп был небольшим. Когда отчетность или новости выходят в нерабочее время, премаркет переоценивает актив первым, а аукцион фиксирует это движение в официальной отчетности.
Как работает аукцион открытия? Заявки market-on-open и limit-on-open
Для открытия торгов предусмотрены два специализированных типа заявок, аналогичных тем, что используются при закрытии:
- Заявка market-on-open (MOO) исполняется по любой цене, которую установит аукцион. Она не имеет ценовой защиты, но гарантирует участие в официальном открытии торгов.
- Заявка limit-on-open (LOO) участвует в аукционе только в том случае, если цена открытия соответствует лимиту или является более выгодной. Она обеспечивает ценовую защиту, но несет риск того, что сделка не состоится.
Оба типа заявок находятся на бирже до момента кросс-сделки и не исполняются в ходе премаркета. Биржи прекращают прием или изменение заявок на открытие незадолго до девяти тридцати (время отсечки зависит от площадки), при этом многие брокеры устанавливают более ранние сроки.
Что такое дисбаланс на аукционе открытия?
В период перед открытием торгов биржи публикуют данные о дисбалансе: количество акций в очереди на покупку по сравнению с продажей, а также индикативную цену, по которой кросс-сделка могла бы пройти в данный момент. Дисбаланс на покупку в один миллион акций означает, что один миллион заявок на покупку пока не имеет встречного предложения. Трейдеры на премаркете отслеживают эти потоки данных и выстраивают свои позиции с учетом этой информации.
Минутный бар 9:30 также не является официальным открытием
Большинство графических платформ включают открытие в первую минутную свечу: всё, что было зафиксировано в период с 9:30:00.000 по 9:30:59.999 на всех торговых площадках, включая аукцион и почти минуту непрерывных торгов. Его «открытие» — это первый зафиксированный в этом окне принт, а не обязательно цена аукциона.
| Тикер | Цена открытия 09:30 | Официальное открытие | Разница (бар - офиц.) в центах | Объем 09:30 (тыс.) | Сделки 09:30 | Объем 12:30 (тыс.) | 09:30 к 12:30 (x) |
|---|---|---|---|---|---|---|---|
| SPY | 747.4 | 747.22 | 18 | 479 | 8632 | 133 | 3.6 |
| AAPL | 294.12 | 294.1 | 2 | 743 | 14662 | 121 | 6.1 |
| NVDA | 197.14 | 197.12 | 2 | 1688 | 36319 | 226 | 7.5 |
Точный SQL-код для каждого числа
WITH auctions AS (
SELECT ticker, toFloat64(argMax(price, (size, sip_timestamp))) AS official_open
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA')
AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
AND has(conditions, 17)
GROUP BY ticker
)
SELECT
b.ticker AS ticker,
toFloat64(anyIf(b.open, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York'))) AS bar_0930_open,
a.official_open AS official_open,
round(100 * (toFloat64(anyIf(b.open, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York'))) - a.official_open), 0) AS bar_open_minus_official_cents,
round(sumIf(b.volume, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York')) / 1e3) AS bar_0930_vol_k,
anyIf(b.transactions, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York')) AS bar_0930_trades,
round(sumIf(b.volume, b.window_start = toDateTime('2026-07-02 12:30:00', 'America/New_York')) / 1e3) AS bar_1230_vol_k,
round(sumIf(b.volume, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York')) / sumIf(b.volume, b.window_start = toDateTime('2026-07-02 12:30:00', 'America/New_York')), 1) AS x_0930_vs_1230
FROM global_markets.delayed_stocks_minute_aggs AS b
INNER JOIN auctions AS a ON a.ticker = b.ticker
WHERE b.ticker IN ('SPY', 'AAPL', 'NVDA')
AND b.window_start >= toDateTime('2026-07-02 00:00:00', 'America/New_York')
AND b.window_start < toDateTime('2026-07-03 00:00:00', 'America/New_York')
GROUP BY b.ticker, a.official_open
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA'], b.ticker)Второго июля все три бара на 9:30 открылись выше официального уровня открытия: бар AAPL показывает $294.12 против официальных $294.1, разница составляет 2 центов, у SPY и NVDA цены выше официальных на 18 и 2 центов соответственно. В каждый бар первым попал принт, прошедший на другой площадке до завершения кросс-сделки; когда цена открытия на графике расходится с официальной на несколько центов, обычно срабатывает именно этот механизм.
Столбцы объёма показывают вес первой минуты. В баре AAPL на 9:30 прошло 743 тысячи акций в рамках 14662 сделок, что в 6.1 раза превышает объём бара на 12:30, составивший 121 тысячи; коэффициент для NVDA составил 7.5 раза, для SPY — 3.6 раза. Столь значительные по объёму минуты имеют реальный вес при расчёте VWAP, средневзвешенной по объёму цены.
Как выглядит торговый день вблизи открытия?
Распределение всех сделок по AAPL за второе июля по пятнадцатиминутным интервалам 64 в период с четырех утра до восьми вечера позволяет оценить всплеск активности на открытии: объемы на премаркете практически незаметны, резко возрастают в девять тридцать, снижаются к обеду и снова растут к закрытию, когда день завершается так же, как и начинался — одной сделкой объемом 10.89 миллиона акций AAPL.
| Время (ET) | Объем (млн.) |
|---|---|
| 04:00 | 0.1 |
| 04:15 | 0.01 |
| 04:30 | 0 |
| 04:45 | 0 |
| 05:00 | 0.01 |
| 05:15 | 0 |
| 05:30 | 0.01 |
| 05:45 | 0.01 |
| 06:00 | 0.01 |
| 06:15 | 0.01 |
| 06:30 | 0.01 |
| 06:45 | 0 |
| 07:00 | 0.02 |
| 07:15 | 0.01 |
| 07:30 | 0.01 |
| 07:45 | 0.01 |
| 08:00 | 0.02 |
| 08:15 | 0.02 |
| 08:30 | 0.04 |
| 08:45 | 0.03 |
Точный SQL-код для каждого числа
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 15 MINUTE), '%H:%i') AS et_time,
round(sum(volume) / 1e6, 2) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
AND window_start >= toDateTime('2026-07-02 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-03 00:00:00', 'America/New_York')
GROUP BY et_time
ORDER BY et_timeКак определить принт аукциона открытия? Коды условий сделок
Какой принт является аукционным? Ответ дает сама лента; словарь кодов находится в том же хранилище, а приведенная ниже выписка — это запрос, а не утверждение.
| name | id | Учитывается в объеме |
|---|---|---|
| Closing Prints | 8 | 1 |
| Market Center Official Close | 15 | 0 |
| Market Center Official Open | 16 | 0 |
| Market Center Opening Trade | 17 | 1 |
| Corrected Consolidated Close (per listing market) | 38 | 0 |
Точный SQL-код для каждого числа
SELECT
name,
id,
toUInt8(JSONExtractBool(update_rules, 'consolidated', 'updates_volume')) AS counts_toward_volume
FROM global_markets.stocks_condition_codes
WHERE asset_class = 'stocks' AND type = 'sale_condition' AND id IN (8, 15, 16, 17, 38)
ORDER BY idВажна одна асимметрия. Закрытие получает один консолидированный ярлык (код 8, «Closing Prints»); ярлык открытия присваивается каждой площадке: код 17, «Market Center Opening Trade», отмечает сделку открытия каждого конкретного центра торгов, при этом аукционом является сделка на бирже листинга. Лента SPY за второе июля содержит 2 таких принтов: кросс-сделку на 122 тысяч акций плюс принт на 4 акций с другой площадки, в то время как AAPL и NVDA показывают ровно по одному (1 и 1), и все они проходят в секунду 9:30:00 (столбец open_prints_at_0930 фиксирует это время). Каждое число аукционов выше — это крупнейший подобный принт за сессию. Код 16, «Market Center Official Open», представляет собой административное эхо без объема (0 в столбце объема), которое исключается из всех знаменателей вместе с кодами 15 и 38.
Часто задаваемые вопросы об открытии торгов
В какое время проходит аукцион открытия?
В 9:30 по восточному времени (ET), одновременно с началом основной сессии; по менее ликвидным бумагам сделки могут проходить на несколько мгновений позже. 2 июля 2026 года кросс-сделки по SPY, AAPL и NVDA были зафиксированы в 09:30:00 ET с точностью до секунды. В дни сокращенных сессий меняется время закрытия, а не открытия: аукцион закрытия переносится на 13:00; подробнее см. рыночные праздники и сокращенные торговые дни.
Какая цена считается официальной ценой открытия?
Цена, сформированная в ходе аукциона открытия на бирже листинга акции. 2 июля 2026 года кросс-сделка по AAPL прошла по цене $294.1, что стало официальной ценой открытия дня, несмотря на то что 15832 сделок по AAPL были исполнены ранее в тот же день.
Можно ли участвовать в аукционе открытия?
Да. Заявки типа «рыночная на открытии» (MOO) и «лимитированная на открытии» (LOO) доступны у большинства брокеров: заявки MOO исполняются по любой цене, установленной аукционом, а заявки LOO — только по лимитной цене или лучше. Прием заявок прекращается незадолго до 9:30, а у многих брокеров — еще раньше.
Почему акция открылась со значительным отклонением от вчерашнего закрытия?
Заявки накапливаются в течение всей ночи, пока биржа закрыта, и аукцион исполняет этот накопленный объем одной сделкой. В спокойные периоды разрыв невелик: изменение цены AAPL за ночь на 2 июля 2026 года составило -0.1%.
Является ли аукцион открытия крупнее аукциона закрытия?
Нет, объем закрытия значительно больше. 2 июля 2026 года объем кросс-сделки по AAPL на закрытии был в 33.7 раза больше объема на открытии, по NVDA — в 25.2 раза, по SPY — в 13.5 раза. Потоки, ориентированные на бенчмарки, исполняются по официальной цене закрытия; аукцион закрытия обеспечивает исполнение этих заявок.
Все приведенные выше цифры получены из сохраненного проверяемого запроса; разверните SQL под любой панелью, чтобы провести аудит. Чтобы детально изучить кросс-сделку на открытии по интересующему вас тикеру, задайте аналогичные вопросы на обычном английском языке в терминале Strasmore.