Strasmore Research
Edukacja Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-07-24

Co oznacza DTE w opcjach

DTE to dni pozostałe do wygaśnięcia kontraktu opcyjnego. Liczbę tę wylicza się jako dni kalendarzowe, a nie sesje giełdowe, przy czym dzień wygaśnięcia to zero.

DTE oznacza days to expiration — liczbę dni kalendarzowych pozostałych do wygaśnięcia kontraktu opcyjnego. Opcja typu call o wartości "30 DTE" wygasa za trzydzieści dni; opcja "0DTE" wygasa w dniu, w którym jest przedmiotem obrotu. Jest to najczęściej stosowany skrót w rozmowach dotyczących opcji, który zawiera najważniejszą informację o każdej opcji: pozostały czas do wygaśnięcia. Niniejsza strona precyzyjnie definiuje ten termin, pokazuje sposób obliczania DTE dla rzeczywistego kontraktu w własnym arkuszu oraz analizuje na podstawie danych rynkowych, jak DTE wpływa na cenę opcji oraz gdzie w tym spektrum znajduje się wolumen rynkowy.

Co oznacza termin DTE?

Days to expiration (czas pozostały do wygaśnięcia). Przyjmuje się, że są to dni kalendarzowe, a nie sesje giełdowe. Liczbę tę wylicza się do daty wygaśnięcia kontraktu, przy czym sam dzień wygaśnięcia wynosi zero: opcja wygasająca w najbliższy piątek ma 2 DTE w środę, 1 DTE w czwartek i 0 DTE w piątek. Weekendy i święta są wliczane do tego okresu — opcja wygasająca w poniedziałek ma 3 DTE w piątek, mimo że pozostaje tylko jedna sesja handlowa. Ta rozbieżność ma istotne znaczenie: wartość czasowa opcji maleje w dni kalendarzowe (zegar nie zatrzymuje się w sobotę), dlatego wskaźniki DTE obejmujące weekend zachowują się inaczej niż te same wartości w środku tygodnia.

Wartość ta nie jest nadrukowana na kontrakcie — jest ona wyliczana na podstawie daty wygaśnięcia, zatem każdego dnia maleje o jeden. Łańcuch opcji u brokera stanowi de facto drabinę DTE: zakładki z terminami wygaśnięcia w górnej części to ten sam zakres, jedynie oznaczone datami zamiast liczby dni.

Jak samodzielnie obliczyć DTE

Obliczenie polega na jednym odejmowaniu:

  1. Znajdź datę wygaśnięcia kontraktu. Każda notowana opcja US zawiera ją w symbolu: O:SPY260710P00740000 to SPY, następnie 260710 = 2026-07-10, następnie P dla put, a następnie cena wykonania (740.000). Broker wyświetla tę samą datę na górze karty łańcucha opcji.
  2. Odejmij od tej daty dzisiejszą datę, licząc każdy dzień kalendarzowy — wliczając weekendy i święta giełdowe.
  3. Wynikiem jest DTE. Dzień wygaśnięcia to 0; dzień poprzedni to 1.

Nie wymagane są żadne inne działania — brak korekt o dni handlowe oraz brak zaokrągleń. Poniżej przedstawiono odejmowanie na rzeczywistych kontraktach: najbardziej obrotny kontrakt SPY w każdym przedziale DTE w sesji z środy, 8 lipca 2026 roku, przy czym data obrotu i data wygaśnięcia zostały wyodrębnione bezpośrednio z symbolu.

ZapytanieDTE, na realnych kontraktach — najbardziej obrotowa opcja SPY w każdym przedziale DTE, 8 lipca 2026
Dokładny kod SQL dla każdej liczby
SELECT argMax(contract, (vol, contract)) AS option_ticker,
       argMax(traded_on, (vol, contract)) AS traded_on,
       argMax(expires_on, (vol, contract)) AS expires_on,
       argMax(dte, (vol, contract)) AS calendar_dte,
       multiIf(max(vol) >= 1000000,
               concat(toString(intDiv(toUInt64(max(vol)), 1000000)), ',',
                      leftPad(toString(intDiv(toUInt64(max(vol)), 1000) % 1000), 3, '0'), ',',
                      leftPad(toString(toUInt64(max(vol)) % 1000), 3, '0')),
               max(vol) >= 1000,
               concat(toString(intDiv(toUInt64(max(vol)), 1000)), ',',
                      leftPad(toString(toUInt64(max(vol)) % 1000), 3, '0')),
               toString(toUInt64(max(vol)))) AS contracts_traded
