Strasmore Research
Aprendizado Matt ConnorPor Matt Connor · Atualizado 2026-07-23

Por que as ações dão gap na abertura

Entenda o que causa o gap up ou gap down entre o fechamento e a abertura do SPY. Analisamos o impacto das 17,5 horas de mercado fora do horário regular.

Um gap é a distância entre o fechamento de uma ação em uma sessão e sua abertura na sessão seguinte — um salto no gráfico de preços sem negociações durante o horário regular. Ações apresentam gaps de alta ou de baixa durante a noite por razões estruturais: as bolsas operam em uma sessão de 6,5 horas, mas as outras 17,5 horas ainda geram balanços, notícias, negociações no exterior e volumes reduzidos no extended-hours. Tudo isso impacta a abertura da manhã seguinte de uma só vez. Esta página mede os gaps em vez de apenas afirmá-los: cada sessão do SPY no H1 2026, cinco ações de grande capitalização além do índice e um movimento overnight de mais de oito por cento detectado antes da abertura.

O que é um gap up ou gap down?

Gap up: o preço de abertura de hoje está acima do fechamento da sessão regular de ontem. Gap down: o preço está abaixo do fechamento. A abertura em questão é a das 9:30 a.m. ET, definida pelo leilão de abertura, que consolida o acúmulo de ordens do período noturno e as liquida em um preço único. Entre o fechamento anterior e esse leilão, o after-hours e premarket registra negociações reais, mas com uma fração do volume da sessão regular — portanto, a abertura oficial é onde o peso total do mercado se manifesta e onde o gap é medido.

A descoberta de preço nunca para totalmente: os futuros de índices são negociados quase 24 horas por dia, mercados internacionais definem níveis enquanto Nova York dorme, e o premarket começa às 4:00 a.m. ET. Às 9:30, o leilão não está tentando adivinhar — ele ratifica um nível que os ambientes noturnos já esboçaram.

Qual é o tamanho de um gap de overnight normal?

Cada sessão do H1 2026 para o SPY, o ETF do S&P 500, dividida em componentes de overnight (do fechamento anterior à abertura) e intraday (da abertura ao fechamento):

QuerySPY, H1 2026 — média do gap absoluto overnight vs. média do movimento intraday absoluto
O SQL exato por trás de cada número
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)

Ao longo de 123 sessões, o gap médio absoluto de overnight do SPY foi de 0.45%, contra um movimento médio absoluto de abertura ao fechamento de 0.53%: o salto intraday não negociável é quase do tamanho de todo o dia negociável seguinte. Gaps de meio por cento ou mais ocorreram 41 vezes — aproximadamente uma sessão em cada três.

As ações apresentam gaps maiores na segunda-feira?

A abertura de segunda-feira tem uma reputação: o fim de semana estende os mesmos mecanismos por 65 horas de mercado fechado em vez de 17,5. Esse mito pode ser testado. Analisamos cada sessão do SPY de janeiro de 2024 até junho de 2026, separadas por dias da semana, com a média do gap absoluto e o percentil 90 — o tamanho que apenas uma abertura em cada dez supera. (Um feriado na segunda-feira transfere o gap do fim de semana para a abertura de terça-feira, sendo contabilizado em terça.)

QueryGaps overnight do SPY por dia da semana — todas as sessões, janeiro de 2024 a junho de 2026
O SQL exato por trás de cada número
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

Os dados confirmam o mito. O gap absoluto médio da segunda-feira em 119 segundas-feiras foi de 0.52% — o maior entre os cinco dias da semana, contra 0.36% na terça-feira, 0.39% na quarta-feira, 0.45% na quinta-feira e 0.39% na sexta-feira. A cauda da distribuição é onde o efeito do fim de semana é mais visível: o gap no percentil 90 da segunda-feira foi de 1.11% contra 0.73% da terça-feira. O efeito é real e pequeno — a abertura de segunda-feira apresenta uma distribuição mais ampla, não um comportamento diferente, e os dados não indicam uma direção específica.

Os maiores gaps do H1 2026

Os seis maiores gaps do SPY no overnight do semestre, com o desempenho do restante de cada dia:

QueryOs seis maiores gaps overnight do SPY no H1 2026 — e o movimento open-to-close do mesmo dia
O SQL exato por trás de cada número
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

O maior ocorreu em April 8, 2026: o SPY abriu 2.6% de distância do fechamento anterior e depois moveu -0.08% do abertura ao fechamento. Toda a reavaliação do dia aconteceu antes da primeira negociação em horário regular — a lição prática dos gaps é que o mercado pode se reajustar sem você.

