O que é mercado travado e mercado cruzado
Entenda a diferença entre bid e ask quando o spread é zero ou o bid supera o ask e saiba por que a Reg NMS proíbe essas cotações no mercado.
Um mercado travado ocorre quando o melhor bid de uma ação é igual ao seu melhor ask — um bid-ask spread de exatamente zero. Um mercado cruzado é mais extremo: o melhor bid é superior ao melhor ask. As regras do mercado dos EUA proíbem que as bolsas exibam qualquer um dos dois, mas ambos aparecem rotineiramente no registro de cotações consolidadas. Esta página define ambos, explica a regra e mede a frequência com que cada um aparece.
O que é um mercado travado?
Cada ação nos EUA possui dois preços simultâneos: o bid, o maior preço que um comprador aceita pagar, e o ask, o menor preço que um vendedor aceita receber. O ask normalmente fica acima do bid; a diferença entre eles é o bid-ask spread, o custo intrínseco para negociar imediatamente.
Um mercado travado ocorre quando essa diferença fecha em zero: uma ação com cotação de $10,00 bid / $10,05 ask possui um spread de cinco centavos; se o melhor ask cair para $10,00 enquanto o bid se mantém, a cotação fica travada em $10,00 / $10,00.
Em uma única bolsa, esse estado não pode persistir — uma compra a $10,00 encontrando uma venda a $10,00 é executada na hora. Uma cotação travada só sobrevive entre diferentes plataformas. As ações dos EUA são negociadas em mais de uma dúzia de bolsas simultaneamente, e o NBBO — o melhor bid e ask nacional, a cotação exibida pelo seu app de corretora — consolida o melhor bid e ask de todas elas. Um bid de $10,00 em uma plataforma e um ask de $10,00 em outra travam a cotação nacional, mesmo que nenhuma das plataformas apresente um book travado.
O que é um mercado cruzado?
Um mercado cruzado inverte a configuração comum: o melhor bid fica acima do melhor ask — por exemplo, um bid de $10.02 contra um ask de $10.00. No papel, qualquer um poderia comprar a $10.00, vender a $10.02 e lucrar dois centavos por ação sem risco. Esse dinheiro fácil é exatamente o motivo pelo qual uma cotação cruzada não pode durar: firmas profissionais — entre elas os market makers que cotam ambos os lados da maioria das ações — aproveitam a arbitragem no instante em que ela se torna real, e essa execução consome ambas as cotações. O que resta nos dados é o flicker: um registro cruzado capturado entre a atualização de um venue e a de outro.
Por que a Reg NMS proíbe cotações travadas e cruzadas
A proibição faz parte da Regulation NMS, o conjunto de regras da SEC (adotado em 2005) para negociações entre as bolsas de valores dos EUA. A regra 610(d) exige que cada bolsa impeça seus membros de exibir cotações que travem ou cruzem protected quotes — os melhores bids e asks automatizados de outras bolsas — durante o horário regular de negociação. O objetivo: um bid igual ao ask de outro participante pode ser negociado imediatamente, e o regulamento busca que ele seja roteado e executado, em vez de exibido como uma contradição constante.
Um limite desta regra é relevante para os dados abaixo: ela regula a exibição, não a existência. Cada ambiente controla o que seu próprio book mostra; o registro consolidado é montado entre os ambientes em tempo real, a partir de feeds que competem entre si. Um NBBO travado pode aparecer nesse registro sem que nenhum participante individual tenha violado a regra.
Por que as cotações travadas e cruzadas ainda aparecem no tape
Velocidade. As bolsas atualizam as cotações em microssegundos, e o feed consolidado é reconstruído a cada atualização. Dois eventos comuns geram registros de cotações travadas e cruzadas:
- Races. Uma bolsa aumenta seu bid para $10.00 enquanto outra ainda exibe um ask de $10.00. Ao serem unificados, o NBBO apresenta um estado de cotação travada até que o lado mais lento atualize; o mesmo cenário com um desvio de um centavo resulta em cotação cruzada.
- Registros obsoletos e unilaterais. Alguns registros contêm apenas um lado — um bid sem ask, ou o inverso. Ativos com baixa liquidez passam muito mais tempo nessa condição, conforme mostra o censo abaixo.
As regras de contagem desta página: travada = bid igual ao ask, ambos os lados positivos; cruzada = bid acima de um ask positivo; unilateral = qualquer um dos lados é zero ou está ausente. Nada é descartado silenciosamente — registros unilaterais possuem sua própria coluna.
Com que frequência ocorrem mercados travados e cruzados?
Comece pelo registro completo: a cada atualização do NBBO, para cada símbolo listado, em 2026-07-14 — a sessão completa mais recente em nosso período de censo.
O SQL exato por trás de cada número
WITH (
SELECT max(toDate(toTimeZone(window_start, 'America/New_York')))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start < toDateTime(today() - 3)
) AS census_day
SELECT
formatDateTime(census_day, '%Y-%m-%d') AS session_date,
round(count() / 1e6, 0) AS updates_m,
round(countIf(bid_price = ask_price AND bid_price > 0) / 1e6, 2) AS locked_m,
round(countIf(bid_price > ask_price AND ask_price > 0) / 1e3, 1) AS crossed_k,
round(countIf(bid_price = ask_price AND bid_price > 0) / toFloat64(greatest(countIf(bid_price > ask_price AND ask_price > 0), 1)), 0) AS locked_per_crossed,
round(countIf(bid_price >= ask_price AND ask_price > 0 AND bid_price > 0) / toFloat64(count()) * 1e4, 1) AS locked_or_crossed_per_10k,
round(countIf(bid_price <= 0 OR ask_price <= 0) / toFloat64(count()) * 1e4, 1) AS one_sided_per_10k
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= toDateTime(census_day)
AND sip_timestamp < toDateTime(census_day + 1)Essa sessão registrou 477 milhões de atualizações de cotação: 9.7 milhões travadas e 67 mil cruzadas — totalizando 204.9 de cada 10.000 atualizações, com as travadas superando as cruzadas em 145 para uma. Registros sem um lado da cotação ocorreram 2.8 por cada 10.000. O resumo de mercado de 7 de julho apresenta os mesmos números ao lado de cada spread medido.
A taxa de todo o mercado mistura milhares de ativos muito distintos. A tabela abaixo refaz o censo em um conjunto selecionado de dez — oito tickers conhecidos mais duas small caps de baixa liquidez, Nathan's Famous (NATH) e Seneca Foods (SENEA) — ao longo de sessões completas recentes, incluindo o pregão estendido, com o spread típico de cada ativo listado ao lado.
O SQL exato por trás de cada número
SELECT ticker,
round(count() / 1e3, 1) AS updates_k,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price >= bid_price) * 100, 1) AS median_spread_cents,
countIf(bid_price = ask_price AND bid_price > 0) AS locked_records,
countIf(bid_price > ask_price AND ask_price > 0) AS crossed_records,
round(countIf(bid_price >= ask_price AND ask_price > 0 AND bid_price > 0) / toFloat64(count()) * 1e4, 1) AS locked_or_crossed_per_10k,
round(countIf(bid_price <= 0 OR ask_price <= 0) / toFloat64(count()) * 1e4, 1) AS one_sided_per_10k
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'AAPL', 'NVDA', 'MSFT', 'TSLA', 'KO', 'AMD', 'NATH', 'SENEA')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
GROUP BY ticker
ORDER BY tickerCompare a coluna de spread com a taxa. Coca-Cola, com spread típico de 1¢, apresentou cotação travada ou cruzada em 215.9 de cada 10.000 atualizações; Nvidia (2¢) registrou 91 por 10.000 e SPY (2¢) 52.2. AMD, cujo spread típico no período estendido era de 44¢, ficou em apenas 5.9 por 10.000. Um mercado travado ocorre quando dois venues atingem o mesmo centavo no mesmo instante — quanto maior o spread típico, maior o tempo para isso ocorrer.
Os ativos de baixa liquidez mal aparecem: Nathan's Famous registrou 0 registros travados e 0 cruzados em 8.4 mil atualizações; Seneca Foods registrou 0 e 0 em 40.5 mil. A outra coluna refere-se a registros de um lado só: ocorreram 41.5 por cada 10.000 na Nathan's Famous e 17 na Seneca Foods, contra 0 no SPY. Registros de mercados travados ou cruzados ocorrem onde a cotação é rápida e estreita; registros de um lado só ocorrem onde a cotação é escassa.
Quando ocorrem aglomerações de cotações travadas ou cruzadas?
O censo de nomes indica onde; o relógio indica quando. Abaixo está a taxa de cotações travadas ou cruzadas do conjunto verificado por intervalos de 30 minutos (Eastern Time), das 4:00 às 20:00, com o tráfego de atualizações de cada intervalo.
O SQL exato por trás de cada número
SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(countIf(bid_price >= ask_price AND ask_price > 0 AND bid_price > 0) / toFloat64(count()) * 1e4, 1) AS locked_or_crossed_per_10k,
round(count() / 1e6, 2) AS updates_m
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'AAPL', 'NVDA', 'MSFT', 'TSLA', 'KO', 'AMD', 'NATH', 'SENEA')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
GROUP BY et_time
HAVING et_time >= '04:00' AND et_time < '20:00'
ORDER BY et_timeA taxa aumenta ao longo da sessão. O intervalo do premarket das 05:00 registrou 3 por 10.000 em 0.59 milhões de atualizações; o intervalo das 09:30 — a primeira meia hora do pregão regular, iniciada pelo leilão de abertura — registrou 24.9 por 10.000 em 9.98 milhões de atualizações. A partir daí, a taxa cresce até o fechamento, atingindo 109.9 por 10.000 no intervalo das 15:30, no período que antecede o leilão de fechamento. Uma linha de registros ilustra o padrão:
O SQL exato por trás de cada número
SELECT
round(countIf(is_locked) / 1e3, 1) AS locked_k,
round(countIf(is_crossed) / 1e3, 1) AS crossed_k,
round(countIf(is_locked) / toFloat64(greatest(countIf(is_crossed), 1)), 1) AS locked_per_crossed,
round(countIf((is_locked OR is_crossed) AND et_minute BETWEEN 240 AND 569) / toFloat64(countIf(et_minute BETWEEN 240 AND 569)) * 1e4, 1) AS premarket_per_10k,
round(countIf((is_locked OR is_crossed) AND et_minute BETWEEN 570 AND 599) / toFloat64(countIf(et_minute BETWEEN 570 AND 599)) * 1e4, 1) AS opening_half_hour_per_10k,
round(countIf((is_locked OR is_crossed) AND et_minute BETWEEN 720 AND 779) / toFloat64(countIf(et_minute BETWEEN 720 AND 779)) * 1e4, 1) AS midday_hour_per_10k,
round(countIf((is_locked OR is_crossed) AND et_minute BETWEEN 930 AND 959) / toFloat64(countIf(et_minute BETWEEN 930 AND 959)) * 1e4, 1) AS closing_half_hour_per_10k,
round((countIf((is_locked OR is_crossed) AND et_minute BETWEEN 930 AND 959) / toFloat64(countIf(et_minute BETWEEN 930 AND 959)))
/ (countIf((is_locked OR is_crossed) AND et_minute BETWEEN 570 AND 599) / toFloat64(countIf(et_minute BETWEEN 570 AND 599))), 1) AS close_to_open_ratio,
round((countIf((is_locked OR is_crossed) AND et_minute BETWEEN 930 AND 959) / toFloat64(countIf(et_minute BETWEEN 930 AND 959)))
/ (countIf((is_locked OR is_crossed) AND et_minute BETWEEN 720 AND 779) / toFloat64(countIf(et_minute BETWEEN 720 AND 779))), 1) AS close_to_midday_ratio,
round((countIf((is_locked OR is_crossed) AND et_minute BETWEEN 930 AND 959) / toFloat64(countIf(et_minute BETWEEN 930 AND 959)))
/ (countIf((is_locked OR is_crossed) AND et_minute BETWEEN 240 AND 569) / toFloat64(countIf(et_minute BETWEEN 240 AND 569))), 1) AS close_to_premarket_ratio
FROM (
SELECT
bid_price = ask_price AND bid_price > 0 AS is_locked,
bid_price > ask_price AND ask_price > 0 AS is_crossed,
toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS et_minute
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'AAPL', 'NVDA', 'MSFT', 'TSLA', 'KO', 'AMD', 'NATH', 'SENEA')
AND sip_timestamp >= toDateTime(today() - 10)
AND sip_timestamp < toDateTime(today() - 3)
)Em todo o período, o conjunto verificado apresentou 257.2 mil registros travados contra 25.6 mil cruzados — uma relação de 10.1 travados para cada cruzado. A taxa da meia hora do fechamento, de 109.9 por 10.000, foi 4.4 vezes a da primeira meia hora (24.9) e 2.3 vezes a da hora do meio-dia (48.5).
A proibição de exibição nem sequer se aplica antes das 09:30, mas todo o período das 4:00 às 09:30 — premarket trading, com cotações sobre uma fração do tráfego do horário regular — apresentou apenas 10.9 por 10.000, e a meia hora do fechamento registrou 10.1 vezes essa taxa. Esses registros se concentram onde a cotação é rápida e ajustada, não onde as regras são mais flexíveis.
Notas de dados: janela e escopo
- O censo de todo o tape cobre um dia civil UTC completo, incluindo todos os símbolos listados; os painéis do conjunto verificado cobrem uma janela móvel de sessões recentes concluídas, incluindo o horário estendido (4:00 às 20:00 ET). Cada janela termina três dias antes da data de atualização — o armazém de cotações possui um atraso de ingestão de um-para-dois dias em sua extremidade inicial.
- A tabela de dez nomes é um conjunto verificado, não um ranking de todo o mercado; os intervalos de horário após as 16:00 operam com uma pequena fração do tráfego do horário regular (a coluna de contagem de atualizações foi plotada por esse motivo).
- Estes são contagens de registros, não durações. A análise forense por atualização — intervalos de nanossegundos, além de recebimentos de cruzamentos e bid zero no tape do SPY de uma única sessão — está disponível no estudo profundo de microestrutura de 29 de junho.
FAQ
O que é um mercado travado (locked market) em ações?
Um mercado travado ocorre quando o melhor bid é igual ao melhor ask — um spread de zero. Isso acontece entre bolsas — quando o bid de uma plataforma coincide com o ask de outra — e a Regulation NMS impede que as bolsas exibam cotações que gerem esse cenário durante o horário regular.
O que significa quando o bid é maior que o ask?
Um bid acima do ask caracteriza um mercado cruzado (crossed market). O livro de ordens de uma única bolsa não pode operar dessa forma — ordens sobrepostas são executadas imediatamente — e um NBBO cruzado é quase sempre o resultado de cotações de duas plataformas capturadas em momentos diferentes de atualização.
Mercados travados e cruzados são ilegais?
Não para o investidor comum. A Rule 610(d) da Regulation NMS obriga as bolsas a impedirem que seus membros exibam cotações travadas ou cruzadas durante o horário regular. Os registros transitórios no feed consolidado são artefatos de plataformas que atualizam em instantes ligeiramente diferentes.
Com que frequência ocorrem mercados travados e cruzados?
Rotineiramente: 9.7 milhões de registros travados e 67 mil cruzados atingem a fita consolidada apenas em 2026-07-14 — 204.9 de cada 10.000 atualizações. A taxa é muito maior em ativos com cotações apertadas do que em ativos com baixa liquidez, e é maior no fechamento do que na abertura.
Cada número nesta página é gerado a partir de uma consulta armazenada — expanda o SQL abaixo de qualquer painel para ver exatamente como um lock ou um cross é contabilizado. Para realizar o mesmo levantamento nos ativos que você negocia, solicite o relatório em inglês no terminal Strasmore.