Чому акції відкриваються з гепом вгору або вниз
Аналіз причин виникнення цінових розривів між закриттям та відкриттям сесії. Огляд розміру нічних гепів SPY, ризиків стоп-лоссів та особливостей торгів по понеділках.
Геп — це відстань між ціною закриття акції в одну сесію та ціною її відкриття в наступну. Це стрибок на ціновому графіку, під час якого в основні години торгів не відбувалося жодних угод. Акції відкриваються з гепом вгору або вниз за структурною причиною: біржі працюють 6,5 годин на сесію, а протягом інших 17,5 годин продовжують надходити звіти про прибутки, новини, відбуваються торги на закордонних майданчиках та рідкісні угоди в розширені години. Усе це одночасно відображається на відкритті наступного ранку. Ця сторінка вимірює гепи, а не стверджує їх: кожна сесія SPY за першу половину 2026 року, п'ять відомих акцій поруч із індексом та один нічний рух понад вісім відсотків, зафіксований до початку торгів.
Що таке розрив вгору або розрив вниз?
Розрив вгору (gap up): сьогоднішня ціна відкриття вища за ціну закриття попередньої регулярної сесії. Розрив вниз (gap down): нижча за неї. Йдеться про відкриття о 9:30 за східним часом (ET), яке визначає відкриваючий аукціон. Він збирає накопичені за ніч ордери та виконує їх за єдиною ціною. Між попереднім закриттям і цим аукціоном позабіржова та передринкова торгівля фіксує реальні угоди, але обсяги там становить лише невелика частина від обсягів регулярної сесії. Тому офіційне відкриття є моментом, коли вперше проявляється повна вага ринку і саме за ним вимірюється розрив.
Процес визначення ціни ніколи не припиняється повністю: індексні ф'ючерси торгуються майже цілодобово, закордонні ринки встановлюють рівні, поки Нью-Йорк спить, а передринкова торгівля починається о 4:00 за східним часом (ET). До 9:30 аукціон не робить припущень — він лише затверджує рівень, який уже був окреслений на нічних торгових майданчиках.
Яким є розмір звичайного нічного гэпу?
Кожна сесія за H1 2026 для SPY, ETF на S&P 500, розділена на нічний компонент (від попереднього закриття до відкриття) та внутрішньоденний компонент (від відкриття до закриття):
Точний SQL-код для кожного числа
SELECT count() AS sessions,
round(avg(abs(100 * (rth_open - prior_close) / prior_close)), 2) AS avg_abs_overnight_gap_pct,
round(avg(abs(100 * (rth_close - rth_open) / rth_open)), 2) AS avg_abs_intraday_move_pct,
countIf(abs(100 * (rth_open - prior_close) / prior_close) >= 0.5) AS gaps_of_half_pct_or_more
FROM (SELECT day, rth_open, rth_close, lagInFrame(rth_close) OVER (ORDER BY day) AS prior_close
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
argMinIf(toFloat64(open), window_start, rth) AS rth_open,
argMaxIf(toFloat64(close), window_start, rth) AS rth_close
FROM (
SELECT window_start, open, close,
toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2025-12-29 04:00:00'
AND window_start < '2026-07-01 08:00:00'
)
GROUP BY day
))
WHERE day >= '2026-01-01' AND prior_close > 0 AND isFinite(prior_close)Протягом 123 сесій середній абсолютний нічний гэп SPY становив 0.45%, тоді як середній абсолютний рух від відкриття до закриття склав 0.53%: недоступний для торгівлі нічний стрибок майже дорівнює за розміром усьому наступному торговому дню. Гэпи у пів відсотка або більше траплялися 41 разів — приблизно в одній сесії з трьох.
Чи частіше акції відкриваються гепами по понеділках?
Відкриття ринків у понеділок мають певну репутацію: вихідні розтягують ті самі механізми на шістдесят п'ять годин закриття замість сімнадцяти з половиною. Ці передубедження можна перевірити. Кожна сесія SPY з січня 2024 року по червень 2026 року була розподілена за днями тижня з розрахунком середнього абсолютного гепу та 90-го перцентиля — розміру, який перевищує лише одне відкриття з десяти. (Свято в понеділок переносить геп вихідних на відкриття у вівторок, що враховується як вівторок.)
Точний SQL-код для кожного числа
SELECT ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'][dow] AS weekday,
count() AS sessions,
round(avg(abs(gap_pct)), 2) AS avg_abs_gap_pct,
round(quantileDeterministic(0.9)(abs(gap_pct), toUInt64(toYYYYMMDD(day))), 2) AS p90_abs_gap_pct
FROM (
SELECT day, toDayOfWeek(day) AS dow,
100 * (rth_open - prior_close) / prior_close AS gap_pct
FROM (
SELECT day, rth_open, lagInFrame(rth_close) OVER (ORDER BY day) AS prior_close
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
argMinIf(toFloat64(open), window_start, rth) AS rth_open,
argMaxIf(toFloat64(close), window_start, rth) AS rth_close
FROM (
SELECT window_start, open, close,
toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2023-12-28 04:00:00'
AND window_start < '2026-07-01 08:00:00'
)
GROUP BY day
)
)
WHERE day >= '2024-01-01' AND prior_close > 0 AND isFinite(prior_close)
)
WHERE dow <= 5
GROUP BY dow
ORDER BY dowПопулярні переконання підтвердилися даними. Середній абсолютний геп у понеділок протягом 119 понеділків становив 0.52% — це найширший показник серед п'яти робочих днів, порівняно з 0.36% у вівторок, 0.39% у середу, 0.45% у четвер та 0.39% у п'ятницю. Найсильніше вплив вихідних помітний у «хвостах» розподілу: геп 90-го перцентиля в понеділок становив 1.11% проти 0.73% у вівторок. Ефект реальний, але незначний — відкриття в понеділок має ширший розподіл, а не іншу природу, і ці дані не вказують на конкретний напрямок руху.
Найбільші розриви за перше півріччя 2026
Шість найбільших нічних розривів SPY за півріччя та динаміка цін протягом відповідних днів:
Точний SQL-код для кожного числа
SELECT concat(monthName(day), ' ', toString(toDayOfMonth(day)), ', ', toString(toYear(day))) AS session,
round(100 * (rth_open - prior_close) / prior_close, 2) AS overnight_gap_pct,
round(100 * (rth_close - rth_open) / rth_open, 2) AS rest_of_day_pct
FROM (SELECT day, rth_open, rth_close, lagInFrame(rth_close) OVER (ORDER BY day) AS prior_close
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
argMinIf(toFloat64(open), window_start, rth) AS rth_open,
argMaxIf(toFloat64(close), window_start, rth) AS rth_close
FROM (
SELECT window_start, open, close,
toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2025-12-29 04:00:00'
AND window_start < '2026-07-01 08:00:00'
)
GROUP BY day
))
WHERE day >= '2026-01-01' AND prior_close > 0 AND isFinite(prior_close)
ORDER BY abs(overnight_gap_pct) DESC, day
LIMIT 6Найбільший розрив стався April 8, 2026: SPY відкрився з відривом 2.6% від попереднього закриття, після чого ціна змінилася на -0.08% від відкриття до закриття. Переоцінка за весь день відбулася до першої угоди в основні торгові години. Практичний урок розривів полягає в тому, що ринок може змінити ціну без вашої участі.
Цифра без контексту має лише половину цінності. Усі заголовки з тегом SPY, опубліковані між закриттям 7 квітня та відкриттям 8 квітня:
Точний SQL-код для кожного числа
SELECT formatDateTime(toTimeZone(published_utc, 'America/New_York'), '%b %d %H:%i') AS et_published,
JSONExtractString(toString(publisher), 'name') AS source,
substring(title, 1, 80) AS headline
FROM global_markets.stocks_news
WHERE published_utc >= toDateTime('2026-04-07 16:00:00', 'America/New_York')
AND published_utc < toDateTime('2026-04-08 09:30:00', 'America/New_York')
AND has(tickers, 'SPY')
ORDER BY published_utc
LIMIT 10Протягом цих годин закриття з'явилися два заголовки, обидва стосувалися припинення вогню між США та Іраном. Час публікації — Apr 08 03:28 ET та Apr 08 08:58 ET, тобто до відкриття торгів, коли ринок був закритий. Розрив є бухгалтерським відображенням новин, що надходять у період, коли торгувати неможливо.
Чи мають окремі акції сильніші розриви, ніж індекс?
Індексний ETF містить сотні компаній, тому їхні нічні сюрпризи частково нівелюють один одного. Окрема акція не має такого захисту. П'ять відомих компаній порівняно зі SPY за ті самі сесії:
Точний SQL-код для кожного числа
SELECT ticker,
count() AS sessions,
round(avg(abs(gap_pct)), 2) AS avg_abs_gap_pct,
round(argMax(gap_pct, (abs(gap_pct), day)), 2) AS biggest_gap_pct,
concat(monthName(argMax(day, (abs(gap_pct), day))), ' ', toString(toDayOfMonth(argMax(day, (abs(gap_pct), day)))), ', ', toString(toYear(argMax(day, (abs(gap_pct), day))))) AS biggest_gap_day
FROM (
SELECT ticker, day, 100 * (rth_open - prior_close) / prior_close AS gap_pct
FROM (
SELECT ticker, day, rth_open,
lagInFrame(rth_close) OVER (PARTITION BY ticker ORDER BY day) AS prior_close
FROM (
SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS day,
argMinIf(toFloat64(open), window_start, rth) AS rth_open,
argMaxIf(toFloat64(close), window_start, rth) AS rth_close
FROM (
SELECT ticker, window_start, open, close,
toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'TSLA')
AND window_start >= '2025-12-29 04:00:00'
AND window_start < '2026-07-01 08:00:00'
)
GROUP BY ticker, day
)
)
WHERE day >= '2026-01-01' AND prior_close > 0 AND isFinite(prior_close)
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'TSLA'], ticker)Розгляньте дві колонки окремо. У типову ніч рейтинг відповідає очікуванням: Tesla в середньому 1.05%, а Nvidia 0.99%, проти 0.45% у SPY. Проте Coca-Cola в середньому 0.42%, що нижче за індекс — стабільна споживча мега-капіталізація більшість ночей є спокійним інструментом.
Колонка хвостів показує, де захист зникає. Найбільший одиничний розрив SPY за півріччя склав 2.6% (April 8, 2026), і всі п'ять окремих акцій перевищили цей показник: Coca-Cola 5.41%, Apple 2.82%, Nvidia 3.6%, Tesla 4.97% — а Microsoft, найбільша з усіх, -8.66% у January 29, 2026. Окремі акції не завжди більш волатильні, ніж індекс у середню ніч, але їхня найгірша ніч є значно гіршою.
Спостереження за формуванням гэпу перед відкриттям торгів
Згадаємо гэп Microsoft January 29, 2026. Попередня сесія закрилася на позначці $481.72; усі події після цього закриття відбувалися на закритому ринку, і до відкриття премаркету о 4:00 за ET переоцінка вже була завершена:
Точний SQL-код для кожного числа
WITH day_vol AS (
SELECT sum(toFloat64(volume)) AS rth_vol
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MSFT'
AND window_start >= toDateTime('2026-01-29 09:30:00', 'America/New_York')
AND window_start < toDateTime('2026-01-29 16:00:00', 'America/New_York')
),
prior AS (
SELECT round(argMax(toFloat64(close), window_start), 2) AS prior_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MSFT'
AND window_start >= toDateTime('2026-01-28 09:30:00', 'America/New_York')
AND window_start < toDateTime('2026-01-28 16:00:00', 'America/New_York')
),
buckets AS (
SELECT toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 minute) AS bucket,
round(argMax(toFloat64(close), window_start), 2) AS price,
sum(toFloat64(volume)) AS shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MSFT'
AND window_start >= toDateTime('2026-01-29 04:00:00', 'America/New_York')
AND window_start < toDateTime('2026-01-29 09:30:00', 'America/New_York')
GROUP BY bucket
)
SELECT formatDateTime(bucket, '%H:%i') AS et_time,
price,
(SELECT prior_close FROM prior) AS prior_close,
round(100 * (price - (SELECT prior_close FROM prior)) / (SELECT prior_close FROM prior), 2) AS vs_prior_close_pct,
round(abs(100 * (price - (SELECT prior_close FROM prior)) / (SELECT prior_close FROM prior)), 2) AS pct_below_prior_close,
round(shares / 1000) AS shares_thousands,
round(sum(shares) OVER (ORDER BY bucket) / 1000000, 2) AS cum_shares_millions,
round(100 * sum(shares) OVER (ORDER BY bucket) / (SELECT rth_vol FROM day_vol), 2) AS cum_pct_of_regular_volume
FROM buckets
ORDER BY bucketУ першому кошику премаркету, 04:00 за ET, ціна вже становила $454, що на 5.75% нижче попереднього закриття, при обсязі 128 тисяч акцій. Протягом наступних п'яти годин ціна коливалася; до останнього кошика премаркету (09:00 за ET) ціна була на 8.71% нижче рівня закриття, а офіційне відкриття відбулося на позначці -8.66% — що майже збігається з результатом, який визначили 4.86 мільйонів акцій у нічних торгах.
Зверніть увагу на останній стовпець: весь премаркет охопив 4.31% від обсягу торгів регулярної сесії. Гэп такого розміру оцінюється незначним обсягом у «темних пулах» і підтверджується всім ринком о 9:30. Через таку низьку ліквідність спреди є найширшими під час відкриття.
Скільки ринок опціонів стягував за ту ніч
Опціони показують, якого руху очікував ринок до того, як він відбувся. Стрідл — купівля кол-опціону та пут-опціону з однаковою ціною виконання та датою експірації — коштує приблизно стільки, на скільки, на думку ринку, акція зміниться в будь-якому напрямку до експірації. Стрідли Microsoft «близько грошей», котирування яких були відомі за останні п'ятнадцять хвилин до закриття 28 січня з експірацією через два дні:
Точний SQL-код для кожного числа
WITH prior AS (
SELECT round(argMax(toFloat64(close), window_start), 2) AS prior_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MSFT'
AND window_start >= toDateTime('2026-01-28 09:30:00', 'America/New_York')
AND window_start < toDateTime('2026-01-28 16:00:00', 'America/New_York')
),
quotes AS (
SELECT toFloat64(substring(ticker, 14, 8)) / 1000 AS strike,
substring(ticker, 13, 1) AS cp,
round(argMax((bid_price + ask_price) / 2, sip_timestamp), 2) AS mid
FROM global_markets.cache_options_quotes
WHERE ticker LIKE 'O:MSFT260130%'
AND sip_timestamp >= toDateTime('2026-01-28 15:45:00', 'America/New_York')
AND sip_timestamp < toDateTime('2026-01-28 16:00:00', 'America/New_York')
AND bid_price > 0
AND ask_price > 0
GROUP BY ticker
)
SELECT concat('$', toString(strike)) AS strike_price,
maxIf(mid, cp = 'C') AS call_mid,
maxIf(mid, cp = 'P') AS put_mid,
round(maxIf(mid, cp = 'C') + maxIf(mid, cp = 'P'), 2) AS straddle_cost,
round(100 * (maxIf(mid, cp = 'C') + maxIf(mid, cp = 'P')) / (SELECT prior_close FROM prior), 2) AS implied_move_pct
FROM quotes
WHERE abs(strike - (SELECT prior_close FROM prior)) <= 5
GROUP BY strike
HAVING countIf(cp = 'C') > 0 AND countIf(cp = 'P') > 0
ORDER BY strikeЦіна виконання, найближча до ціни закриття $481.72, $482.5, становила $25.69 за пару — 5.33% від ціни акції. Це була ціна руху за дві повні сесії, а не за одну ніч. Лише нічний розрив склав -8.66%. Ринок опціонів мав конкретну цифру, і нічний рух перевищив її. Сусідні ціни виконання підтверджували це (5.37% за $477.5, 5.37% за $485), тож це був консенсус, а не одна помилкова котировка.
Для тих, хто тримає опціони під час розриву ціни, діють два механізми. Опціон не може змінити ціну, поки ринок закритий — час продовжує працювати проти довгої премії, і весь рух відображається в першому принті на відкритті. Після публікації події невизначеність зникає разом із ціною: імпліцитна волатильність обвалюється наступного ранку після релізу. Саме тому правильно вгаданий напрямок все одно може призвести до втрат по довгому опціону. Кількість днів до експірації визначає, наскільки сильно діють обидва ці фактори.
Типи гэпів: словник графічних патернів
Трейдери класифікують гэпи залежно від їхнього розташування в межах тривалого руху. Назви мають описовий характер, присвоюються після завершення руху і не є прогнозом:
- Звичайний (областьний) гэп — невеликий розрив у межах стандартного діапазону, що виникає за відсутності особливих новин. Більшість гэпів SPY розміром менше половини відсотка належать до цього типу.
- Геп прориву — стрибок ціни за межі діапазону або через тривалий рівень, зазвичай на великих обсягах.
- Геп відриву (продовження) — розрив посеред тренду в напрямку, в якому вже рухалася акція.
- Геп виснаження — розрив у напрямку тренду, що виникає на завершальному етапі руху, після чого ціна розвертається. У день формування він виглядає ідентично до гэпа відриву; розрізнити їх можна лише на основі подальших даних.
Остання пара є підступною: назва залежить від подальшого розвитку подій, тому в режимі реального часу їх ніхто не визначає.
Що розриви означають для ваших ордерів
Три наслідки, що випливають із того, що в межах розриву не відбувається торгівлі в регулярні години:
- Стоп-ордери не зупиняють збитки на ціні стопу. Стоп-ордер стає ринковим ордером, щойно акція торгується на рівні тригера або проходить крізь нього. Якщо акція закривається на рівні $50 і відкривається на рівні $44, стоп на рівні $48 спрацьовує під час відкриття і виконується біля $44 — розрив просто перестрибнув через нього. Стоп гарантує спробу, а не рівень; стоп-ліміт ордер обмежує ціну, яку ви приймаєте, з ризиком повного невиконання.
- Гальмом ринку є зупинки, а не розриви. Смуги Limit up-limit down (LULD) зупиняють торгівлю акцією, якщо її ціна відхиляється більше ніж на встановлений відсоток від нещодавньої середньої ціни — 5% або 10% для більшості позицій, ширше для дешевих паперів, подвоюється під час відкриття та закриття. Стійкий рух за межі смуги викликає п'ятихвилинну паузу. Загальноринкові автоматичні вимикачі зупиняють все, якщо S&P 500 падає на 7% (Рівень 1) або 13% (Рівень 2) від попереднього закриття, і закривають торговий день при падінні на 20% (Рівень 3). Ніщо з цього не запобігає розриву; це регулює те, що відбувається після відновлення торгівлі.
- «Заповнення розриву» — це опис, а не графік. Трейдери кажуть, що розрив «заповнюється», коли ціна повертається до попереднього закриття. Жодні зобов'язання щодо цього не існують для будь-якого часового проміжку. У найбільший день розриву SPY за півріччя ціна рухалася лише -0.08% після відкриття: жодного заповнення, жодного відкату, просто новий рівень.
Нічні та внутрішньоденні торги статистично є різними ринками. Саме тому спосіб вимірювання місячної доходності змінює результат залежно від того, чи враховуються нічні стрибки.
FAQ
Чому акції відкриваються з гэпом вгору або вниз?
Ринок закритий протягом сімнадцяти з половиною годин із кожних двадцяти чотирьох, але потік інформації не припиняється: звіти про прибутки публікуються після закриття, новини з'являються перед відкриттям, а закордонні ринки торгують всю ніч. Відкриваючий аукціон виконує накопичені ордери за однією ціною. Відстань від попереднього закриття і є гэпом.
Наскільки поширеними є нічні гэпи?
Вони зустрічаються повсюдно. У H1 2026 середній абсолютний нічний гэп SPY становив 0.45%, і 41 із 123 сесій відкрилися з відхиленням щонайменше на пів відсотка від попереднього закриття. У окремих акцій ці показники вищі: у Tesla середній показник становив 1.05%.
Чи частіше виникають гэпи по понеділках?
Помірно так. З січня 2024 року по червень 2026 року середній абсолютний понедільний гэп SPY становив 0.52% — це найширший показник серед робочих днів, порівняно з 0.36% у вівторок. Вихідні додають закритих годин, але не визначають напрямок руху.
Чи завжди гэпи заповнюються?
Ні. Твердження «гэп завжди заповнюється» є трейдерським фольклором: одні заповнюються протягом кількох годин, інші ніколи не повертаються до ціни попереднього закриття. Сприймайте будь-яку статистику заповнення як опис минулих сесій, а не як правило для наступної.
Що відбувається з моїм stop-loss, якщо акція відкривається з гэпом вниз?
Стоп спрацьовує під час відкриття і виконується за будь-якою ціною, яку пропонує ринок. Вона може бути значно нижчою за ціну стопу, оскільки в зоні гэпу немає угод, які могли б його зафіксувати.
Кожне число вище є збереженим запитом — розгорніть SQL під будь-якою панеллю або розділіть місячний рух будь-якого тікера на нічні та внутрішньоденні коливання в терміналі Strasmore.