Um número sem contexto é apenas metade de um número. Todas as manchetes com o ticker SPY publicadas entre o fechamento de 7 de abril e a abertura de 8 de abril:

QueryNotícias do wire durante o maior gap overnight do SPY no H1 2026
O SQL exato por trás de cada número
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

Duas manchetes ocorreram durante essas horas de mercado fechado, ambas sobre um cessar-fogo entre EUA e Irã, com horários de Apr 08 03:28 ET e Apr 08 08:58 ET — antes da abertura, com o mercado fechado. O gap é o registro contábil de notícias que chegam quando você não pode negociar.

Ações individuais apresentam gaps maiores que o índice?

Um ETF de índice detém centenas de empresas, e as surpresas durante o overnight se cancelam parcialmente. Uma ação individual não possui esse amortecimento. Cinco nomes conhecidos comparados ao SPY na mesma sessão:

QueryGaps overnight por ticker, H1 2026 — média do gap absoluto e o maior gap único
O SQL exato por trás de cada número
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)

Leia as duas colunas separadamente. Em uma noite típica, o ranking é o esperado: Tesla teve média de 1.05% e Nvidia 0.99%, contra 0.45% do SPY — mas a Coca-Cola teve média de 0.42%, abaixo do índice — uma mega-cap de consumo estável é um instrumento de baixa volatilidade no overnight na maioria das noites.

A coluna de cauda é onde o amortecimento desaparece. O maior gap único do SPY no semestre foi de 2.6% (April 8, 2026), e todas as cinco ações individuais superaram esse valor: Coca-Cola 5.41%, Apple 2.82%, Nvidia 3.6%, Tesla 4.97% — e a Microsoft, a maior do grupo, -8.66% em January 29, 2026. Ações individuais nem sempre são mais ruidosas que o índice em uma noite comum, mas sua pior noite é muito pior.

Observando a formação de um gap antes da abertura

Relembre o gap da Microsoft em January 29, 2026. A sessão anterior fechou a $481.72; qualquer valor após esse fechamento ocorreu com o mercado fechado e, até a abertura do premarket às 4:00 ET, a precificação já estava concluída:

QueryMSFT — formação do gap de 29 de janeiro de 2026, intervalos de 30 min no premarket
O SQL exato por trás de cada número
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

O primeiro intervalo do premarket, às 04:00 ET, já registrou $454, ou seja, 5.75% abaixo do fechamento anterior, com 128 mil ações. Nas cinco horas seguintes, houve oscilações; no último intervalo do premarket (09:00 ET), o preço estava 8.71% abaixo do fechamento, e a abertura oficial ocorreu a $-8.66% — dentro de uma margem de erro do que 4.86 milhões de ações no overnight já haviam decidido.

Observe a última coluna: todo o premarket representou 4.31% do volume que a sessão regular negociaria. Um gap desse tamanho é precificado por uma fração de volume no mercado de balcão e confirmado pelo mercado completo às 9:30. Essa baixa liquidez é o motivo pelo qual os spreads são mais largos próximo à abertura.

O que o mercado de opções cobrou naquela noite

As opções mostram o que o mercado esperava que fosse o movimento, antes de ele ocorrer. Um straddle — a soma da call com a put no mesmo strike e vencimento — custa aproximadamente o que o mercado projeta de movimento da ação em qualquer direção até o vencimento. Os straddles near-the-money da Microsoft, cotados nos últimos 15 minutos antes do fechamento de 28 de janeiro, com vencimento dois dias depois:

QueryPreços de straddle da MSFT no fechamento antes do gap — 28 jan. 2026, vencimento 30 jan.
O SQL exato por trás de cada número
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

O strike mais próximo do fechamento de $481.72, $482.5, foi negociado a $25.69 pelo par — 5.33% do preço da ação, e esse era o movimento precificado para duas sessões completas, não apenas uma noite. O gap de overnight sozinho foi de -8.66%. O mercado de opções tinha um número e a noite o superou — e os strikes vizinhos concordaram (5.37% a $477.5, 5.37% a $485), portanto, isso foi consenso, não uma cotação isolada.

Dois mecanismos se aplicam para quem mantém opções durante um gap. Uma opção não pode ser reprecificada enquanto o mercado está fechado — o tempo continua correndo contra o prêmio longo, e todo o movimento aparece na abertura. E, uma vez que o evento ocorre, a incerteza desaparece junto com o preço: a volatilidade implícita colapsa na manhã seguinte ao anúncio, razão pela qual uma direção acertada ainda pode gerar prejuízo em uma opção longa. Dias para o vencimento determinam a intensidade de ambos os efeitos.