FROM (
    SELECT ticker AS contract,
           replaceRegexpAll(formatDateTime(toDate(toTimeZone(window_start, 'America/New_York')), '%M %e, %Y'), '  ', ' ') AS traded_on,
           replaceRegexpAll(formatDateTime(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))), '%M %e, %Y'), '  ', ' ') AS expires_on,
           dateDiff('day',
                    toDate(toTimeZone(window_start, 'America/New_York')),
                    toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))) AS dte,
           multiIf(dte = 0, '0 DTE', dte = 1, '1 DTE', dte <= 7, '2-7 DTE',
                   dte <= 30, '8-30 DTE', dte <= 90, '31-90 DTE', '91+ DTE') AS bucket,
           sum(volume) AS vol
    FROM global_markets.options_minute_aggs
    WHERE ticker LIKE 'O:SPY2%'
      AND window_start >= '2026-07-08 04:00:00'
      AND window_start < '2026-07-09 04:00:00'
    GROUP BY contract, traded_on, expires_on, dte, bucket
    HAVING dte >= 0
)
GROUP BY bucket
ORDER BY min(dte)

Przeczytaj wiersz 1 DTE: O:SPY260709P00740000 obroty na July 8, 2026 wygasa dnia July 9, 2026, co daje jeden dzień kalendarzowy różnicy, zatem wynosi 1 DTE, a 93,266 kontraktów zmieniło właścicieli. Lider przedziału 31-90 DTE, O:SPY260918P00650000, wygasa September 18, 2026 — czyli 72 dni kalendarzowych od tej samej daty obrotu. To samo odejmowanie, ten sam łańcuch, skrajnie różne instrumenty.

Rozkład wolumenu w zależności od DTE

Pełna sesja wszystkich notowanych amerykańskich opcji, pogrupowana według liczby dni pozostałych do wygaśnięcia każdego kontraktu:

ZapytanieWolumen opcji według dni do wygaśnięcia — wszystkie opcje US obracane 8 lipca 2026
Dokładny kod SQL dla każdej liczby
SELECT multiIf(dte = 0, '0 DTE (expires today)',
               dte = 1, '1 DTE',
               dte <= 7, '2-7 DTE',
               dte <= 30, '8-30 DTE',
               dte <= 90, '31-90 DTE',
               '91+ DTE') AS bucket,
       round(sum(vol) / 1e6, 2) AS contracts_mm,
       round(100.0 * sum(vol) / sum(sum(vol)) OVER (), 1) AS pct_of_volume
FROM (
    SELECT toFloat64(volume) AS vol,
           dateDiff('day',
                    toDate(toTimeZone(window_start, 'America/New_York')),
                    toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))) AS dte
    FROM global_markets.options_minute_aggs
    WHERE window_start >= '2026-07-08 04:00:00'
      AND window_start < '2026-07-09 04:00:00'
)
WHERE dte >= 0
GROUP BY bucket
ORDER BY min(dte)

Dane wskazują na silną koncentrację w krótkim terminie: 38.9% dziennego wolumenu kontraktów stanowiły opcje 0 DTE — czyli opcje w ostatnich godzinach życia — w porównaniu do 8.1% dla kontraktów o terminie 91 dni lub dłuższym. Podsumowanie przedstawia dane dla całej początkowej części krzywej:

