Credit Spread vs Debit Spread: o mesmo trade?
Credit spread e debit spread sobre os mesmos strikes formam a mesma posição. Veja o grid de payoff, a matemática da paridade e o que realmente muda entre as duas verticais.
Uma credit spread e uma debit spread montadas sobre os mesmos dois strikes, no mesmo vencimento e na mesma direção, formam a mesma posição. Uma recebe caixa no início e a outra paga caixa; no vencimento, as linhas de lucro e de perda coincidem. O que sobra dessa constatação é uma lista curta de diferenças práticas — e a forma do payoff não está nela.
O que é um spread vertical, na forma de débito e crédito
O spread vertical é composto por duas opções do mesmo tipo, sobre o mesmo ativo de referência, com o mesmo vencimento, em dois preços de exercício diferentes. Uma é comprada e outra é vendida. O intervalo entre os preços de exercício é a largura, e a largura é o valor máximo que a estrutura pode chegar a ter. (Dois vencimentos, em vez de dois preços de exercício, formam um produto diferente, o spread de calendário.)
O bull call spread compra a call de menor preço de exercício e vende a call de maior preço de exercício. A call comprada custa mais do que a call vendida, por isso sai dinheiro da conta: esse pagamento é o débito. O bull put spread vende a put de maior preço de exercício e compra a put de menor preço de exercício. A put vendida vale mais, por isso entra dinheiro: esse recebimento é o crédito. Ambas as estruturas ganham conforme a ação sobe rumo ao preço de exercício mais alto, e ambas deixam de ganhar acima dele. As pernas individualmente são detalhadas em comprar e vender opções de compra.
A paridade call-put liga os dois preços
A paridade call-put é aritmética, não um modelo. Para um preço de exercício e um vencimento, o preço da call menos o preço da put é igual ao preço da ação menos o preço de exercício, descontado de volta até ao vencimento. Paridade call-put explica por que é que uma mesa de arbitragem a mantém honesta. O quadro abaixo mostra a identidade numa única cadeia de opções de AAPL, cotada no fecho em Jun 12, 2026 para contratos com vencimento em Jul 17, 2026.
| strike | call price | put price | call minus put | stock minus strike | parity gap | snapshot | expiry |
|---|---|---|---|---|---|---|---|
| $280 | 16 | 3.74 | 12.26 | 11.52 | 0.74 | Jun 12, 2026 | Jul 17, 2026 |
| $285 | 12.51 | 5.16 | 7.35 | 6.52 | 0.83 | Jun 12, 2026 | Jul 17, 2026 |
| $290 | 9.3 | 7.05 | 2.25 | 1.52 | 0.73 | Jun 12, 2026 | Jul 17, 2026 |
| $295 | 6.7 | 9.96 | -3.26 | -3.48 | 0.22 | Jun 12, 2026 | Jul 17, 2026 |
| $300 | 4.7 | 12.5 | -7.8 | -8.48 | 0.68 | Jun 12, 2026 | Jul 17, 2026 |
O SQL exato por trás de cada número
SELECT
concat('$', toString(toFloat64(strike_price))) AS strike,
round(avgIf(toFloat64(option_close), lower(option_type) IN ('call', 'c')), 2) AS call_price,
round(avgIf(toFloat64(option_close), lower(option_type) IN ('put', 'p')), 2) AS put_price,
round(avgIf(toFloat64(option_close), lower(option_type) IN ('call', 'c'))
- avgIf(toFloat64(option_close), lower(option_type) IN ('put', 'p')), 2) AS call_minus_put,
round(any(toFloat64(underlying_close)) - toFloat64(strike_price), 2) AS stock_minus_strike,
round(avgIf(toFloat64(option_close), lower(option_type) IN ('call', 'c'))
- avgIf(toFloat64(option_close), lower(option_type) IN ('put', 'p'))
- any(toFloat64(underlying_close)) + toFloat64(strike_price), 2) AS parity_gap,
formatDateTime(any(date), '%b %e, %Y') AS snapshot,
formatDateTime(any(expiration_date), '%b %e, %Y') AS expiry
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = '2026-06-12'
AND expiration_date = '2026-07-17'
AND volume >= 50
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.04
GROUP BY strike_price
HAVING countIf(lower(option_type) IN ('call', 'c')) > 0
AND countIf(lower(option_type) IN ('put', 'p')) > 0
ORDER BY strike_priceCompare a coluna call menos put com a coluna ação menos preço de exercício. No preço de exercício de $280, a call fechou a 12.26 acima da put, contra uma distância ação-menos-preço-de-exercício de 11.52. O mesmo par repete-se em todos os 5 preços de exercício do quadro. A última coluna guarda o que sobra, e esse valor fica perto de zero sem ficar em zero. Esse resíduo é o juro do preço de exercício ao longo das semanas até ao vencimento, líquido de qualquer dividendo dentro do período. Box spreads dão preço a esse resíduo por si só.
Um bull call spread e um bull put spread têm o mesmo payoff?
Aplique a identidade. O bull call spread custa a call de strike inferior menos a call de strike superior. Troque cada call pelo seu equivalente em paridade — uma ação mais a put menos o strike descontado — e as pernas de ação anulam-se. O que resta é a largura descontada menos o crédito do put spread. Numa frase: o débito pago e o crédito recebido somam sempre a largura do spread.
Essa afirmação tem um número associado, e aqui está o número, em cada vertical de $5 da mesma cadeia.
| spread strikes | call debit | put credit | debit plus credit |
|---|---|---|---|
| $275 / $280 | 3.7 | 1.04 | 4.74 |
| $280 / $285 | 3.49 | 1.42 | 4.91 |
| $285 / $290 | 3.21 | 1.89 | 5.1 |
| $290 / $295 | 2.6 | 2.91 | 5.51 |
| $295 / $300 | 2 | 2.54 | 4.54 |
| $315 / $320 | 0.49 | 4.65 | 5.14 |
O SQL exato por trás de cada número
WITH chain AS
(
SELECT
toFloat64(strike_price) AS strike,
any(toFloat64(underlying_close)) AS spot,
avgIf(toFloat64(option_close), lower(option_type) IN ('call', 'c')) AS call_px,
avgIf(toFloat64(option_close), lower(option_type) IN ('put', 'p')) AS put_px
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = '2026-06-12'
AND expiration_date = '2026-07-17'
AND volume >= 50
AND toFloat64(strike_price) = round(toFloat64(strike_price) / 5) * 5
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.10
GROUP BY strike
HAVING countIf(lower(option_type) IN ('call', 'c')) > 0
AND countIf(lower(option_type) IN ('put', 'p')) > 0
)
SELECT
concat('$', toString(lo.strike), ' / $', toString(hi.strike)) AS spread_strikes,
round(lo.call_px - hi.call_px, 2) AS call_debit,
round(hi.put_px - lo.put_px, 2) AS put_credit,
round((lo.call_px - hi.call_px) + (hi.put_px - lo.put_px), 2) AS debit_plus_credit
FROM chain AS lo
INNER JOIN chain AS hi ON hi.strike = lo.strike + 5
ORDER BY lo.strikeO degrau mais baixo está bem dentro do dinheiro, o que significa que o strike está do lado lucrativo do preço da ação. O call spread $275 / $280 custou 3.7 dos $5 de largura nesse ponto, enquanto o put spread com os mesmos strikes pagou 1.04, e os dois somaram 4.74. No degrau superior, $315 / $320, a relação inverte-se: 0.49 de débito contra 4.65 de crédito, somando 5.14. Em todos os 6 degraus, o total mantém-se nos $5 de largura, com diferença de apenas alguns centavos entre uma marcação de fecho e outra.
O grid de payoff, as duas estruturas lado a lado
A escada é uma afirmação sobre os preços de entrada. O grid de payoff é a mesma afirmação, no vencimento. Este painel toma o par de strikes mais próximos do nível a que a ação negociava naquele dia e preça ambas as estruturas numa série de preços de vencimento, em dólares por ação.
| price at expiry | debit structure pl | credit structure pl | pl gap |
|---|---|---|---|
| $275 | -2.6 | -2.09 | -0.51 |
| $280 | -2.6 | -2.09 | -0.51 |
| $285 | -2.6 | -2.09 | -0.51 |
| $290 | -2.6 | -2.09 | -0.51 |
| $295 | 2.4 | 2.91 | -0.51 |
| $300 | 2.4 | 2.91 | -0.51 |
| $315 | 2.4 | 2.91 | -0.51 |
| $320 | 2.4 | 2.91 | -0.51 |
O SQL exato por trás de cada número
WITH chain AS
(
SELECT
toFloat64(strike_price) AS strike,
any(toFloat64(underlying_close)) AS spot,
avgIf(toFloat64(option_close), lower(option_type) IN ('call', 'c')) AS call_px,
avgIf(toFloat64(option_close), lower(option_type) IN ('put', 'p')) AS put_px
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = '2026-06-12'
AND expiration_date = '2026-07-17'
AND volume >= 50
AND toFloat64(strike_price) = round(toFloat64(strike_price) / 5) * 5
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.12
GROUP BY strike
HAVING countIf(lower(option_type) IN ('call', 'c')) > 0
AND countIf(lower(option_type) IN ('put', 'p')) > 0
)
SELECT
concat('$', toString(px.strike)) AS price_at_expiry,
round(least(greatest(px.strike - lo.strike, 0.0), hi.strike - lo.strike)
- (lo.call_px - hi.call_px), 2) AS debit_structure_pl,
round((hi.put_px - lo.put_px)
- least(greatest(hi.strike - px.strike, 0.0), hi.strike - lo.strike), 2) AS credit_structure_pl,
round(least(greatest(px.strike - lo.strike, 0.0), hi.strike - lo.strike)
- (lo.call_px - hi.call_px)
- (hi.put_px - lo.put_px)
+ least(greatest(hi.strike - px.strike, 0.0), hi.strike - lo.strike), 2) AS pl_gap
FROM chain AS px
INNER JOIN chain AS lo ON lo.strike = floor(px.spot / 5) * 5
INNER JOIN chain AS hi ON hi.strike = lo.strike + 5
ORDER BY px.strikeA $275, abaixo de ambos os strikes, a estrutura de débito negocia-se a -2.6 por ação e a estrutura de crédito a -2.09. A $320, acima de ambos os strikes, negocia-se a 2.4 e a 2.91. A última coluna é a que merece atenção, e é plana: -0.51 na base do grid e -0.51 no topo. Um deslocamento constante não é um perfil de risco diferente. É uma forma só, desenhada duas vezes.
O pior caso e o melhor caso somam a largura em qualquer uma das linhas, já que nenhuma estrutura pode valer mais do que a distância entre os strikes. O ponto de equilíbrio sai da mesma aritmética: o strike mais baixo mais o débito na versão de call, o strike mais alto menos o crédito na versão de put. Como o débito e o crédito somam a largura, esses dois preços são um só preço.
Credit spread vs debit spread: o que realmente difere
Na prática, diferem três coisas, e o diagrama de resultados não é uma delas.
Como o capital é alocado
No débito, a perda máxima é o débito, e a conta já o pagou na entrada. Nada mais fica retido. No crédito, a perda máxima é a diferença entre os preços de exercício menos o crédito, e a corretora mantém esse montante como requisito contra a perna curta até a posição ser encerrada ou expirar. Os mesmos dólares, com etiquetas diferentes. Num extrato aparece caixa que saiu; noutro aparece caixa que entrou, com o poder de compra reduzido por um número maior. Uma vertical de risco definido é tratada em termos totalmente diferentes de uma opção de venda a descoberto, e convém perceber isto antes de comparar as duas: ver margem para vender opções nuas.
O exercício antecipado recai sobre pernas diferentes
Ambas as estruturas têm uma opção em posição curta, e as opções sobre ações nos EUA são de estilo americano, exercíveis em qualquer dia útil. O que difere é quando essa perna curta está dentro do dinheiro. No bull call spread, a perna curta é a call com preço de exercício mais alto, dentro do dinheiro no cenário vencedor, e as calls curtas enfrentam exercício antecipado sobretudo na véspera da data ex-dividendo, quando o dividendo oferecido excede o valor temporal remanescente da call. Datas ex-dividendo e opções explica essa mecânica. No bull put spread, a perna curta é o put com preço de exercício mais alto, dentro do dinheiro no cenário perdedor, e puts profundos dentro do dinheiro são exercidos antecipadamente pelo juro da receita do preço de exercício. A atribuição não altera a perda máxima definida, porque a perna longa permanece inalterada. Altera o que a conta detém durante a noite, que pode ser ação e uma chamada de margem. Opções americanas versus europeias esclarece que contratos podem sequer fazer isto.
Custo de execução onde a cadeia é fina
A paridade diz que as duas estruturas valem o mesmo. Não diz nada sobre o preço da execução. O volume raramente é simétrico ao longo de uma cadeia.
| strike | call volume | put volume | put volume share pct |
|---|---|---|---|
| $260 | 33 | 6379 | 99.5 |
| $265 | 21 | 7285 | 99.7 |
| $270 | 14 | 1890 | 99.3 |
| $275 | 141 | 1276 | 90 |
| $280 | 168 | 1167 | 87.4 |
| $285 | 481 | 1121 | 70 |
| $290 | 2317 | 2653 | 53.4 |
| $295 | 3391 | 467 | 12.1 |
| $300 | 3263 | 2357 | 41.9 |
| $305 | 3248 | 39 | 1.2 |
| $310 | 6597 | 19 | 0.3 |
| $315 | 1177 | 171 | 12.7 |
| $320 | 20989 | 92 | 0.4 |
| $325 | 661 | 0 | 0 |
O SQL exato por trás de cada número
SELECT
concat('$', toString(toFloat64(strike_price))) AS strike,
sumIf(volume, lower(option_type) IN ('call', 'c')) AS call_volume,
sumIf(volume, lower(option_type) IN ('put', 'p')) AS put_volume,
round(100 * sumIf(volume, lower(option_type) IN ('put', 'p')) / sum(volume), 1) AS put_volume_share_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = '2026-06-12'
AND expiration_date = '2026-07-17'
AND volume > 0
AND toFloat64(strike_price) = round(toFloat64(strike_price) / 5) * 5
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.12
GROUP BY strike_price
ORDER BY strike_priceEm $260, o mais baixo dos preços de exercício 14 apresentados, os puts representaram 99.5% dos contratos negociados. Em $325, o mais alto, a quota dos puts foi de 0%. O lado fino de uma cadeia apresenta um spread cotado mais largo, e essa largura é paga na entrada e novamente na saída. O que custa negociar opções apresenta valores concretos, e Mercados pouco líquidos versus voláteis distingue um mercado fino de um mercado rápido.
Volatilidade implícita alta favorece a versão credit?
O heurístico familiar é: venda prémio quando a volatilidade implícita é alta, compre-o quando a volatilidade implícita é baixa. Em strikes idênticos, essa frase descreve a entrada, nunca a estrutura. Os dois verticals são precificados com a mesma volatilidade nos mesmos dois strikes, e a escada acima é o resultado. Vender o put spread a uma volatilidade implícita elevada e comprar o call spread nesses strikes deixa uma única posição no razão, com um único ponto de equilíbrio e um único pior cenário. Uma visão sobre a entrada de volatilidade é expressa pelos strikes escolhidos e pela largura, e chega ao mesmo ponto nos dois caminhos. Volatilidade implícita alta é boa analisa a própria entrada.
Perguntas frequentes
Um spread a crédito é mais seguro que um spread a débito?
Com os mesmos strikes e prazo de vencimento, não. O pior cenário, o melhor cenário e o preço de break-even são idênticos. A versão a crédito apresenta o seu risco como uma margem exigida sobre a perna vendida, enquanto a versão a débito apresenta esse mesmo risco como dinheiro já despendido.
Qual deles immobiliza menos capital?
Nenhum, com strikes idênticos. A versão a débito custa o débito e não retém mais nada. A versão a crédito recebe o crédito e retém a amplitude menos o crédito. Esses dois montantes são o mesmo dinheiro, uma vez que o débito e o crédito somam a amplitude.
Um spread a crédito pode ser atribuído de forma antecipada?
Sim. A perna vendida de um vertical de ações dos EUA é de estilo americano e pode ser exercida sobre a conta em qualquer dia útil. A perna comprada permanece, pelo que a perda máxima definida mantém-se, embora a conta possa acabar por deter ações durante a noite.
Quando a escolha entre as duas realmente importa?
Quando as duas faces da cadeia não são igualmente líquidas, quando um dividendo ocorre dentro da janela e quando uma exigência do corretor torna uma das versões mais barata de manter. O diagrama de payoff nunca é o fator decisivo.
Todos os painéis aqui incluem o SQL que os produziu, pelo que expanda qualquer um para ver como o número foi calculado. Aplique as mesmas queries a outro ticker e outro prazo no terminal Strasmore para verificar se a identidade também se mantém lá.