Tipos de gaps: o vocabulário de padrões de gráfico

Traders classificam os gaps conforme sua posição em um movimento de longo prazo. Os nomes são descritivos, aplicados após o evento, e nenhum deles é uma previsão:

  • Gap comum (de área) — um gap pequeno dentro de um intervalo comum, sem notícias especiais. A maioria dos gaps do SPY abaixo de meio por cento são deste tipo.
  • Breakaway gap — o preço salta para fora de um intervalo ou atravessa um nível consolidado, tipicamente com volume alto.
  • Runaway (continuation) gap — um gap no meio de uma tendência, na direção em que a ação já estava se movendo.
  • Exhaustion gap — um gap na direção da tendência que ocorre no fim do movimento, após o qual o preço reverte. No dia, ele parece idêntico a um runaway gap; apenas dados posteriores os diferenciam.

O último par é uma armadilha: a classificação depende do que acontece em seguida, portanto ninguém o nomeia em tempo real.

O que os gaps significam para suas ordens

Três consequências, todas decorrentes do fato de que não há negociação em horário regular durante o gap:

  • Ordens stop não limitam a perda no preço de stop. Um stop torna-se uma ordem a mercado assim que a ação é negociada no preço ou ultrapassa o gatilho. Se uma ação fecha a $50 e abre a $44, um stop de $48 é acionado na abertura e executado próximo a $44 — o gap saltou diretamente sobre ele. O stop garante a tentativa, não o nível; uma ordem stop-limit limita o preço que você aceita, com o risco de não haver execução.
  • Halts, e não gaps, são o freio do mercado. As bandas de limit up-limit down (LULD) impedem que uma ação registre um preço superior a uma porcentagem definida em relação à sua média recente — 5% ou 10% para a maioria dos ativos, valores maiores para ações de baixo preço, e o dobro na abertura e no fechamento — e um movimento persistente fora da banda aciona uma pausa de cinco minutos. Os circuit breakers do mercado interrompem tudo se o S&P 500 cair 7% (Nível 1) ou 13% (Nível 2) em relação ao fechamento anterior, e encerram o dia com 20% (Nível 3). Nada disso evita o gap; isso governa o que acontece quando a negociação é retomada.
  • "Gap fill" é uma descrição, não um cronograma. Traders dizem que um gap "fecha" quando o preço retorna ao fechamento anterior. Nada obriga esse movimento em qualquer timeframe. O maior dia de gap do SPY neste semestre moveu-se apenas -0.08% após a abertura: sem fechamento, sem fade, apenas um novo nível.

Overnight e intraday são, estatisticamente, mercados diferentes — o que também explica por que como os retornos mensais são medidos altera a resposta dependendo se os saltos do overnight são contabilizados.

FAQ

O que faz uma ação ter um gap de alta ou de baixa durante a noite?

O mercado fica fechado por 17.5 de cada 24 horas e as informações não param: resultados são publicados após o fechamento, notícias surgem antes da abertura e mercados internacionais operam a noite toda. O leilão de abertura liquida as ordens acumuladas em um único preço; a distância em relação ao fechamento anterior é o gap.

Com que frequência ocorrem gaps de overnight?

Sempre. No H1 2026, o gap absoluto médio do SPY foi de 0.45%, e 41 de 123 sessões abriram com pelo menos meio por cento de diferença do fechamento anterior. Ações individuais apresentam gaps maiores: a Tesla teve média de 1.05%.

As ações apresentam mais gaps nas segundas-feiras?

Modestamente, sim. De janeiro de 2024 até junho de 2026, o gap absoluto médio de segunda-feira do SPY foi de 0.52% — o maior entre os dias da semana, contra 0.36% na terça-feira. O fim de semana adiciona horas de mercado fechado, não direção.

Os gaps sempre são fechados?

Não. "O gap sempre fecha" é um folclore do trading: alguns fecham em poucas horas, outros nunca retornam ao fechamento anterior. Considere qualquer estatística de fechamento de gap como uma descrição de sessões passadas, não como uma regra para a próxima.

O que acontece com o meu stop-loss se uma ação tiver um gap de baixa?

O stop é acionado na abertura e executado pelo preço disponível no mercado, que pode estar muito abaixo do preço do stop — o gap não possui ordens para capturá-lo.


Cada número acima é uma consulta armazenada — expanda o SQL sob qualquer painel ou divida o movimento mensal de qualquer ticker em variações de overnight e intraday no terminal Strasmore.

#gaps#market structure#opening auction#overnight moves