ZapytanieFront krzywej — udział wolumenu z 8 lipca 2026 w ciągu tygodnia od wygaśnięcia
Dokładny kod SQL dla każdej liczby
SELECT round(100.0 * sumIf(vol, dte <= 7) / sum(vol), 1) AS pct_week_or_less,
       round(100.0 * sumIf(vol, dte >= 31) / sum(vol), 1) AS pct_31_dte_plus,
       round(sum(vol) / 1e6, 1) AS total_contracts_mm
FROM (
    SELECT toFloat64(volume) AS vol,
           dateDiff('day',
                    toDate(toTimeZone(window_start, 'America/New_York')),
                    toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))) AS dte
    FROM global_markets.options_minute_aggs
    WHERE window_start >= '2026-07-08 04:00:00'
      AND window_start < '2026-07-09 04:00:00'
)
WHERE dte >= 0

61.8% z 62.6 milionów kontraktów danej sesji miało tydzień lub mniej do wygaśnięcia; tylko 18.7% miało termin dłuższy niż miesiąc. Zjawisko 0DTE dominuje w nagłówkach, jednak szerszy trend wskazuje, że ogólny wolumen opcji koncentruje się w miarę zbliżania się terminu wygaśnięcia — kiedy premie są najniższe, erozja czasu jest najszybsza, a każda pozycja zostaje zamknięta w ciągu kilku dni. Wolumen nie jest jednak tożsamy z pozycjonowaniem: open interest obejmuje kontrakty utrzymywane przez noc i wykazuje tendencję do dłuższych terminów.

Wpływ DTE na cenę opcji

Czas jest surowcem, z którego zbudowana jest opcja, a DTE określa jego ilość. Aby to przeanalizować, należy przyjąć stałe parametry: ten sam instrument bazowy, tę samą cenę wykonania at-the-money oraz ten sam półgodzinny przedział w sesji, zmieniając jedynie datę wygaśnięcia. Poniższa tabela prezentuje szereg opcji kupna na SPY o różnych terminach zapadalności, których cena wykonania była najbliższa kursowi SPY w okolicach południa 8 lipca 2026 roku.

ZapytanieKoszt czasu — cena opcji call SPY at-the-money według DTE, południe 8 lipca 2026
Dokładny kod SQL dla każdej liczby
WITH spot AS (
    SELECT avg(close) AS px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-07-08 11:30:00', 'America/New_York')
      AND window_start < toDateTime('2026-07-08 13:00:00', 'America/New_York')
),
chain AS (
    SELECT toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) AS expiry,
           toFloat64(substring(ticker, length(ticker) - 7, 8)) / 1000 AS strike,
           avg(close) AS opt_px
    FROM global_markets.options_minute_aggs
    WHERE ticker LIKE 'O:SPY2%'
      AND substring(ticker, length(ticker) - 8, 1) = 'C'
      AND window_start >= toDateTime('2026-07-08 11:30:00', 'America/New_York')
      AND window_start < toDateTime('2026-07-08 13:00:00', 'America/New_York')
    GROUP BY expiry, strike
    HAVING sum(volume) > 0
       AND abs(strike - (SELECT px FROM spot)) <= 3
       AND dateDiff('day', toDate('2026-07-08'), expiry) >= 0
),
atm AS (
    SELECT dateDiff('day', toDate('2026-07-08'), expiry) AS dte,
           argMin(opt_px, (abs(strike - (SELECT px FROM spot)), strike)) AS call_price
    FROM chain
    GROUP BY expiry
),
targets AS (
    SELECT arrayJoin([0, 1, 2, 7, 14, 30, 60, 90, 180, 365, 730]) AS target
),
nearest AS (
    SELECT argMin(dte, (abs(dte - target), dte)) AS pick_dte,
           argMin(call_price, (abs(dte - target), dte)) AS pick_px
    FROM targets CROSS JOIN atm
    GROUP BY target
)
SELECT concat(toString(pick_dte), ' DTE') AS days_to_expiration,
       round(pick_px, 2) AS atm_call_price,
       round(pick_px / greatest(pick_dte, 1), 2) AS premium_per_remaining_day
FROM nearest
GROUP BY days_to_expiration, atm_call_price, premium_per_remaining_day, pick_dte
ORDER BY pick_dte

