Strasmore Research
Formazione Matt ConnorDi Matt Connor · Aggiornato 2026-08-08

Credit spread vs debit spread: è la stessa posizione?

Credit spread e debit spread sugli stessi strike pagano allo stesso modo. Scopri payoff grid, parity math e le tre differenze pratiche che contano.

Un credit spread e un debit spread costruiti sugli stessi due strike, con la stessa scadenza e nella stessa direzione, rappresentano la stessa posizione. Il primo genera un incasso iniziale, mentre il secondo richiede un esborso iniziale; alla scadenza, i rispettivi profili di profitto e perdita coincidono. Restano quindi poche differenze pratiche. La struttura del payoff non rientra tra queste.

Che cos’è un vertical spread, in forma debit e credit

Un vertical spread è composto da due opzioni dello stesso tipo, sullo stesso sottostante, con la stessa scadenza e con due strike diversi. Una viene acquistata e l’altra venduta. La differenza tra gli strike è l’ampiezza del spread, che rappresenta il valore massimo che la struttura può raggiungere. (Usare due scadenze invece di due strike crea una struttura diversa: il calendar spread.)

Un bull call spread acquista la call con lo strike più basso e vende la call con lo strike più alto. La call acquistata costa più di quella venduta, quindi il denaro esce dal conto: questo pagamento è il debit. Un bull put spread vende la put con lo strike più alto e acquista la put con lo strike più basso. La put venduta vale di più, quindi il denaro entra nel conto: questo incasso è il credit. Entrambe le strutture guadagnano mentre il titolo sale verso lo strike più alto e smettono entrambe di guadagnare oltre quella soglia. Le singole gambe sono analizzate in acquistare e vendere opzioni call.

La put-call parity lega i due prezzi

La put-call parity è un’identità aritmetica, non un modello. A uno stesso strike e a una stessa scadenza, il prezzo della call meno il prezzo della put equivale al prezzo dell’azione meno lo strike, attualizzato dalla scadenza a oggi. Put-call parity spiega perché un arbitrage desk ne garantisce il rispetto. Il pannello seguente mostra l’identità su una singola chain di AAPL, con prezzi rilevati alla chiusura di Jun 12, 2026 per i contratti in scadenza Jul 17, 2026.

QueryPut-call parity su una chain AAPL: call meno put rispetto ad azione meno strike
L'esatto SQL dietro ogni numero
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_price
Run this yourself

Confronta la colonna call meno put con la colonna azione meno strike. Allo strike $280, la call ha chiuso 12.26 sopra la put, a fronte di una distanza tra azione e strike pari a 11.52. La relazione si ripete per tutti gli strike 5 presenti nel pannello. L’ultima colonna mostra ciò che resta e si mantiene vicino allo zero, senza però coincidere con zero. Questo residuo rappresenta l’interesse sullo strike maturato nelle settimane che precedono la scadenza, al netto di eventuali dividendi distribuiti nell’intervallo. Box spread valutano separatamente questo residuo.

I bull call spread e il bull put spread hanno lo stesso payoff?

Applichiamo l’identità. Il costo del bull call spread è dato dalla call con strike più basso meno la call con strike più alto. Sostituiamo ciascuna call con l’equivalente ottenuto dalla parità: una put più l’azione meno uno strike attualizzato. Le componenti azionarie si annullano. Resta l’ampiezza attualizzata meno il credito del put spread. In una frase: il debit pagato e il credit incassato sono sempre pari, sommati, all’ampiezza dello spread.

Questa affermazione ha un valore numerico associato. Ecco quindi il dato per ogni vertical spread di ampiezza pari a $5 nella stessa chain.

QueryOgni vertical di ampiezza $5 su una chain AAPL: debit pagato rispetto a credit incassato
L'esatto SQL dietro ogni numero
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.strike
Run this yourself

Il primo livello è profondamente in the money: lo strike si trova ben al di sopra del prezzo dell’azione sul lato profittevole. In quel punto, il $275 / $280 call spread è costato 3.7 dell’ampiezza di $5, mentre il put spread sugli stessi strike ha pagato 1.04; insieme hanno raggiunto 4.74. All’ultimo livello, $315 / $320, l’equilibrio si inverte: 0.49 di debit contro 4.65 di credit, per un totale di 5.14. Su tutti i 6 livelli, il totale resta pari all’ampiezza di $5, salvo i pochi centesimi che separano un closing mark dall’altro.

La griglia dei payoff, entrambe le strutture a confronto

La ladder descrive i prezzi di ingresso. La griglia dei payoff esprime la stessa relazione alla scadenza. Questo pannello prende la coppia di strike più vicina al livello a cui il titolo scambiava quel giorno e calcola il prezzo di entrambe le strutture su un intervallo di prezzi alla scadenza, in dollari per azione.

QueryProfitto e perdita alla scadenza: la struttura a debit rispetto alla struttura a credit
L'esatto SQL dietro ogni numero
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.strike
Run this yourself

A $275, al di sotto di entrambi gli strike, la struttura a debito registra -2.6 per azione e quella a credito -2.09. A $320, al di sopra di entrambi gli strike, i valori sono rispettivamente 2.4 e 2.91. L’ultima colonna è quella da osservare, ed è piatta: -0.51 nella parte inferiore della griglia e -0.51 in quella superiore. Un offset costante non rappresenta un profilo di rischio diverso. È la stessa forma, tracciata due volte.

