Strasmore Research
Belajar Matt ConnorOleh Matt Connor · Dikemas kini 2026-07-25

bila opsyen 0DTE didagangkan mengikut jam

opsyen 0DTE didagangkan paling berat pada waktu pagi, bukan waktu tamat; volum jam demi jam, nisbah beli vs jual, hari bekerja dan spread hari sama diukur.

Cerita rakyat tentang opsyen 0DTE ialah kasino waktu tamat dagangan: tiket loteri dibeli pada jam terakhir untuk satu lambungan syiling terakhir. Rekod dagangan menunjukkan sebaliknya. Diukur jam demi jam, opsyen hari sama didagangkan paling berat pada waktu pagi — aliran kontrak terpantas tiba dalam tiga puluh minit pertama, dan bahagiannya dalam jumlah keseluruhan opsyen berakhir pada paras rendah pada waktu tamat dagangan. Panel di bawah mengukur rentak tersebut pada sesi 0DTE yang sibuk (Jumaat, 10 Julai 2026) dan mengujinya merentasi aset pendasar, opsyen beli dan jual, serta hari bekerja.

Pada waktu apakah dagangan opsyen 0DTE paling aktif?

Panel ini membahagikan setiap dagangan opsyen pada hari Jumaat tersebut kepada kontrak hari yang sama (tamat tempoh pada petang itu) dan yang lain, dikumpulkan mengikut jam New York. Baris 09:00 hanya meliputi setengah jam — sesi dibuka pada 9:30 — jadi lajur terakhir menormalkan setiap kumpulan kepada kontrak seminit, satu-satunya perbandingan yang adil.

PertanyaanJumlah kontrak 0DTE, bahagian daripada jumlah volum opsyen, dan kadar aliran mengikut jam ET — Jumaat, 10 Julai 2026
SQL tepat di sebalik setiap nombor
SELECT
    formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_hour,
    round(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260710') / 1e6, 2) AS same_day_contracts_m,
    round(sum(size) / 1e6, 2) AS all_options_contracts_m,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260710') / sum(size), 1) AS same_day_pct,
    round(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260710')
          / uniqExact(toStartOfMinute(sip_timestamp)) / 1000, 1) AS same_day_k_per_minute
FROM global_markets.options_trades
WHERE sip_timestamp >= toDateTime64('2026-07-10 13:30:00', 9)
  AND sip_timestamp < toDateTime64('2026-07-10 20:00:00', 9)
GROUP BY et_hour
ORDER BY et_hour

Kadar aliran. Setengah jam pembukaan menggerakkan 148.9 ribu kontrak hari yang sama seminit — rentak terpantas sesi tersebut. Setiap kumpulan kemudiannya lebih perlahan: 119.8k seminit pada pukul 10, 66.6k menjelang tengah hari, serendah 50.3k pada jam 14:00, 62.6k pada jam terakhir.

Jumlah mutlak. Kumpulan terbesar ialah jam pukul 10 dengan 7.19 juta kontrak — sejam penuh, bukan setengah — selepas itu jumlah menurun kepada 3.02M pada jam 14:00, kemudian meningkat menjelang penutup, kepada 3.75M. Peningkatan lewat hari adalah nyata; ia tidak menghampiri jumlah pagi.

Kongsi. Kongsi hari yang sama daripada KESELURUHAN jumlah opsyen dibuka pada 52.9%, memuncak pada jam 11:00 pada 53.4%, kemudian menurun setiap jam kepada 38.4% pada penutup — paras terendah hari itu. Baca jam terakhir ini dengan teliti, kerana di sinilah letaknya cerita umum: jumlah opsyen keseluruhan meningkat menjelang loceng (9.78M kontrak berbanding 6.63M sejam sebelumnya — kumpulan ketiga tersibuk hari itu, selepas jam 10:00 dan 11:00 pada 13.58M dan 10.86M) sementara kongsi 0DTE merosot. Penutup adalah jam yang sibuk untuk opsyen, dan jam yang paling kurang tertumpu kepada 0DTE dalam sesi tersebut.

Adakah puncak pagi hanya pada SPY?

Bantahan yang wajar: ETF indeks menyenaraikan tarikh luput setiap hari dagangan, jadi mungkin "0DTE" sebenarnya hanya cerita tentang SPY dan QQQ. Panel seterusnya menguraikan volum hari yang sama pada hari Jumaat itu mengikut aset pendasar, menambah bahagian hari yang sama bagi setiap nama dan berapa banyak daripadanya dicetak sebelum tengah hari.

PertanyaanVolum opsyen hari sama mengikut asas — sepuluh nama tertinggi, 10 Julai 2026
SQL tepat di sebalik setiap nombor
WITH by_name AS (
    SELECT substring(ticker, 3, length(ticker) - 17) AS underlying,
           sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260710') AS same_day_size,
           sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260710'
                       AND toHour(toTimeZone(sip_timestamp, 'America/New_York')) < 12) AS morning_size,
           sum(size) AS all_size
    FROM global_markets.options_trades
    WHERE sip_timestamp >= toDateTime64('2026-07-10 13:30:00', 9)
      AND sip_timestamp < toDateTime64('2026-07-10 20:00:00', 9)
      AND ticker NOT LIKE 'O:SPCX%'
    GROUP BY underlying
)
SELECT underlying,
       round(same_day_size / 1e6, 2) AS same_day_contracts_m,
       round(100.0 * same_day_size / sum(same_day_size) OVER (), 1) AS pct_of_all_0dte,
       round(100.0 * same_day_size / all_size, 1) AS same_day_pct_of_name,
       round(100.0 * morning_size / same_day_size, 1) AS pct_traded_before_noon