Opcja kupna at-the-money wygasająca tego popołudnia kosztowała $1.65. Opcja wygasająca następnego dnia kosztowała $2.92; z terminem tygodniowym $6.09; z terminem miesięcznym $13.85; natomiast najdłuższy kontrakt w zestawieniu, 891 DTE, kosztował $125.64. Należy zauważyć, że cena nie jest proporcjonalna do czasu. Okres trwania opcji oddalonej o około trzydzieści dni nie przekłada się na trzydziestokrotny wzrost jej ceny w porównaniu do opcji terminowej.

Prawa kolumna przedstawia wartość, którą faktycznie odczuwają traderzy — premię podzieloną przez pozostałą liczbę dni kalendarzowych. Przy 891 DTE kupujący zapłacił $0.14 za każdy pozostały dzień opcyjności; przy 7 DTE wyniosło to $0.87; przy 2 DTE wyniosło $1.92. Koszt czasu w ujęciu dziennym stale rośnie wraz ze zbliżaniem się daty wygaśnięcia — to zjawisko nazywa się przyspieszeniem theta, a ta kolumna obrazuje ten proces. (Wiersz 0 DTE jest jedynym wyjątkiem w tabeli z przyczyn technicznych: pomiar wykonany w południe wykazał kilka pozostałych godzin zamiast pełnego dnia, zatem podzielenie premii przez „jeden dzień” zaniża rzeczywisty dzienny koszt utraty wartości).

Które tickery oferują opcje 0DTE?

Nie każdy instrument bazowy posiada kontrakty z terminem wygaśnięcia w tym samym dniu. Lista łańcuchów oferujących expiracje niemal każdego dnia jest krótka – obejmuje główne ETF na indeksy oraz kilka spółek typu mega-cap. Sześć powszechnie znanych tickerów w jednej sesji:

ZapytaniePorównanie menu DTE — obracane terminy wygaśnięcia i udział 0DTE według instrumentu bazowego, 8 lipca 2026
Dokładny kod SQL dla każdej liczby
SELECT underlying,
       uniqExact(expiry) AS expiries_traded,
       min(dte) AS shortest_dte,
       max(dte) AS longest_dte,
       round(100.0 * sumIf(vol, dte = 0) / sum(vol), 1) AS pct_0dte,
       round(sum(vol) / 1e6, 2) AS contracts_mm
FROM (
    SELECT splitByChar(':', ticker)[2] AS raw,
           substring(raw, 1, length(raw) - 15) AS underlying,
           toFloat64(volume) AS vol,
           toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) AS expiry,
           dateDiff('day', toDate(toTimeZone(window_start, 'America/New_York')), expiry) AS dte
    FROM global_markets.options_minute_aggs
    WHERE (ticker LIKE 'O:SPY2%' OR ticker LIKE 'O:QQQ2%' OR ticker LIKE 'O:IWM2%'
           OR ticker LIKE 'O:AAPL2%' OR ticker LIKE 'O:TSLA2%' OR ticker LIKE 'O:KO2%')
      AND window_start >= '2026-07-08 04:00:00'
      AND window_start < '2026-07-09 04:00:00'
)
WHERE dte >= 0
GROUP BY underlying
ORDER BY contracts_mm DESC

SPY handlował 35 różnymi terminami wygaśnięcia w tej jednej sesji – od 0 DTE do 891 DTE, obejmując opcje intraday oraz wieloletnie LEAPS w jednym łańcuchu – a 70.1% jego wolumenu stanowiły kontrakty jednodniowe. QQQ oraz TSLA również posiadały kontrakty wygasające w tę środę (71.5% i 62% ich wolumenu). KO nie posiadał takich kontraktów: najbliższa expiracja przypadała za 2 dni, a 0% jego wolumenu stanowiło 0 DTE. Jego łańcuch obejmuje piątki, więc w środę nie istnieje opcja do zakupu z terminem wygaśnięcia w tym samym dniu.

