Quanto costa fare trading di opzioni
Le commissioni possono essere zero ma lo spread bid-ask incide sui costi. Analisi del costo mediano per opzioni su SPY, QQQ, IWM, GLD e TSLA in basis points.
Le commissioni sulle opzioni quotate sono nulle presso la maggior parte dei broker, ma ogni ordine su opzioni negoziabili comporta comunque il pagamento dello bid-ask spread — ovvero la differenza tra il miglior prezzo offerto da un acquirente e il miglior prezzo richiesto da un venditore. Le opzioni vengono solitamente scambiate a prezzi unitari molto più bassi rispetto al titolo di riferimento, pertanto lo stesso scarto di pochi centesimi rappresenta una quota molto più ampia dell'operazione. Su 2026-07-02, le opzioni su SPY (per ogni contratto con scadenza nel 2026) hanno registrato uno spread mediano di 80.97 basis points durante l'orario regolare, mentre il titolo SPY stesso ha registrato 0.27 bps — un divario di circa 299.9×. Ogni dato riportato di seguito è misurato tramite i tape consolidati delle quotazioni e degli scambi delle opzioni, con la relativa query SQL allegata per ogni valore.
Perché gli spread delle opzioni appaiono diversi dagli spread azionari
Consideriamo un'azione quotata a $745.00 bid / $745.02 ask. Lo spread di due centesimi rappresenta circa lo 0,27 bps del prezzo dell'azione. Una call at-the-money sullo stesso titolo potrebbe essere quotata a $7.20 bid / $7.30 ask: uno spread di dieci centesimi, che corrisponde a circa 138 bps rispetto al midpoint di $7.25. L'opzione presenta uno spread più ampio in termini di centesimi e centinaia di volte più ampio come percentuale del prezzo effettivamente pagato. Il basso valore nominale dell'opzione determina l'effetto meccanico: dieci centesimi sono una cifra esigua in termini assoluti, ma una percentuale elevata rispetto a un contratto da $7.25.
L'unità professionale per confrontare i costi tra diversi strumenti è il basis point (bp) — un centesimo dell'un percento. Un contratto standard di opzioni copre 100 azioni del sottostante, quindi l'impatto economico di un trade scala con il sottostante, ma lo spread viene misurato rispetto al prezzo quotato dell'opzione stessa. Questa è l'unità utilizzata in questa pagina.
Opzioni SPY vs. titolo SPY: un confronto diretto
SPY è il prodotto options più liquido negli Stati Uniti, e anche in questo caso il divario di costi è drastico. La tabella seguente confronta le opzioni SPY e il titolo SPY nella stessa sessione: traffico delle quotazioni, operazioni eseguite e lo spread mediano quotato per ciascuno.
L'esatto SQL dietro ogni numero
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_closeLo spread mediano delle opzioni SPY di 80.97 bps significa che un ordine di mercato round-trip — acquistare al prezzo ask e vendere successivamente al prezzo bid — comporta una perdita pari a circa l'intero spread quotato rispetto al midpoint, ovvero circa la metà su ciascun lato dell'operazione. Lo stesso round-trip sul titolo SPY comporta una perdita di circa 0.27 bps. Il traffico delle quotazioni conferma lo stesso scenario di liquidità da un'altra prospettiva: i market maker hanno generato 256.5 aggiornamenti delle quotazioni delle opzioni SPY per ogni operazione eseguita sulle opzioni SPY, ricalcolando tick per tick migliaia di combinazioni di strike ed expiry.
La distribuzione dello spread delle opzioni SPY: non è un valore unico
La mediana è utile, ma lo spread pagato da un singolo trader dipende dal contratto. Le opzioni SPY near-the-money e con scadenza prossima tendono ad avere le quotazioni più strette; i contratti far out-of-the-money e con scadenza lontana possono essere molto più ampi. Il pannello sottostante mostra l'intera distribuzione basata sulle quotazioni bid-ask valide per le opzioni SPY durante la sessione.
L'esatto SQL dietro ogni numero
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 optsLa metà centrale delle quotazioni delle opzioni SPY è compresa tra 49.65 bps e 147.12 bps. Una quotazione su dieci era più stretta di 35.51 bps, e una su dieci era più ampia di 316.51 bps. La coda destra riflette i strike illiquidi e le scadenze lontane, ovvero i contratti in cui un acquirente occasionale rischia più facilmente di incorrere.
Come varia il costo tra i prodotti più popolari
SPY è il benchmark, ma non tutti i prodotti options offrono spread così contenuti. Il pannello sottostante misura lo spread mediano durante l'orario regolare, espresso in basis points, su cinque sottostanti options ampiamente scambiati: tre index ETF (SPY, QQQ, IWM), un ETF sull'oro (GLD) e un singolo titolo con elevata liquidità options (TSLA). Ogni sottostante è filtrato per il range di scadenza al 2026, in modo che la query selezioni l'indice (ticker, sip_timestamp); le righe sono elencate in ordine alfabetico per mantenere una posizione fissa per ogni prodotto.
L'esatto SQL dietro ogni numero
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 ASCGli index ETF presentano i costi più bassi: SPY ha registrato uno spread mediano di 80.97 bps, QQQ 123.71 bps e IWM 130.72 bps. Per quanto riguarda i costi più elevati, le options su TSLA hanno registrato 309.93 bps e le options su GLD 786.75 bps — un regime di costi completamente differente. La colonna degli aggiornamenti delle quotazioni (in milioni) conferma il trend: i prodotti con il maggior volume di quotazioni si trovano nella fascia dei costi più contenuti.
L'effetto 0DTE e weekly: vita più breve, spread più ampio
I contratti con meno tempo residuo tendono a essere scambiati a prezzi nominali inferiori. Questo aumenta meccanicamente lo spread in basis points, anche quando il divario in cents rimane contenuto. La tabella seguente raggruppa le quotazioni delle opzioni SPY near-the-money (strike 730–760) per data di scadenza: ogni scadenza del 2026 che ha registrato almeno un milione di aggiornamenti delle quotazioni nella sessione è inclusa, in ordine cronologico.
L'esatto SQL dietro ogni numero
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 ASCIl contratto a scadenza giornaliera — codice scadenza 260702, lo 0DTE — ha mostrato uno spread mediano di 113.64 bps su una larghezza mediana di soli 2 cents. La scadenza più lunga oltre la barra, 261231, ha quotato un divario in cents maggiore (11) ma era materialmente più stretta in basis points, a 37.16 bps. Questa è la lezione fondamentale sui costi di trading delle opzioni: uno spread di uno o due cents non è automaticamente economico quando l'opzione stessa viene scambiata per pochi dollari. Cos'è un'opzione 0DTE spiega la meccanica dei contratti a scadenza giornaliera.
Cosa indicano i dati sulla dimensione delle operazioni su chi sostiene questi costi
Le opzioni si scambiano in contratti, e un contratto standard copre 100 azioni. La mediana delle operazioni su opzioni eseguite su 2026-07-02 era di appena 1 contratti; persino il 90° percentile era di soli 10 contratti. La maggior parte delle operazioni su opzioni è di piccole dimensioni; il trader retail è quindi il più esposto allo spread quotato — un grande ordine istituzionale può spesso negoziare un miglioramento del prezzo o frazionarsi nel tempo.
L'esatto SQL dietro ogni numero
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
Il trading di opzioni è più costoso rispetto alle azioni?
Solitamente sì, se misurato come percentuale del prezzo scambiato. Un ETF molto liquido come SPY presenta uno spread quotato ben al di sotto di un punto base sull'azione stessa; le opzioni sullo stesso sottostante pagano regolarmente decine di punti base. L'importo in dollari dipende dal prezzo dell'opzione e dal numero di contratti, ma lo spread come percentuale del valore dell'opzione è quasi sempre superiore a quello dell'azione.
Perché le opzioni 0DTE hanno spread così ampi in punti base?
Le opzioni a scadenza giornaliera o settimanale spesso sono scambiate a prezzi nominali bassi — a volte sotto l'un dollaro — verso la fine della loro vita. Uno spread di uno o due centesimi su un'opzione da zero virgola cinquanta rappresenta il due-quattro per cento del prezzo, ovvero duecento-quattrocento bps. I centesimi sembrano piccoli, ma il costo percentuale non lo è. Per questo motivo i trader confrontano gli spread in punti base, non in centesimi.
Le commissioni sono più importanti dello spread?
Per un singolo lotto retail, lo spread è solitamente l'elemento dominante. Una quotazione di un dollaro / un dollaro e cinque centesimi costa cinque dollari per contratto per un round trip completo (100 azioni per contratto) prima di qualsiasi commissione. Su prodotti con prezzi bassi o spread ampi, lo spread da solo può superare qualsiasi commissione plausibile.
Posso evitare lo spread utilizzando gli ordini limit?
Un ordine limit all'interno dello spread può essere eseguito a un prezzo inferiore allo spread completo, ma l'esecuzione non è garantita. Un ordine marketable paga lo spread per definizione. Lo spread è il prezzo dell'immediata esecuzione, non una commissione applicata dal broker.
Quali prodotti opzioni hanno gli spread più stretti?
In base alle misurazioni di questa pagina, i grandi ETF sugli indici — SPY, QQQ, IWM — presentano i mediani più stretti e registrano anche il maggior volume di quotazioni. Gli ETF sulle commodity (GLD) e le opzioni su singole azioni possono presentare spread molto più ampi. Lo spread varia per ogni singolo contratto — a parità di sottostante, lo strike e la scadenza cambiano — pertanto un singolo valore mediano nasconde molta variabilità.
Note sui dati
Tutti i timestamp sono memorizzati in UTC; le ore regolari del 2 luglio 2026 sono filtrate come sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00' (9:30 am–4:00 pm ET). Le statistiche sullo spread utilizzano solo quotazioni bid-ask valide (bid_price > 0, ask_price > 0, ask_price > bid_price), convertono i prezzi Decimal in Float64 prima della divisione e utilizzano stimatori della mediana deterministici (quantileDeterministic, basati sull'hash di ticker e timestamp) affinché la rigenerazione produca figure identiche. Il censimento riportato di seguito conta ogni record di opzioni SPY nella finestra temporale e mostra quale percentuale del feed grezzo sia rappresentata dalle quotazioni bid-ask valide.
Censimento qualità quotazioni e metodologia completa
L'esatto SQL dietro ogni numero
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 optsPiù del 99.94% dei record delle quotazioni delle opzioni SPY nella sessione erano quotazioni bid-ask valide; i record a lato singolo rappresentavano il 0.06% del feed, mentre i record locked o crossed erano trascurabili. Ogni valore dello spread sopra indicato è calcolato sul sottoinsieme valido delle quotazioni bid-ask — il costo che un trader potrebbe effettivamente osservare nel NBBO.
- Fonte dei dati di mercato: tape delle quotazioni delle opzioni in stile OPRA consolidato (
global_markets.cache_options_quotes), il relativo tape delle quotazioni azionarie e il tape delle transazioni sulle opzioni consolidato (global_markets.options_trades; il pannello sulla dimensione delle transazioni copre deliberatamente l'intero tape, non solo SPY). - Formato ticker OCC:
O:+ root + scadenza a sei cifre (YYMMDD) +C/P+ strike a sette cifre ×1000. Il pannello 0DTE analizza la scadenza e lo strike dal ticker; i calcoli dello spread aggregano call e put insieme. Il filtro di ogni root copre il suo intervallo di scadenza 2026 (O:SPY26..O:SPY27e equivalenti), mantenendo ogni scansione ottimizzata sull'indice (ticker, sip_timestamp). - Definizione dello spread:
(ask − bid) / midpoint × 10,000, in basis points, solo su quotazioni bid-ask valide. - Mediane e percentili: stimatori reservoir
quantileDeterministicbasati sucityHash64(ticker, sip_timestamp)— memoria limitata e output identico a ogni rigenerazione. - Chiusura dell'underlying: ultima barra a un minuto delle ore regolari da
delayed_stocks_minute_aggs. - Finestra della sessione: 13:30–20:00 UTC, verificata rispetto alle barre a un minuto di SPY osservate invece che tramite calcolo calendariale.
- Sessione fissata: 2 luglio 2026 — una sessione completa terminata con ampio margine rispetto al ritardo di ingestione di circa uno-due giorni del warehouse al momento della redazione (9 luglio 2026). I valori temporali sono fissi, quindi la rigenerazione riproduce le stesse figure.
Vuoi conoscere il costo di un contratto specifico? Ogni pannello sopra è una query memorizzata — eseguila, o la tua variante, sul terminale Strasmore. Per ulteriori dettagli sulla meccanica, consulta il costo per fare trading di azioni, cos'è uno spread bid-ask, opzioni 0DTE, la dimensione del feed delle quotazioni delle opzioni e volume delle opzioni vs open interest.