FROM by_name
ORDER BY same_day_size DESC
LIMIT 10

Produk indeks mendominasi, tetapi tidak memonopoli. SPY sahaja mengambil 25.5% daripada setiap kontrak hari yang sama yang didagangkan di seluruh pasaran, QQQ pula 14.5%; dengan siri indeks S&P 500 (SPXW) dan ETF modal kecil (IWM), produk indeks mengisi empat daripada enam kedudukan teratas. Dua lagi adalah saham tunggal — NVDA pada 8.7%, TSLA pada 7.3%.

Lajur same_day_pct_of_name menunjukkan betapa padat-0DTE pasaran opsyen setiap nama itu sendiri: 72.1% daripada volum opsyen SPY pada hari itu luput pada petang yang sama, berbanding 46.9% untuk AMZN di bahagian bawah jadual.

Kecondongan pagi berlaku untuk kesemua sepuluh. Tingkap sebelum tengah hari adalah 2.5 daripada 6.5 jam sesi — 38% daripada masa — dan setiap nama mencetak lebih daripada bahagian volum hari yang sama dalam tempoh itu: paling berat IWM pada 67.4%, paling ringan MU pada 44.5%, SPY pada 54.4%, NVDA pada 56.3%. Kecondongan ini milik produk, bukan satu ETF.

Adakah panggilan dan letak mengikut jam yang sama?

Sangkaan semula jadi ialah letak lewat — bahawa penutupan dipenuhi dengan lindung nilai terhadap jurang semalaman. Data menunjukkan kedua-dua pihak mengikut jam yang hampir sama.

PertanyaanPanggilan lawan letak hari sama mengikut jam ET, dan bahagian letak dalam volum 0DTE — 10 Julai 2026
SQL tepat di sebalik setiap nombor
SELECT formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_hour,
       round(sumIf(size, substring(ticker, length(ticker) - 8, 1) = 'C') / 1e6, 2) AS call_contracts_m,
       round(sumIf(size, substring(ticker, length(ticker) - 8, 1) = 'P') / 1e6, 2) AS put_contracts_m,
       round(100.0 * sumIf(size, substring(ticker, length(ticker) - 8, 1) = 'P') / sum(size), 1) AS put_share_pct
FROM global_markets.options_trades
WHERE sip_timestamp >= toDateTime64('2026-07-10 13:30:00', 9)
  AND sip_timestamp < toDateTime64('2026-07-10 20:00:00', 9)
  AND substring(ticker, length(ticker) - 14, 6) = '260710'
GROUP BY et_hour
ORDER BY et_hour

Kedua-dua pihak memuncak dalam kumpulan jam 10 yang sama — 4.1M panggilan berbanding 3.09M letak — kedua-duanya menurun sepanjang petang, kedua-duanya meningkat sedikit menjelang penutupan. Bahagian letak dalam volum hari yang sama adalah lajur yang menarik: paling rendah dalam kumpulan pembukaan (34.9%), ia melonjak ke 43% pada jam 10, kemudian kekal dalam julat sempit, berakhir pada 41.7%.

