Quanto custa operar opções
Comissões podem ser zero, mas o bid-ask spread é real. Veja o custo mediano para negociar opções de SPY, QQQ, IWM, GLD e TSLA em basis points.
Commissions on listed options are zero at most brokerages, but every marketable options order still pays the bid-ask spread — the gap between the best price a buyer will pay and the best price a seller will accept. Options usually trade at far lower dollar prices than the stock they reference, so the same cents-wide gap is a much larger share of the trade. On 2026-07-02, SPY options (every 2026-expiry contract) quoted a median spread of 80.97 basis points during regular hours, while SPY stock itself quoted 0.27 bps — a gap of roughly 299.9×. Every figure below is measured from the consolidated options quote and trade tapes, with the exact SQL behind each number attached.
Por que os spreads de opções parecem diferentes dos spreads de ações
Considere uma ação cotada a $745.00 bid / $745.02 ask. O spread de dois centavos representa cerca de 0,27 bps do preço da ação. Uma call at-the-money para a mesma ação pode ser cotada a $7.20 bid / $7.30 ask — um spread de dez centavos, o que equivale a aproximadamente 138 bps do midpoint de $7.25. A opção tem um spread maior em centavos e centenas de vezes maior em relação ao preço pago. O baixo valor nominal da opção explica o efeito: dez centavos é um valor pequeno em termos absolutos, mas uma porcentagem alta de um contrato de $7.25.
A unidade profissional para comparar custos entre diferentes instrumentos é o basis point (bp) — um centésimo de um por cento. Um contrato padrão de opção cobre 100 ações do ativo subjacente, portanto, o impacto financeiro de uma operação escala com o subjacente, mas o spread é medido em relação ao preço cotado da própria opção. Esta é a unidade utilizada em toda esta página.
Opções de SPY vs. ações de SPY: um comparativo
O SPY é o produto de opções mais líquido dos EUA, e mesmo assim a diferença de custo é drástica. O painel abaixo compara as opções de SPY e as ações de SPY na mesma sessão: fluxo de cotações, negociações executadas e o spread mediano de cada um.
O SQL exato por trás de cada número
WITH
opt_q AS (
SELECT
count() AS opt_updates,
quantileDeterministic(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), cityHash64(ticker, sip_timestamp)) AS opt_median_spread_ratio
FROM global_markets.cache_options_quotes
WHERE sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
AND ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
),
stock_q AS (
SELECT
count() AS stock_updates,
quantileDeterministic(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), cityHash64(ticker, sip_timestamp)) AS stock_median_spread_ratio
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
AND ticker = 'SPY'
AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
),
opt_t AS (
SELECT count() AS opt_trades FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
AND ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
),
stock_close AS (
SELECT round(argMax(toFloat64(close), window_start), 2) AS spy_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
)
SELECT
'2026-07-02' AS session_date,
opt_q.opt_updates AS spy_opt_updates,
stock_q.stock_updates AS spy_stock_updates,
round(opt_q.opt_updates / stock_q.stock_updates, 1) AS opt_to_stock_update_ratio,
opt_t.opt_trades AS spy_opt_trades,
round(opt_q.opt_updates / opt_t.opt_trades, 1) AS quotes_per_trade,
round(opt_q.opt_median_spread_ratio * 10000, 2) AS spy_opt_median_spread_bps,
round(stock_q.stock_median_spread_ratio * 10000, 2) AS spy_stock_median_spread_bps,
round(opt_q.opt_median_spread_ratio / stock_q.stock_median_spread_ratio, 1) AS ratio_opt_to_stock_spread,
stock_close.spy_close AS spy_underlying_close
FROM opt_q CROSS JOIN stock_q CROSS JOIN opt_t CROSS JOIN stock_closeO spread mediano das opções de SPY de 80.97 bps significa que uma ordem de mercado de ida e volta — comprando no ask e vendendo no bid posteriormente — perde aproximadamente o valor total do spread cotado em relação ao midpoint, cerca de metade de cada lado da operação. A mesma operação de ida e volta em ações de SPY perde aproximadamente 0.27 bps. O fluxo de cotações mostra o mesmo cenário de liquidez sob outra perspectiva: os market makers registraram 256.5 atualizações de cotação de opções de SPY para cada negociação de opções de SPY executada, reprecificando milhares de combinações de strike e vencimento tick a tick.
A distribuição do spread de opções do SPY: não é um número único
A mediana é útil, mas o spread que um trader individual paga depende do contrato. Opções do SPY próximas do dinheiro (near-the-money) e próximas do vencimento tendem a apresentar as cotações mais estreitas; contratos muito fora do dinheiro (far out-of-the-money) e com vencimento longo podem ter spreads muito maiores. O painel abaixo mostra a distribuição completa das cotações de opções do SPY com dois lados válidos durante a sessão.
O SQL exato por trás de cada número
WITH opts AS (
SELECT
(toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000 AS spread_bps,
cityHash64(ticker, sip_timestamp) AS det
FROM global_markets.cache_options_quotes
WHERE sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
AND ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
)
SELECT
round(quantileDeterministic(0.10)(spread_bps, det), 2) AS p10_bps,
round(quantileDeterministic(0.25)(spread_bps, det), 2) AS p25_bps,
round(quantileDeterministic(0.50)(spread_bps, det), 2) AS median_bps,
round(quantileDeterministic(0.75)(spread_bps, det), 2) AS p75_bps,
round(quantileDeterministic(0.90)(spread_bps, det), 2) AS p90_bps,
count() AS valid_two_sided_quotes
FROM optsA metade central das cotações de opções do SPY ficou entre 49.65 bps e 147.12 bps. Uma em cada dez cotações foi mais estreita que 35.51 bps, e uma em cada dez foi mais larga que 316.51 bps. A cauda longa reflete strikes ilíquidos e vencimentos longos — exatamente os contratos nos quais um comprador casual tem mais probabilidade de incorrer.
Como o custo varia entre os produtos populares
O SPY é o benchmark, mas nem todo produto de opções apresenta spreads tão estreitos. O painel abaixo mede a mediana do spread cotado durante o horário regular, em pontos-base, para cinco ativos de opções amplamente negociados: três ETFs de índice (SPY, QQQ, IWM), um ETF de ouro (GLD) e uma ação com alta liquidez de opções (TSLA). Cada ativo foi filtrado pelo intervalo de tickers com vencimento em 2026 para que a consulta otimize o índice (ticker, sip_timestamp), e as linhas estão listadas em ordem alfabética para manter a posição fixa de cada produto.
O SQL exato por trás de cada número
SELECT
root,
round(count() / 1e6, 1) AS quote_updates_millions,
round(quantileDeterministic(0.5)(spread_bps, det), 2) AS median_spread_bps,
round(quantileDeterministic(0.5)(width_cents, det), 2) AS median_width_cents
FROM (
SELECT 'SPY' AS root, (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000 AS spread_bps, (toFloat64(ask_price) - toFloat64(bid_price)) * 100 AS width_cents, cityHash64(ticker, sip_timestamp) AS det
FROM global_markets.cache_options_quotes
WHERE sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
AND ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
UNION ALL
SELECT 'QQQ' AS root, (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000 AS spread_bps, (toFloat64(ask_price) - toFloat64(bid_price)) * 100 AS width_cents, cityHash64(ticker, sip_timestamp) AS det
FROM global_markets.cache_options_quotes
WHERE sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
AND ticker >= 'O:QQQ26' AND ticker < 'O:QQQ27'
AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
UNION ALL
SELECT 'IWM' AS root, (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000 AS spread_bps, (toFloat64(ask_price) - toFloat64(bid_price)) * 100 AS width_cents, cityHash64(ticker, sip_timestamp) AS det
FROM global_markets.cache_options_quotes
WHERE sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
AND ticker >= 'O:IWM26' AND ticker < 'O:IWM27'
AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
UNION ALL
SELECT 'GLD' AS root, (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000 AS spread_bps, (toFloat64(ask_price) - toFloat64(bid_price)) * 100 AS width_cents, cityHash64(ticker, sip_timestamp) AS det
FROM global_markets.cache_options_quotes
WHERE sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
AND ticker >= 'O:GLD26' AND ticker < 'O:GLD27'
AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
UNION ALL
SELECT 'TSLA' AS root, (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000 AS spread_bps, (toFloat64(ask_price) - toFloat64(bid_price)) * 100 AS width_cents, cityHash64(ticker, sip_timestamp) AS det
FROM global_markets.cache_options_quotes
WHERE sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
AND ticker >= 'O:TSLA26' AND ticker < 'O:TSLA27'
AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
)
GROUP BY root
ORDER BY root ASCOs ETFs de índice apresentam os menores custos: o SPY apresentou uma mediana de spread de 80.97 bps, o QQQ de 123.71 bps e o IWM de 130.72 bps. Na extremidade de maior custo, as opções de TSLA cotaram 309.93 bps e as de GLD cotaram 786.75 bps — um regime de custo completamente diferente. A coluna de atualizações de cotação (em milhões) complementa os dados: os produtos com maior volume de cotações estão no grupo de menor custo.
O efeito 0DTE e semanal: vida útil menor, spread maior
Contratos com menos tempo para o vencimento tendem a ser negociados por preços nominais menores. Isso aumenta mecanicamente o spread em pontos-base, mesmo que a diferença em centavos permaneça pequena. O painel abaixo agrupa cotações de opções do SPY near-the-money (strikes 730–760) por data de vencimento — cada vencimento de 2026 que registrou pelo menos um milhão de atualizações de cotação na sessão, em ordem cronológica.
O SQL exato por trás de cada número
WITH opts AS (
SELECT
toFloat64(ask_price) - toFloat64(bid_price) AS width,
(toFloat64(ask_price) + toFloat64(bid_price)) / 2 AS mid,
substring(ticker, -15, 6) AS expiry_code,
toUInt32OrZero(substring(ticker, -8)) / 1000 AS strike,
cityHash64(ticker, sip_timestamp) AS det
FROM global_markets.cache_options_quotes
WHERE sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
AND ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
AND strike BETWEEN 730 AND 760
)
SELECT
expiry_code,
round(count() / 1e6, 1) AS quote_updates_millions,
round(quantileDeterministic(0.5)(width / mid * 10000, det), 2) AS median_spread_bps,
round(quantileDeterministic(0.5)(width * 100, det), 2) AS median_width_cents
FROM opts
GROUP BY expiry_code
HAVING count() >= 1000000
ORDER BY expiry_code ASCO contrato para o mesmo dia — código de vencimento 260702, o 0DTE — apresentou um spread mediano de 113.64 bps sobre uma largura mediana de apenas 2 centavos. O vencimento mais longo acima da barra, 261231, apresentou cotação mais larga em centavos (11), mas materialmente mais estreita em pontos-base, a 37.16 bps. Essa é a lição principal sobre custos de negociação de opções: um spread de um ou dois centavos não é automaticamente barato quando a própria opção é negociada por poucos dólares. O que são opções 0DTE explica a mecânica dos contratos para o mesmo dia.
O que os dados de tamanho de lote indicam sobre quem paga esses custos
O trading de opções é feito em contratos, e um contrato padrão cobre 100 ações. A mediana das operações de opções executadas em 2026-07-02 foi de apenas 1 contrato; até mesmo o percentil 90 foi de apenas 10 contratos. A maioria das operações de opções é pequena, e o trader de varejo é o mais exposto ao spread cotado — uma ordem institucional grande pode frequentemente negociar uma melhora no preço ou ser fatiada ao longo do tempo.
O SQL exato por trás de cada número
WITH trades AS (
SELECT toFloat64(size) AS size FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
)
SELECT
round(quantileExact(0.50)(size), 0) AS median_contracts,
round(quantileExact(0.90)(size), 0) AS p90_contracts,
round(avg(size), 1) AS avg_contracts,
count() AS total_prints
FROM tradesFAQ
Operar opções é mais caro do que operar ações?
Geralmente sim, quando medido como uma proporção do preço negociado. Um ETF com alta liquidez como o SPY apresenta um spread cotado bem abaixo de um ponto de base no ativo principal; as opções do mesmo underlying costumam apresentar dezenas de pontos de base. O valor em dólares depende do preço da opção e do número de contratos, mas o spread como percentual do valor da opção é quase sempre maior do que o da ação.
Por que o spread das opções 0DTE é tão alto em pontos de base?
Opções de vencimento no mesmo dia ou semana costumam ser negociadas a preços baixos — às vezes abaixo de US$ 1,00 — perto do fim de sua validade. Um spread de um ou dois centavos em uma opção de US$ 0,50 representa 2–4% do preço, ou 200–400 bps. Os centavos parecem pequenos, mas o custo percentual não é. É por isso que os traders comparam spreads em pontos de base, não em centavos.
As comissões importam mais do que o spread?
Para uma operação de varejo de lote único, o spread geralmente é o fator dominante. Uma cotação de US$ 1,00 / US$ 1,05 custa US$ 5,00 por contrato em uma operação completa de ida e volta (100 ações por contrato) antes de qualquer comissão. Em produtos de baixo preço ou com spread amplo, apenas o spread pode exceder qualquer comissão plausível.
Posso evitar o spread usando ordens limitadas?
Uma ordem limitada dentro do spread pode ser executada por um valor inferior ao spread total, mas não há garantia de execução. Uma ordem a mercado paga o spread por definição. O spread é o preço da imediatismo, não uma taxa cobrada pela sua corretora.
Quais produtos de opções possuem os spreads mais apertados?
Com base nas medições desta página, os grandes ETFs de índice — SPY, QQQ, IWM — apresentam as medianas mais apertadas e também concentram o maior volume de cotações. ETFs de commodities (GLD) e opções de ações individuais podem apresentar spreads muito maiores. O spread varia de contrato para contrato — mesmo underlying, diferentes strikes e vencimentos — portanto, uma única mediana esconde muita variação.
Notas de dados
Todos os timestamps são armazenados em UTC; o horário regular de 2 de julho de 2026 é filtrado como sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00' (9:30 am–4:00 pm ET). Estatísticas de spread utilizam apenas cotações bid-ask válidas (bid_price > 0, ask_price > 0, ask_price > bid_price), convertem preços Decimal para Float64 antes da divisão, e utilizam estimadores de mediana determinísticos (quantileDeterministic, indexados pelo hash do ticker e timestamp) para que a regeneração reproduza os mesmos valores. O censo abaixo contabiliza todos os registros de opções de SPY no intervalo e mostra qual a representatividade dessas cotações bid-ask válidas em relação ao feed bruto.
Censo de qualidade de cotação e metodologia completa
O SQL exato por trás de cada número
WITH opts AS (
SELECT
bid_price,
ask_price
FROM global_markets.cache_options_quotes
WHERE sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
AND ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
)
SELECT
count() AS total_updates,
countIf(bid_price > 0 AND ask_price > 0 AND ask_price > bid_price) AS valid_two_sided,
round(100.0 * countIf(bid_price > 0 AND ask_price > 0 AND ask_price > bid_price) / count(), 2) AS valid_pct,
countIf(bid_price = 0 OR ask_price = 0) AS one_sided,
round(100.0 * countIf(bid_price = 0 OR ask_price = 0) / count(), 2) AS one_sided_pct,
countIf(bid_price > 0 AND ask_price > 0 AND ask_price <= bid_price) AS locked_or_crossed,
round(100.0 * countIf(bid_price > 0 AND ask_price > 0 AND ask_price <= bid_price) / count(), 2) AS locked_or_crossed_pct
FROM optsMais de 99.94% dos registros de cotação de opções de SPY na sessão foram cotações bid-ask válidas; registros de apenas um lado representaram 0.06% do feed, e registros travados ou cruzados foram negligenciáveis. Cada número de spread acima é calculado sobre o subconjunto de cotações bid-ask válidas — o custo que um trader poderia observar de fato no NBBO.
- Fonte de dados de mercado: tape de cotações de opções consolidado no estilo OPRA (
global_markets.cache_options_quotes), o tape de cotações de ações correspondente e o tape de negociações de opções consolidado (global_markets.options_trades; o painel de tamanho de negociação cobre deliberadamente todo o tape, não apenas SPY). - Formato de ticker da OCC:
O:+ raiz + vencimento de seis dígitos (YYMMDD) +C/P+ strike de sete dígitos ×1000. O painel 0DTE extrai o vencimento e o strike do ticker; os cálculos de spread agregam calls e puts. O filtro de cada raiz cobre seu intervalo de vencimento em 2026 (O:SPY26..O:SPY27e equivalentes), o que mantém cada varredura otimizada no índice (ticker, sip_timestamp). - Definição de spread:
(ask − bid) / midpoint × 10,000, em pontos de base, apenas em cotações bid-ask válidas. - Medianas e percentis: estimadores de reservatório
quantileDeterministicindexados porcityHash64(ticker, sip_timestamp)— memória limitada e saída idêntica em cada regeneração. - Fechamento do underlying: última barra de um minuto do horário regular de
delayed_stocks_minute_aggs. - Janela da sessão: 13:30–20:00 UTC, verificada contra barras de um minuto observadas de SPY em vez de aritmética de calendário.
- Sessão fixada: 2 de julho de 2026 — uma sessão completa finalizada, com margem de segurança em relação ao atraso de ingestão de ~1–2 dias do warehouse no momento da autoria (9 de julho de 2026). Datas literais são fixas, portanto a regeneração reproduz os mesmos valores.
Quer saber o custo de um contrato específico? Cada painel acima é uma query armazenada — execute-as, ou sua própria variação, no terminal Strasmore. Para mais detalhes sobre a mecânica, veja o custo para negociar ações, o que é um bid-ask spread, opções 0DTE, o tamanho do feed de cotações de opções e volume de opções vs. open interest.