Strasmore Research
Edukasi Matt ConnorOleh Matt Connor · Diperbarui 2026-07-25

Berapa Biaya Trading Options

Komisi trading options mungkin nol, tetapi bid-ask spread tetap ada. Lihat biaya median untuk trading options SPY, QQQ, IWM, GLD, dan TSLA dalam satuan basis point.

Komisi untuk opsi terdaftar adalah nol di sebagian besar broker, namun setiap order opsi yang marketable tetap membayar bid-ask spread — selisih antara harga terbaik yang akan dibayar pembeli dan harga terbaik yang akan diterima penjual. Opsi biasanya diperdagangkan pada harga dolar yang jauh lebih rendah daripada saham acuannya, sehingga selisih beberapa sen tersebut menjadi porsi yang jauh lebih besar dari nilai transaksi. Pada 2026-07-02, opsi SPY (setiap kontrak dengan jatuh tempo dua ribu dua puluh enam) mencatat median spread sebesar 80.97 basis points selama jam perdagangan reguler, sementara saham SPY sendiri mencatat 0.27 bps — selisih sekitar 299.9×. Setiap angka di bawah ini diukur dari kutipan opsi terkonsolidasi dan pita perdagangan, dengan SQL tepat di balik setiap angka terlampir.

Mengapa spread opsi terlihat berbeda dari spread saham

Pertimbangkan sebuah saham dengan kuotasi bid $745,00 / ask $745,02. Spread dua sen tersebut adalah sekitar 0,27 bps dari harga saham. Call at-the-money pada saham yang sama mungkin dikuotasikan $7,20 bid / $7,30 ask — spread sepuluh sen, yang setara dengan kira-kira 138 bps dari titik tengah $7,25. Opsi tersebut lebih lebar dalam satuan sen, dan ratusan kali lebih lebar sebagai bagian dari harga yang sebenarnya dibayar. Harga dolar opsi yang rendah menjadi penyebab mekanisnya: sepuluh sen adalah jumlah yang kecil secara absolut namun merupakan persentase yang besar dari kontrak $7,25.

Unit profesional untuk membandingkan biaya antar instrumen adalah basis point (bp) — seperseratus dari satu persen. Kontrak opsi standar mencakup 100 saham underlying, sehingga konsekuensi dolar dari sebuah perdagangan berskala dengan underlying, tetapi spread diukur terhadap harga kuotasi opsi itu sendiri. Itulah unit yang digunakan di seluruh halaman ini.

Opsi SPY vs. saham SPY: perbandingan langsung

SPY adalah produk opsi paling likuid di AS, namun perbedaan biayanya tetap sangat mencolok. Panel di bawah ini menyandingkan opsi SPY dan saham SPY pada sesi yang sama: trafik quote, perdagangan yang dieksekusi, dan median quoted spread masing-masing.

QueryOpsi SPY vs. saham SPY dalam satu sesi: quote count, trade count, dan median quoted spread
SQL tepat di balik setiap angka
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_close

Median spread opsi SPY sebesar 80.97 bps berarti market order round-trip — membeli pada harga ask dan kemudian menjual pada harga bid — kehilangan sekitar seluruh quoted spread relatif terhadap titik tengah, yaitu sekitar setengah pada setiap sisi perdagangan. Round trip yang sama pada saham SPY kehilangan sekitar 0.27 bps. Trafik quote menunjukkan cerita likuiditas yang sama dari sudut pandang lain: market maker mencetak 256.5 pembaruan quote opsi SPY untuk setiap perdagangan opsi SPY yang dieksekusi, dengan melakukan repricing ribuan kombinasi strike-and-expiry tick demi tick.

Distribusi spread opsi SPY: bukan satu angka tunggal

Median memang berguna, tetapi spread yang dibayar oleh trader individu bergantung pada kontraknya. Opsi SPY yang near-the-money dan mendekati expiration cenderung memiliki kuotasi paling ketat; kontrak far out-of-the-money dan yang berjangka panjang bisa jauh lebih lebar. Panel di bawah ini menunjukkan distribusi lengkap dari seluruh kuotasi opsi SPY dua sisi yang valid dalam sesi tersebut.

QueryDistribusi quoted-spread opsi SPY: persentil dalam basis point
SQL tepat di balik setiap angka
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 opts

Setengah bagian tengah dari kuotasi opsi SPY berada di antara 49.65 bps dan 147.12 bps. Satu dari sepuluh kuotasi lebih ketat daripada 35.51 bps, dan satu dari sepuluh lebih lebar daripada 316.51 bps. Ekor distribusi yang lebar mengikuti strike yang tidak likuid dan expiries jangka panjang — tepatnya kontrak yang paling mungkin ditemui oleh pembeli kasual.