To jest praktyczna odpowiedź na pytanie: „czy mogę handlować 0DTE na mojej akcji?” – należy sprawdzić w łańcuchu, czy widnieje data wygaśnięcia przypadająca na dzisiaj. ETF na indeksy oferują takie kontrakty niemal każdego dnia handlowego; spółki mid-cap lub mało zmienne spółki dywidendowe zazwyczaj oferują kontrakty tygodniowe (w piątki) oraz miesięczne, bez możliwości handlu krótszymi terminami. Kiedy wygasają opcje zawiera pełny kalendarz, a triple witching obejmuje kwartalne kumulacje.

Czy początek krzywej zawsze był tak zatłoczony?

Nie — zjawisko to jest stosunkowo nowe i mierzalne. Analiza pięciu sesji z połowy czerwca, wyłącznie opcje na SPY, rok po roku:

ZapytanieWzrost 0DTE — udział wolumenu opcji SPY w dniu bieżącym, 8–12 czerwca każdego roku
Dokładny kod SQL dla każdej liczby
SELECT year,
       round(100.0 * sumIf(vol, dte = 0) / sum(vol), 1) AS pct_0dte,
       round(100.0 * sumIf(vol, dte <= 7) / sum(vol), 1) AS pct_week_or_less,
       round(sum(vol) / 1e6, 1) AS spy_contracts_mm
FROM (
    SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS year,
           toFloat64(volume) AS vol,
           dateDiff('day',
                    toDate(toTimeZone(window_start, 'America/New_York')),
                    toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))) AS dte
    FROM global_markets.options_minute_aggs
    WHERE ticker LIKE 'O:SPY2%'
      AND toMonth(toTimeZone(window_start, 'America/New_York')) = 6
      AND toDayOfMonth(toTimeZone(window_start, 'America/New_York')) BETWEEN 8 AND 12
      AND toYear(toTimeZone(window_start, 'America/New_York')) >= 2020
)
WHERE dte >= 0
GROUP BY year
ORDER BY year

W 2020 kontrakty terminowe z realizacją w tym samym dniu stanowiły 20.2% wolumenu opcji na SPY w tym okresie. Do 2023 stanowiły 44.2%, a w 2026 osiągnęły 69.5%. Wzrost nie jest w pełni monotoniczny: 2021 wyniosło 18.6%, czyli mniej niż w przypadku 2020. Od 2022 każda próbka czerwcowa wykazuje wyższy wynik niż poprzednia. Kontrakty z terminem wygaśnięcia wynoszącym tydzień lub mniej wzrosły z 61.7% do 89.9% w tym samym okresie, przy czym w ostatnim oknie handlowo obrócono 71.9 milionami kontraktów SPY. Dyskusja na temat DTE jest intensywniejsza niż pięć lat temu, co potwierdzają dane rynkowe.

Wybór DTE dla strategii

Nie istnieje optymalne DTE — występują jedynie kompromisy o charakterze mechanicznym. Krótkie DTE oznacza tanią premię, szybką erozję wartości czasowej oraz nadmierną wrażliwość na małe ruchy w pobliżu ceny wykonania. Długie DTE oznacza drogą premię, powolną erozję wartości czasowej oraz zachowanie zbliżone do kursu akcji. Standardowe podejście rynkowe:

  • 0-1 DTE (sesja bieżąca i overnight). Najniższa dostępna premia, całkowita utrata wartości czasowej do zamknięcia sesji, wyniki typu wszystko albo nic. To tutaj koncentruje się największy wolumen — i tutaj niekorzystny ruch nie pozostawia czasu na odrobienie strat.
  • Weekly, 2-7 DTE. Czas liczony w dniach, a nie w godzinach. Częsty wybór dla krótkoterminowych spreadów kredytowych; nadal w bardzo stromym punkcie krzywej erozji wartości czasowej.
  • 30-45 DTE. Konwencjonalny przedział dla sprzedaży premii — covered calls, cash-secured puts. Często wskazywany jako punkt równowagi, gdzie erozja wartości czasowej jest znacząca, ale nie gwałtowna, co pozwala na zarządzanie pozycją zamiast biernego jej trzymania. W drabince z 8 lipca call at-the-money z 30 DTE kosztował $13.85, podczas gdy ten sam strike w dniu sesji kosztował $1.65: koszt jednego dnia pozostałego do wygaśnięcia przy miesiącu czasu wynosił $0.46.
  • LEAPS, około 365 DTE i więcej. Wycena opiera się głównie na długoterminowym ruchu instrumentu bazowego, a nie na upływającym czasie — najtańszy koszt jednostkowy za jeden dzień pozostały ($0.14 przy 891 DTE), ale wymagający największego zaangażowania kapitału na starcie.