Kesan campuran ini berlawanan dengan cerita lindung nilai: lonjakan pembukaan adalah bahagian hari yang paling condong kepada panggilan, dan letak meraih semula beberapa mata bahagian selepasnya. Tiada lonjakan letak lewat hari muncul.

Adakah corak ini kekal pada hari Selasa?

Irama setiap jam bergantung pada irama harian: jumlah dagangan 0DTE yang boleh berlaku dalam satu sesi bergantung pada kontrak apa yang tamat tempoh pada hari itu. Hari Jumaat adalah hujung paling padat dalam kalendar tamat tempoh — opsyen mingguan, bulanan dan siri ETF harian semuanya tamat pada hari tersebut — manakala hari Selasa hanya menawarkan nama-nama yang tamat tempoh setiap hari. Panel ini menggabungkan enam minggu sesi mengikut hari dalam minggu.

PertanyaanBahagian opsyen hari sama daripada volum opsyen mengikut hari minggu — semua sesi, 1 Jun hingga 10 Julai 2026
SQL tepat di sebalik setiap nombor
WITH sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           sumIf(volume, substring(ticker, length(ticker) - 14, 6)
                         = formatDateTime(toDate(toTimeZone(window_start, 'America/New_York')), '%y%m%d')) AS same_day_vol,
           sum(volume) AS all_vol
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime64('2026-06-01 13:30:00', 9)
      AND window_start < toDateTime64('2026-07-10 20:00:00', 9)
      AND toHour(toTimeZone(window_start, 'America/New_York')) BETWEEN 9 AND 15
    GROUP BY session_date
)
SELECT toDayOfWeek(session_date) AS dow,
       formatDateTime(session_date, '%W') AS weekday,
       count() AS sessions,
       round(avg(same_day_vol) / 1e6, 2) AS avg_same_day_contracts_m,
       round(100.0 * sum(same_day_vol) / sum(all_vol), 1) AS same_day_pct_of_volume
FROM sessions
GROUP BY dow, weekday
ORDER BY dow

Merentas 6 hari Isnin, 6 hari Selasa, 6 hari Rabu, 6 hari Khamis dan 4 hari Jumaat, perbezaannya ketara. Hari Jumaat mencatatkan bahagian 46.1% dagangan sama hari dalam jumlah keseluruhan volum opsyen dan purata 36.1 juta kontrak sama hari setiap sesi — tertinggi dalam kalangan lima hari tersebut pada kedua-dua ukuran. Tuesday adalah yang paling ringan (29.2%, 18.92 juta); hari pertengahan minggu berkumpul rapat (34.5% pada Monday, 34.2% pada Wednesday, 35.4% pada Thursday). Dagangan sama hari adalah fenomena setiap sesi — walaupun hari minggu yang paling ringan merekodkan 29.2% daripada jumlah dagangan opsyen — tetapi tahap tersebut adalah fakta kalendar, dan hari Jumaat dalam panel di atas berada hampir dengan had atas julat itu. Bentuk setiap jam boleh digeneralisasikan; ketinggian keluk pula tidak.

Mengapa pagi, secara mekanikal

Seluruh hayat opsyen hari yang sama adalah satu sesi, jadi sesiapa yang mahukan pendedahan itu — pedagang julat harian, pelindung nilai acara, penjual premium yang menuai hari terakhir pereputan — mempunyai produk paling banyak untuk digunakan pada pembukaan: waktu paling banyak, premium paling banyak, julat harian paling luas yang belum selesai. Setiap jam membakar produk itu sendiri, dan bahagian petang yang semakin menurun adalah produk itu yang tamat tempoh dalam masa nyata.

Apa yang sebenarnya didagangkan pada jam terakhir?

Andaian biasa ialah baki jam terakhir terdiri daripada kontrak dalam wang yang dalam menumpu kepada saham, ditambah strike loteri bernilai sen. Panel mengujinya dengan mengelompokkan dagangan hari sama mengikut premium yang dibayar — sebagai proksi untuk kedudukan wang pada hari tamat, kerana kontrak yang tinggal beberapa jam lagi dan dihargakan pada $0.05 adalah jauh di luar wang, manakala yang melebihi $10 adalah dalam wang yang dalam.

