Kosten voor het verhandelen van opties
Hoewel commissies nul kunnen zijn, blijft de bid-ask spread een factor. Bekijk de mediane kosten voor SPY, QQQ, IWM, GLD en TSLA opties in basis points.
Bij de meeste brokers zijn de commissies op beursgenoteerde opties nul, maar elke verhandelbare optieorder betaalt nog steeds de bid-ask spread — het verschil tussen de beste prijs die een koper bereid is te betalen en de beste prijs die een verkoper accepteert. Opties worden meestal verhandeld tegen veel lagere prijzen dan het onderliggende aandeel, waardoor een spread van enkele cents een veel groter deel van de transactie beslaat. Op 2026-07-02 hadden SPY-opties (elk contract met vervaldatum in 2026) tijdens de reguliere handelsuren een mediane spread van 80.97 basis points, terwijl SPY zelf een spread van 0.27 bps had — een verschil van ongeveer 299.9×. Alle onderstaande cijfers zijn gemeten op basis van de geconsolideerde optie- en handelskoersen, waarbij de exacte SQL achter elk getal is opgenomen.
Waarom spreads op opties verschillen van spreads op aandelen
Stel dat een aandeel wordt genoteerd op $745.00 bid / $745.02 ask. De spread van twee cent is ongeveer 0,27 bps van de koers van het aandeel. Een at-the-money call op hetzelfde aandeel kan worden genoteerd op $7.20 bid / $7.30 ask — een spread van tien cent, wat neerkomt op ongeveer 138 bps van de $7.25 midpoint. De optie heeft een grotere spread in dollars, en is honderden malen groter als percentage van de daadwerkelijk betaalde prijs. De lage dollarprijs van de optie veroorzaakt dit effect: tien cent is een klein bedrag in absolute termen, maar een groot percentage van een contract van $7.25.
De professionele eenheid voor het vergelijken van kosten tussen verschillende instrumenten is de basis point (bp) — één honderdste van een procent. Een standaard optiecontract heeft betrekking op 100 aandelen van de onderliggende waarde, waardoor de dollarconsequentie van een transactie meeschalt met de onderliggende waarde, maar de spread wordt gemeten tegen de eigen genoteerde prijs van de optie. Dit is de eenheid die op deze pagina wordt gebruikt.
SPY opties vs. SPY aandeel: een directe vergelijking
SPY is het meest liquide optieproduct in de VS, en zelfs daar is het kostenverschil groot. De onderstaande tabel vergelijkt SPY opties en SPY aandeel binnen dezelfde sessie: quote-verkeer, uitgevoerde transacties en de mediane quoted spread van beide.
De exacte SQL achter elk getal
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_closeDe mediane SPY optie spread van 80.97 bps betekent dat een round-trip market order — kopen op de ask en later verkopen op de bid — ongeveer de volledige quoted spread verliest ten opzichte van de midpoint, ongeveer de helft aan beide zijden van de transactie. Dezelfde round trip in SPY aandeel kost ongeveer 0.27 bps. Het quote-verkeer bevestigt dit liquiditeitsbeeld vanuit een ander perspectief: market makers gaven 256.5 SPY optie quote updates af voor elke uitgevoerde SPY optie transactie, waarbij duizenden combinaties van strike en expIRY tick voor tick werden opnieuw geprijsd.
De SPY options spread distributie: het is niet één enkel getal
Een mediaan is nuttig, maar de spread die een individuele trader betaalt, hangt af van het contract. SPY options die near-the-money en near-expiration zijn, hebben de kleinste spread; far out-of-the-money en far-dated contracten kunnen veel grotere spreads hebben. De onderstaande tabel toont de volledige distributie van alle geldige two-sided SPY option quotes tijdens de sessie.
De exacte SQL achter elk getal
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 optsDe middelste helft van de SPY option quotes lag tussen 49.65 bps en 147.12 bps. Eén op de tien quotes was smaller dan 35.51 bps, en één op de tien was groter dan 316.51 bps. De brede tail volgt illiquide strikes en far-dated expiries — precies de contracten waar een incidentele koper het meest waarschijnlijk op stuit.
Hoe de kosten variëren tussen populaire producten
SPY is de benchmark, maar niet elk optieproduct heeft een even krappe spread. Het onderstaande paneel meet de mediane spread tijdens de reguliere handelsuren, uitgedrukt in basis points, voor vijf veelverhandelde optie-onderliggende waarden: drie index ETF's (SPY, QQQ, IWM), een goud ETF (GLD) en een aandeel met hoge optieliquiditeit (TSLA). Elke waarde is gefilterd op de ticker-range met expiratie in 2026, zodat de query de (ticker, sip_timestamp) index filtert. De rijen zijn alfabetisch gerangschikt, zodat elk product een vaste positie behoudt.
De exacte SQL achter elk getal
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 ASCDe index ETF's hebben de laagste kosten: SPY had een mediane spread van 80.97 bps, QQQ 123.71 bps en IWM 130.72 bps. Aan de andere kant van het spectrum hadden TSLA opties een spread van 309.93 bps en GLD opties 786.75 bps — een volledig ander kostenregime. De kolom met quote-updates (in miljoenen) bevestigt dit: de producten met de hoogste quote-frequentie hebben de laagste spread.
Het 0DTE- en weidse effect: kortere looptijd, grotere spread
Contracten met een kortere resterende looptijd worden doorgaans verhandeld tegen lagere prijzen in dollars. Dit verhoogt mechanisch de spread in basis points, zelfs wanneer het verschil in cents klein blijft. De onderstaande tabel groepeert near-the-money SPY-optiequotes (strikes 730–760) per vervaldatum — elke 2026-expiratie met ten minste één miljoen quote-updates tijdens de sessie, in chronologische volgorde.
De exacte SQL achter elk getal
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 ASCHet contract met dezelfde vervaldatum — expiratiecode 260702, de 0DTE — vertoonde een mediane spread van 113.64 bps bij een mediane breedte van slechts 2 cents. De contract met de langste looptijd in de grafiek, 261231, had een grotere spread in cents (11), maar was aanzienlijk gunstiger in basis points, namelijk 37.16 bps. Dit is de kernles van de transactiekosten voor opties: een spread van één of twee cents is niet automatisch goedkoop wanneer de optie zelf voor slechts enkele dollars wordt verhandeld. Wat 0DTE-opties zijn legt de werking van contracten met dezelfde vervaldatum uit.
Wat de handelsgrootte-data zegt over wie deze kosten betaalt
Opties worden verhandeld in contracten, waarbij één standaardcontract 100 aandelen beslaat. De mediane uitgevoerde optiehandel op 2026-07-02 was slechts 1 contract; zelfs de 90e percentiel print was slechts 10 contracts. De meeste optiehandel bestaat uit kleine posities. De retailtrader is hierdoor het meest blootgesteld aan de geciteerde spread — een grote institutionele order kan vaak een prijsverbetering onderhandelen of de order over tijd spreiden.
De exacte SQL achter elk getal
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
Zijn opties duurder om te verhandelen dan aandelen?
Meestal wel, gemeten als een deel van de verhandelde prijs. Een zeer liquide ETF zoals SPY heeft een gecoteerde spread van ruim onder één basis point op het aandeel zelf; de opties van hetzelfde onderliggende instrument betalen routinematig tientallen basis points. Het dollarbedrag hangt af van de prijs van de optie en het aantal contracten, maar de spread als percentage van de waarde van de optie is bijna altijd groter dan die van het aandeel.
Waarom zijn de spreads van 0DTE opties zo breed in basis points?
Opties met dezelfde dag en wekelijkse opties worden vaak verhandeld tegen lage dollarprijzen — soms onder $1.00 — tegen het einde van hun looptijd. Een spread van één of twee cent op een optie van $0.50 is 2–4% van de prijs, oftewel 200–400 bps. De centen lijken klein, maar de procentuele kosten zijn dat niet. Daarom vergelijken handelaren spreads in basis points, niet in centen.
Zijn commissies belangrijker dan de spread?
Bij een retailtransactie van een enkele lot domineert de spread meestal. Een quote van $1.00 / $1.05 kost $5.00 per contract voor een volledige round trip (100 aandelen per contract) voordat er commissies worden gerekend. Bij producten met een lage prijs of een brede spread kan de spread alleen al elke plausibele commissie overstijgen.
Kan ik de spread vermijden door gebruik te maken van limit orders?
Een limit order binnen de spread kan tegen een lagere prijs worden uitgevoerd, maar er is geen garantie op uitvoering. Een marketable order betaalt per definitie de spread. De spread is de prijs voor onmiddellijke uitvoering, niet een vergoeding die uw broker in rekening brengt.
Welke optieproducten hebben de kleinste spreads?
Op basis van de metingen op deze pagina hebben de grote index ETF's — SPY, QQQ, IWM — de kleinste medianen, en zij hebben ook het hoogste handelsvolume. Commodity ETF's (GLD) en opties op individuele aandelen kunnen veel bredere spreads hebben. De spread varieert per contract — hetzelfde onderliggende instrument, maar een andere strike en expiries — waardoor een enkele mediaan veel variatie verbergt.
Datanotities
Alle tijdstempels worden opgeslagen in UTC; reguliere handelsuren op 2 juli 2026 zijn gefilterd als sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00' (9:30 am–4:00 pm ET). Spread-statistieken gebruiken uitsluitend geldige two-sided quotes (bid_price > 0, ask_price > 0, ask_price > bid_price), converteren Decimal prijzen naar Float64 voor de deling, en gebruiken deterministische median estimators (quantileDeterministic, gekoppeld aan een hash van de ticker en het tijdstempel) zodat regeneratie identieke cijfers oplevert. De onderstaande census telt elk SPY-optie record in het venster en toont welk deel van de ruwe feed deze geldige two-sided quotes vertegenwoordigen.
Census van quote-kwaliteit en volledige methodologie
De exacte SQL achter elk getal
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 optsMeer dan 99.94% van de SPY optie quote records in de sessie waren geldige two-sided quotes; one-sided records vormden 0.06% van de feed, en locked of crossed records waren verwaarloosbaar. Elk bovenstaand spread getal wordt berekend op de geldige two-sided subset — de kosten die een trader daadwerkelijk in de NBBO zou kunnen observeren.
- Marktgegevensbron: geconsolideerde OPRA-stijl optie quote tape (
global_markets.cache_options_quotes), de bijbehorende aandelen quote tape, en de geconsolideerde optie trade tape (global_markets.options_trades; het trade-size paneel dekt bewust de volledige tape, niet alleen SPY). - OCC ticker formaat:
O:+ root + zescijferige expiries (YYMMDD) +C/P+ zevencijferige strike ×1000. Het 0DTE paneel analyseert de expiry en strike vanuit de ticker; spread berekeningen aggregeren calls en puts samen. De filter van elke root dekt het expiriesbereik van 2026 (O:SPY26..O:SPY27en equivalenten), wat elke scan beperkt op de (ticker, sip_timestamp) index. - Spread definitie:
(ask − bid) / midpoint × 10,000, in basis points, uitsluitend op geldige two-sided quotes. - Medians en percentielen:
quantileDeterministicreservoir estimators gekoppeld aancityHash64(ticker, sip_timestamp)— beperkt geheugen en identieke output bij elke regeneratie. - Onderliggende waarde close: laatste reguliere handelsuren minute bar van
delayed_stocks_minute_aggs. - Sessie venster: 13:30–20:00 UTC, gecontroleerd tegen geobserveerde SPY minute bars in plaats van kalenderberekeningen.
- Pinned sessie: 2 juli 2026 — een voltooide volledige sessie die ruim achter de ~1–2 dagen ingest lag van het warehouse ligt op het moment van schrijven (9 juli 2026). Datums zijn vastgelegd, zodat regeneratie dezelfde cijfers oplevert.
Wilt u weten wat een specifiek contract kost? Elk bovenstaand paneel is een opgeslagen query — voer deze uit, of uw eigen variatie, op de Strasmore terminal. Voor meer informatie over de mechanica, zie de kosten om aandelen te verhandelen, wat een bid-ask spread is, 0DTE opties, de omvang van de optie quote feed, en optie volume vs. open interest.