Bagaimana biaya bervariasi di berbagai produk populer

SPY adalah benchmark, tetapi tidak semua produk opsi memiliki kuotasi yang rapat. Panel di bawah ini mengukur median quoted spread pada jam reguler, dalam basis point, di lima root opsi yang diperdagangkan secara luas: tiga index ETF (SPY, QQQ, IWM), satu gold ETF (GLD), dan satu saham dengan likuiditas opsi yang dalam (TSLA). Setiap root difilter ke rentang ticker kedaluwarsa dua ribu dua puluh enam sehingga query memangkas index (ticker, sip_timestamp), dan baris disusun secara alfabetis agar setiap produk mempertahankan posisi tetap.

QueryBid-ask spread opsi per produk: median basis point, jam reguler 2 Juli 2026
SQL tepat di balik setiap angka
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 ASC

Index ETF memiliki spread paling rapat: SPY mengutip median spread sebesar 80.97 bps, QQQ 123.71 bps, dan IWM 130.72 bps. Pada sisi yang lebih lebar, opsi TSLA mengutip 309.93 bps dan opsi GLD 786.75 bps — sebuah rezim biaya yang sepenuhnya berbeda. Kolom quote-updates (dalam jutaan) memberikan cerita pendukung: produk yang paling sering dikutip berada pada sisi spread yang paling rapat.

Efek 0DTE dan mingguan: masa berlaku lebih singkat, spread lebih lebar

Kontrak dengan sisa waktu yang lebih sedikit cenderung diperdagangkan pada harga dolar yang lebih rendah. Hal ini secara mekanis meningkatkan spread dalam basis points meskipun selisih dalam sen tetap kecil. Panel di bawah ini mengelompokkan kuotasi opsi SPY near-the-money (strike 730–760) berdasarkan tanggal kedaluwarsa — setiap expiry 2026 yang mencatat setidaknya satu juta pembaruan kuotasi dalam sesi, sesuai urutan kalender.

QueryMedian spread opsi SPY berdasarkan tanggal expiration, hanya strike near-the-money
SQL tepat di balik setiap angka
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 ASC

Kontrak hari yang sama — kode expiry 260702, yaitu 0DTE — menunjukkan median spread sebesar 113.64 bps dengan median width hanya 2 sen. Expiry dengan jangka waktu terlama pada grafik, 261231, memiliki kuotasi yang lebih lebar dalam sen (11) namun secara material lebih ketat dalam basis points, yaitu 37.16 bps. Itulah pelajaran utama dari biaya perdagangan opsi: spread satu atau dua sen tidak otomatis menjadi murah ketika opsi itu sendiri diperdagangkan dengan harga beberapa dolar. Apa itu opsi 0DTE menjelaskan mekanika dari kontrak hari yang sama.

Apa yang dikatakan data ukuran perdagangan tentang siapa yang membayar biaya ini

Opsi diperdagangkan dalam kontrak, dan satu kontrak standar mencakup seratus saham. Median perdagangan opsi yang dieksekusi pada 2026-07-02 hanya 1 kontrak; bahkan cetakan persentil ke-sembilan puluh hanya 10 kontrak. Sebagian besar perdagangan opsi berskala kecil, dan trader ritel adalah pihak yang paling terpapar pada quoted spread — pesanan institusional besar sering kali dapat menegosiasikan price improvement atau membagi pesanan tersebut dalam rentang waktu tertentu.

QueryDistribusi trade size opsi pada 2 Juli 2026 (kontrak whole-tape per print)
SQL tepat di balik setiap angka
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 trades

FAQ

Apakah perdagangan options lebih mahal daripada saham?

Biasanya ya, jika diukur sebagai bagian dari harga perdagangan. ETF yang sangat likuid seperti SPY memiliki quoted spread jauh di bawah satu basis point pada saham itu sendiri; options dari underlying yang sama biasanya memiliki spread puluhan basis point. Jumlah dolar tergantung pada harga option dan jumlah kontrak, tetapi spread sebagai persentase dari nilai option hampir selalu lebih besar daripada saham.

Mengapa options 0DTE memiliki basis point yang sangat lebar?

Options harian dan mingguan sering diperdagangkan pada harga dolar yang rendah — terkadang di bawah $1.00 — menjelang akhir masa berlakunya. Spread satu atau dua sen pada option seharga $0.50 adalah dua sampai empat persen dari harga, atau 200–400 bps. Nilai sen terlihat kecil, namun biaya persentasenya tidak. Itulah sebabnya trader membandingkan spread dalam basis point, bukan sen.

Apakah komisi lebih berpengaruh daripada spread?