PertanyaanApa yang diniagakan pada jam terakhir: volum hari sama mengikut premium dibayar, jam 10 pagi lawan jam tutup — 10 Julai 2026
SQL tepat di sebalik setiap nombor
SELECT multiIf(price < 0.10, 'under $0.10', price < 0.50, '$0.10-0.50', price < 2, '$0.50-2', price < 10, '$2-10', '$10 and up') AS premium_bucket,
       round(100.0 * sumIf(size, toHour(toTimeZone(sip_timestamp, 'America/New_York')) = 10)
             / sum(sumIf(size, toHour(toTimeZone(sip_timestamp, 'America/New_York')) = 10)) OVER (), 1) AS pct_of_10am_contracts,
       round(100.0 * sumIf(size, toHour(toTimeZone(sip_timestamp, 'America/New_York')) = 15)
             / sum(sumIf(size, toHour(toTimeZone(sip_timestamp, 'America/New_York')) = 15)) OVER (), 1) AS pct_of_3pm_contracts,
       round(100.0 * sumIf(price * size, toHour(toTimeZone(sip_timestamp, 'America/New_York')) = 15)
             / sum(sumIf(price * size, toHour(toTimeZone(sip_timestamp, 'America/New_York')) = 15)) OVER (), 1) AS pct_of_3pm_premium_dollars
FROM global_markets.options_trades
WHERE sip_timestamp >= toDateTime64('2026-07-10 13:30:00', 9)
  AND sip_timestamp < toDateTime64('2026-07-10 20:00:00', 9)
  AND substring(ticker, length(ticker) - 14, 6) = '260710'
  AND toHour(toTimeZone(sip_timestamp, 'America/New_York')) IN (10, 15)
GROUP BY premium_bucket
ORDER BY min(price)

Campuran beralih dengan ketara ke arah hujung murah. Pada jam 10 pagi, kelompok modal ialah $0.50-2, iaitu 37.4% daripada kontrak, dengan kelompok bawah sepuluh sen pada 17.1%. Menjelang jam tutup, kelompok bawah sepuluh sen telah menggandakan bahagiannya kepada 33.8%, $0.10-0.50 menambah 34.9%, dan kontrak $0.50-2 menurun kepada 19.6%. Kebanyakan dagangan yang berlaku sehingga loceng tamat berharga di bawah lima puluh sen.

Lajur terakhir adalah pembetulan. Kontrak mahal itu jarang berlaku — kelompok $10 and up ialah 2.6% daripada kontrak jam terakhir — namun ia membawa 54.2% daripada dolar premium yang didagangkan pada jam itu, berbanding 0.8% untuk kelompok bawah sepuluh sen. Kedua-dua bahagian gambaran awam ada di sana, dalam mata wang yang berbeza: dikira dalam kontrak, jam terakhir adalah pasaran tiket loteri; dikira dalam dolar, ia adalah pita tipis kontrak dalam wang yang dalam menumpu kepada saham (panduan 0DTE mengikuti satu strike loteri jam terakhir sebegitu).

Bilakah spread 0DTE paling ketat?

Volume adalah satu ukuran kecairan; kos untuk merentasi pasaran adalah kos yang dibayar oleh pedagang. Panel membaca setiap kemas kini sebut harga pada kontrak 0DTE SPY hari Jumaat itu dan melaporkan median spread bida-tanya mengikut jam, terhad kepada kontrak yang disebut harga antara $1 dan $10 — lingkungan premium yang setara (kontrak di dalamnya berubah apabila hari berlalu; begitulah sifat produk yang akan tamat tempoh).

PertanyaanMedian sebaran bida-tawaran pada kontrak hari sama SPY yang disebut $1-$10, mengikut jam ET — 10 Julai 2026
SQL tepat di sebalik setiap nombor
SELECT formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_hour,
       round(count() / 1e6, 1) AS quote_updates_m,
       round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sequence_number)), 3) AS median_spread_usd,
       round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price) / toFloat64(bid_price + ask_price) * 200,
                                        toUInt64(sequence_number)), 2) AS median_spread_pct_of_mid
FROM global_markets.cache_options_quotes
WHERE ticker LIKE 'O:SPY260710%'
  AND sip_timestamp >= toDateTime64('2026-07-10 13:30:00', 9)
  AND sip_timestamp < toDateTime64('2026-07-10 20:00:00', 9)
  AND bid_price > 0
  AND toFloat64(bid_price + ask_price) / 2 BETWEEN 1 AND 10
GROUP BY et_hour
ORDER BY et_hour