Il risultato peggiore e quello migliore si sommano all’ampiezza su entrambe le righe, perché nessuna delle due strutture può valere più della distanza tra gli strike. Anche il break-even deriva dallo stesso calcolo: lo strike più basso più il debit per la versione call, lo strike più alto meno il credit per la versione put. Poiché debit e credit insieme equivalgono all’ampiezza, quei due prezzi coincidono.

Credit spread e debit spread: che cosa cambia davvero

In pratica cambiano tre aspetti, ma non il diagramma del payoff.

Come viene vincolato il capitale

La perdita massima della versione debit è pari al debit, che il conto ha già pagato all’apertura della posizione. Non viene trattenuto altro capitale. La perdita massima della versione credit è pari all’ampiezza dello spread meno il credit, e il broker trattiene tale importo come requisito a fronte della gamba short finché la posizione non viene chiusa o scade. Gli importi in dollari sono gli stessi, ma l’etichetta è diversa. In un caso l’estratto conto mostra un’uscita di cassa; nell’altro mostra un’entrata di cassa, mentre la buying power si riduce di un importo maggiore. Un vertical a rischio definito è trattato in modo completamente diverso da un’opzione short uncovered. È importante capirlo prima di confrontare le due strutture: vedi margin per la vendita di opzioni naked.

L’assegnazione anticipata riguarda una gamba diversa

Entrambe le strutture prevedono un’opzione short, e le opzioni azionarie statunitensi sono di tipo American e possono essere esercitate in qualsiasi giorno lavorativo. La differenza riguarda il momento in cui la gamba short è in the money. Nel bull call spread, la gamba short è la call con strike più alto. È in the money nello scenario favorevole, e le call short sono soggette soprattutto a esercizio anticipato il giorno prima della data ex-dividend, quando il dividendo offerto supera il valore temporale residuo della call. Date ex-dividend e opzioni spiega questo meccanismo. Nel bull put spread, la gamba short è la put con strike più alto. È in the money nello scenario sfavorevole, e le put short deep in the money vengono esercitate in anticipo per incassare gli interessi sull’importo dello strike. L’assegnazione non modifica la perdita massima definita, perché la gamba long resta in portafoglio. Modifica però ciò che il conto mantiene overnight, che può essere un’azione e una margin call. Opzioni American e European chiarisce quali contratti possono farlo.

Il costo di esecuzione quando la chain è poco liquida

La parità dice che le due strutture hanno lo stesso valore. Non dice nulla sul prezzo di esecuzione. I volumi sono raramente simmetrici lungo una chain.

QueryDove si concentrava il volume su quella chain AAPL: contratti call rispetto a contratti put, per strike
L'esatto SQL dietro ogni numero
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_price
Run this yourself

A $260, il più basso dei 14 strike mostrati, le put rappresentavano 99.5% dei contratti scambiati. A $325, il più alto, la quota delle put era 0%. Il lato meno liquido di una chain presenta un mercato quotato più ampio, e questo spread si paga sia in entrata sia in uscita. Quanto costa negoziare opzioni quantifica il costo, mentre opzioni liquide e volatili distingue un mercato poco liquido da uno caratterizzato da movimenti rapidi.

L’elevata volatilità implicita favorisce la versione credit?

La regola empirica più comune è questa: si vende premium quando la volatilità implicita è alta e lo si acquista quando è bassa. A parità di strike, questa frase descrive l’input, non la struttura. Entrambi gli spread verticali sono prezzati sulla stessa volatilità e sugli stessi due strike, e la tabella sopra mostra il risultato. Vendere il put spread a una volatilità implicita elevata e acquistare il call spread sugli stessi strike lascia una sola posizione in portafoglio, con un unico break-even e un unico scenario peggiore. L’orientamento sulla volatilità implicita si esprime attraverso gli strike scelti e l’ampiezza dello spread, e produce lo stesso risultato in entrambi i casi. L’elevata volatilità implicita è favorevole? esamina direttamente l’input.

FAQ

Uno credit spread è più sicuro di un debit spread?

A parità di strike e scadenza, no. Lo scenario peggiore, quello migliore e il prezzo di break-even sono identici. Nella versione a credito, il rischio emerge come requisito di margine vincolato a fronte della gamba short; nella versione a debito, lo stesso rischio si manifesta come liquidità già impiegata.

Quale dei due impegna meno capitale?

Nessuno dei due, a parità di strike. La versione a debito richiede il pagamento del debito e non vincola altro capitale. La versione a credito incassa il credito e vincola la differenza tra l’ampiezza dello spread e il credito. I due importi rappresentano la stessa somma, perché debit e credit, insieme, corrispondono all’ampiezza dello spread.

Un credit spread può essere assegnato anticipatamente?

Sì. La gamba short di un vertical su azioni statunitensi è di tipo American style e può essere esercitata nei confronti del conto in qualsiasi giorno lavorativo. La gamba long resta in essere, quindi la perdita massima definita non cambia, anche se il conto può ritrovarsi con azioni in portafoglio overnight.

Quando la scelta tra i due diventa effettivamente rilevante?

Quando i due lati della chain non hanno la stessa liquidità, quando una distribuzione cade all’interno dell’intervallo considerato e quando i requisiti del broker rendono una delle due versioni meno costosa da mantenere. Il payoff diagram non è mai l’elemento decisivo.


Ogni pannello qui è accompagnato dal codice SQL che lo ha prodotto. Espandine uno per vedere come è stato conteggiato il numero. Applica le stesse query a un altro ticker e a un’altra scadenza sul terminale Strasmore per verificare che l’identità valga anche in quel caso.

#options#vertical spread#credit spread#debit spread#break-even