Żaden z tych przedziałów nie jest sztywną regułą. Opisują one sposób funkcjonowania rynku — oraz, zgodnie z powyższymi danymi wolumenowymi, które strategie są faktycznie stosowane. Niezależnie od wybranego przedziału, koszty transakcyjne są dodatkowe względem premii: koszt handlu opcjami przedstawia szczegółowe zestawienie opłat za jeden kontrakt.

FAQ

Jak oblicza się DTE?

Od daty dzisiejszej należy odjąć datę wygaśnięcia kontraktu i policzyć wszystkie dni kalendarzowe pomiędzy nimi, wliczając weekendy i święta. Dzień wygaśnięcia wynosi zero. 8 lipca 2026 roku najbardziej obrotowany kontrakt SPY w przedziale 2-7 DTE, O:SPY260710P00740000, wygasł July 10, 20262 dni kalendarzowych, co dawało 2 DTE tego dnia.

Co oznacza 0 DTE?

Opcja handlowana w dniu własnego wygaśnięcia — zero dni do wygaśnięcia. Handel kończy się wraz z zamknięciem sesji tego dnia, a instrument rozlicza się jako bezwartościowy lub w stanie "in the money" tego samego wieczoru. 8 lipca 2026 roku same kontrakty 0 DTE stanowiły 38.9% całego wolumenu opcji w USA — czym jest 0DTE szczegółowo opisuje to zjawisko.

Czy DTE liczy się w dniach kalendarzowych czy sesyjnych?

Zgodnie z powszechnie przyjętą konwencją, w dniach kalendarzowych. Weekendy i święta są wliczane, a wartość czasowa wygasa w ich trakcie — opcja 3 DTE w piątek (wygasająca w poniedziałek) ma przed sobą jedną sesję handlową, ale trzy dni zegarowe.

Jakie DTE jest najlepsze do handlu opcjami?

Nie istnieje jedno optymalne DTE; wybór zależy od przyjętego kompromisu. Krótkoterminowe kontrakty są tanie i szybko tracą na wartości — opcja kupna SPY at-the-money wygasająca tego samego popołudnia kosztowała $1.65 dnia 8 lipca 2026 roku — podczas gdy kontrakty długoterminowe wymagają znacznie wyższego kapitału początkowego, ale kosztują znacznie mniej w przeliczeniu na jeden dzień życia ($0.14 za pozostały dzień przy 891 DTE). Sprzedający premie zazwyczaj operują w przedziale 30-45 DTE; kupujący, którzy chcą mieć czas po swojej stronie, wybierają dłuższe terminy.

Jakie DTE wybiera większość traderów opcyjnych?

Dokładna odpowiedź na dzień 8 lipca 2026 roku: 61.8% wolumenu kontraktów znajdowało się w terminie 7 DTE lub mniej, przy czym 38.9% stanowiły same kontrakty 0 DTE. Aktywność w dłuższych terminach występuje — 18.7% wolumenu stanowiły kontrakty 31+ DTE — jednak środek ciężkości rynku znajduje się na początku krzywej, która przesuwa się coraz bardziej ku przodowi w każdym czerwcowym próbkowaniu od 2022.


Każda powyższa liczba to zapisane, wersjonowane zapytanie z pełnego rejestru opcji — można rozszerzyć kod SQL dowolnego panelu lub wyodrębnić spektrum DTE dla dowolnego instrumentu bazowego na terminalu Strasmore.