Spread semakin melebar apabila sesi berlalu. Kontrak SPY hari sama median dalam lingkungan itu disebut harga 0.8% daripada harga pertengahannya lebar dalam setengah jam pembukaan — kelompok paling ketat hari itu — dan 2.67% dalam jam penutupan, yang paling lebar: lebih dua kali ganda kos merentasi, produk sama, lingkungan premium sama, enam jam kemudian. Dalam bentuk tunai, spread median meningkat daripada $0.03 kepada $0.11, waktu tengah hari di antaranya (1.57% pada 12:00). Trafik sebut harga bergerak dengan cara yang sama — 1.4 juta kemas kini pada jam 10 pagi berbanding 0.1J pada jam terakhir: pembuat pasaran menyegarkan semula dengan lebih jarang apabila kontrak menghampiri nilai masa sifar, dan menyebut harga lebih lebar apabila mereka berbuat demikian.

Jadi, apa maksudnya: bacaan praktikal

Gambaran yang diukur adalah instrumen pagi pada jam yang semakin reput:

  • Bahagian paling berat, paling pantas dan paling murah untuk dilalui dalam hayat kontrak 0DTE ialah dua jam pertamanya. Setiap jam selepas itu sebut harga semakin lebar dan dagangan semakin nipis.
  • Ia bukan artifak ETF indeks: kesemua sepuluh asas paling berat condongkan volum hari yang sama mereka ke waktu pagi, dan opsyen beli serta opsyen jual mengekalkan jam yang sama.
  • Jam terakhir adalah nyata tetapi kecil — dua pasaran serentak: sangat banyak kontrak yang sangat murah, sangat sedikit kontrak yang sangat mahal membawa sebahagian besar wang.
  • Hari bekerja penting: bahagian hari yang sama pada hari Jumaat jauh lebih tinggi daripada mana-mana hari pertengahan minggu.

Tiada satu pun daripada ini mengatakan sama ada untuk berdagang produk yang premiumnya boleh menjadi sifar dalam satu petang; ia mengatakan bila pasaran untuknya paling dalam dan paling murah untuk dilalui. Halaman kosa kata DTE memegang spektrum tamat tempoh yang lebih luas.

FAQ

Adakah opsyen 0DTE lebih aktif pada waktu penutupan?

Tidak berbanding dengan pasaran yang lain. Pada 10 Julai 2026, kontrak hari yang sama jatuh kepada 38.4% daripada jumlah volum opsyen pada jam penutupan — bahagian terendah hari itu — walaupun jumlah volum opsyen meningkat kepada 9.78 juta kontrak, jam ketiga paling sibuk sesi tersebut (selepas 13.58M pada 10:00 dan 10.86M pada 11:00). Volum 0DTE memang meningkat sedikit menjelang loceng penutupan (3.75M berbanding puncak pagi 7.19M), tetapi pasaran lain meningkat lebih tinggi. Aliran hari yang sama paling deras berlaku pada separuh jam pembukaan, pada 148.9 ribu kontrak seminit.

Apakah peratusan volum opsyen yang merupakan 0DTE pada hari biasa?

Ia bergantung pada hari bekerja. Sepanjang enam minggu sehingga 10 Julai 2026, kontrak hari yang sama adalah 46.1% daripada jumlah volum opsyen pada hari Jumaat dan 29.2% pada hari Tuesday — setiap hari dagangan membawa volum 0DTE yang bermakna, dan kalendar tamat tempoh menentukan jumlahnya.

Adakah opsyen jual dan beli 0DTE didagangkan pada masa yang sama?

Hampir sama: kedua-duanya memuncak pada jam 10 pagi yang sama pada 10 Julai 2026 dan kedua-duanya berkurangan melalui waktu petang. Bahagian opsyen jual dalam volum hari yang sama adalah paling rendah dalam kumpulan pembukaan (34.9%) dan berakhir pada 41.7% — tiada lonjakan lindung nilai lewat hari kelihatan.

Adakah puncak pagi sama untuk SPY seperti untuk saham individu?

Ya. Pada hari Jumaat itu, setiap satu daripada sepuluh aset pendasar paling berat — ETF dan saham individu sama — mencetak bahagian volum hari yang sama yang lebih besar sebelum tengah hari berbanding 38% daripada jam sesi yang diliputi oleh tetingkap itu: 56.3% untuk saham individu NVDA, 54.4% untuk SPY.


Setiap angka di atas adalah pertanyaan yang disimpan dan berversi ke atas pita opsyen penuh — kembangkan mana-mana panel untuk membaca SQL, atau potong sesi lain pada terminal.