Untuk perdagangan retail satu lot, spread biasanya lebih dominan. Kuotasi $1.00 / $1.05 memakan biaya $5.00 per kontrak untuk satu round trip penuh (100 saham per kontrak) sebelum komisi apa pun. Pada produk berharga rendah atau yang memiliki spread lebar, spread saja dapat melebihi komisi yang masuk akal.

Bisakah saya menghindari spread dengan menggunakan limit orders?

Limit order di dalam spread dapat terpenuhi dengan biaya kurang dari spread penuh, tetapi pengisiannya tidak terjamin. Marketable order membayar spread berdasarkan definisinya. Spread adalah harga untuk kecepatan eksekusi, bukan biaya yang dikenakan oleh broker Anda.

Produk options mana yang memiliki spread paling ketat?

Berdasarkan pengukuran di halaman ini, ETF indeks besar — SPY, QQQ, IWM — memiliki median paling ketat, dan mereka juga memiliki trafik kuotasi terberat. ETF komoditas (GLD) dan options saham tunggal dapat memiliki kuotasi yang jauh lebih lebar. Spread bervariasi antar kontrak — underlying yang sama, namun strike dan expiry berbeda — sehingga satu nilai median menyembunyikan banyak variasi.

Catatan data

Semua stempel waktu disimpan dalam UTC; jam reguler pada 2 Juli 2026 difilter sebagai sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00' (9:30 am–4:00 pm ET). Statistik spread hanya menggunakan kuotasi dua sisi yang valid (bid_price > 0, ask_price > 0, ask_price > bid_price), mengubah harga Decimal menjadi Float64 sebelum pembagian, dan menggunakan estimator median deterministik (quantileDeterministic, dikunci berdasarkan hash ticker dan stempel waktu) sehingga regenerasi menghasilkan angka yang identik. Sensus di bawah ini menghitung setiap rekaman opsi SPY dalam jendela waktu tersebut dan menunjukkan berapa banyak kuotasi dua sisi yang valid tersebut mewakili feed mentah.

Sensus kualitas kuotasi dan metodologi lengkap
QueryKualitas quote opsi SPY: rekaman valid, one-sided, dan locked/crossed
SQL tepat di balik setiap angka
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 opts

Lebih dari 99.94% rekaman kuotasi opsi SPY dalam sesi tersebut adalah kuotasi dua sisi yang valid; rekaman satu sisi adalah 0.06% dari feed, dan rekaman locked atau crossed jumlahnya dapat diabaikan. Setiap angka spread di atas dihitung berdasarkan subset dua sisi yang valid — biaya yang sebenarnya dapat diamati oleh trader dalam NBBO.

  • Sumber data pasar: tape kuotasi opsi gaya OPRA yang terkonsolidasi (global_markets.cache_options_quotes), tape kuotasi saham terkait, dan tape perdagangan opsi terkonsolidasi (global_markets.options_trades; panel trade-size sengaja mencakup seluruh tape, bukan hanya SPY).
  • Format ticker OCC: O: + root + kedaluwarsa enam digit (YYMMDD) + C/P + strike tujuh digit ×1000. Panel 0DTE mengurai kedaluwarsa dan strike dari ticker; perhitungan spread menggabungkan call dan put secara bersamaan. Filter setiap root mencakup rentang kedaluwarsa 2026 (O:SPY26..O:SPY27 dan setaranya), yang menjaga setiap pemindaian tetap ringkas pada indeks (ticker, sip_timestamp).
  • Definisi spread: (ask − bid) / midpoint × 10,000, dalam basis point, hanya pada kuotasi dua sisi yang valid.
  • Median dan persentil: estimator reservoir quantileDeterministic yang dikunci oleh cityHash64(ticker, sip_timestamp) — memori terbatas, dan output identik pada setiap regenerasi.
  • Close underlying: bar menit jam reguler terakhir dari delayed_stocks_minute_aggs.
  • Jendela sesi: 13:30–20:00 UTC, diperiksa terhadap bar menit SPY yang teramati, bukan berdasarkan aritmatika kalender.
  • Sesi tetap: 2 Juli 2026 — sesi penuh yang telah selesai, berada jauh di belakang lag ingest gudang data sekitar satu sampai dua hari pada saat penulisan (9 Juli 2026). Literal tanggal bersifat tetap, sehingga regenerasi menghasilkan angka yang sama.

Ingin tahu berapa biaya kontrak tertentu? Setiap panel di atas adalah query tersimpan — jalankan query tersebut, atau variasi Anda sendiri, pada terminal Strasmore. Untuk informasi lebih lanjut mengenai mekanismenya, lihat biaya perdagangan saham, apa itu bid-ask spread, opsi 0DTE, ukuran feed kuotasi opsi, dan volume opsi vs. open interest.