Strasmore Research
학습 Matt Connor작성자 Matt Connor

0DTE vs 1DTE 옵션 차이: 하룻밤 사이 무엇이 달라지나

0DTE와 1DTE 옵션의 차이를 SPY와 QQQ 실제 계약 데이터로 비교합니다. 만기 하루 전과 당일의 감마와 세타, 오버나이트 갭이 누구 몫인지, 한국 시간대 거래 시각, 국내 증권사 현황, 11% 양도소득세, 코스피200 위클리옵션 만기 요일까지 정리했습니다.

0DTE vs 1DTE 옵션 차이를 한 줄로 줄이면, 포지션이 시장이 닫힌 밤을 통과하느냐 아니냐다. 1DTE는 만기 전날 세션에 열어 종가를 넘겨 보유하는 포지션이고, 다음 날 개장하는 순간 같은 계약이 0DTE가 된다. 0DTE는 만기 당일 세션 안에서 열리고 닫히거나 그대로 만료되므로 밤을 겪지 않는다. 아래에서는 SPY와 QQQ의 실제 등가격(ATM, 행사가가 현재가에 가장 가까운) 계약 데이터로 만기 하루 전과 당일의 감마와 세타가 얼마나 다른지, 그리고 오버나이트 갭이 어느 쪽 몫인지 숫자로 확인한다.

0DTE와 1DTE를 DTE로 정의하면

DTE는 days to expiration, 만기까지 남은 달력 일수다. 셈법의 세부는 DTE(만기까지 남은 일수)의 뜻에 정리해 두었다. 이 셈법으로 두 포지션을 다시 쓰면 이렇게 된다.

  • 1DTE: 만기 전날 세션에 진입해 그날 종가를 넘겨 보유한다. 다음 날 개장하면 같은 계약이 0DTE가 되고, 포지션은 만기 세션 안에서 청산되거나 만료된다. 두 세션과 그 사이의 밤을 함께 사는 셈이다.
  • 0DTE: 만기 당일 세션 안에서 열고, 같은 세션 안에서 닫거나 만료시킨다. 밤을 겪지 않는다. 기본 개념은 0DTE 옵션이란 무엇인가에서 다뤘다.

같은 계약이 목요일에는 1DTE였다가 금요일에는 0DTE가 된다. 계약 자체는 같고, 둘의 차이는 보유 구간의 위치에서 온다. 그 위치가 그릭스(옵션 가격이 기초자산 가격이나 시간에 얼마나 민감한지를 나타내는 지표)와 리스크의 성격을 바꾼다. SPY와 QQQ 옵션은 미국식이고 실물인수도 방식이라, 만기 종가에 행사가 근처에 걸린 매도 포지션은 배정 여부가 마감 뒤에 정해지는 만기 핀 리스크도 안는다.

만기가 하루 남으면 감마와 세타는 어떻게 달라지나

먼저 같은 날, 같은 기초자산의 등가격 콜옵션을 만기별로 나란히 놓고 본다. 아래 패널은 2025년 6월 12일(목) 종가 기준으로 SPY와 QQQ의 등가격 콜을 만기까지 남은 일수별로 뽑은 것이다. 감마는 "기초자산이 1% 움직일 때 델타가 얼마나 변하는가"로 환산했고(감마에 기초자산 가격의 1%를 곱한 값), 세타는 하루치 시간가치 감소분을 프리미엄 대비 비율로 바꿨다. 이렇게 하면 가격대가 다른 SPY와 QQQ를 같은 눈금으로 비교할 수 있다.

조회SPY와 QQQ 등가격 콜의 만기별 그릭스 (2025-06-12 종가 기준)
dte_bucketdtespy_atm_call_premiumqqq_atm_call_premiumspy_delta_change_per_1pctqqq_delta_change_per_1pctspy_theta_pct_of_premiumqqq_theta_pct_of_premium
1DTE14.364.440.2260.19349.350
4DTE45.35.440.1890.1612.612.7
5DTE55.985.720.1670.15310.110.2
6DTE66.736.760.1490.1298.58.5
8DTE86.917.950.1460.116.46.4
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    concat(toString(days_to_expiry), 'DTE')                                          AS dte_bucket,
    days_to_expiry                                                                   AS dte,
    round(argMinIf(premium, moneyness_gap, underlying_symbol = 'SPY'), 2)            AS spy_atm_call_premium,
    round(argMinIf(premium, moneyness_gap, underlying_symbol = 'QQQ'), 2)            AS qqq_atm_call_premium,
    round(argMinIf(delta_change_1pct, moneyness_gap, underlying_symbol = 'SPY'), 3)  AS spy_delta_change_per_1pct,
    round(argMinIf(delta_change_1pct, moneyness_gap, underlying_symbol = 'QQQ'), 3)  AS qqq_delta_change_per_1pct,
    round(argMinIf(theta_pct, moneyness_gap, underlying_symbol = 'SPY'), 1)          AS spy_theta_pct_of_premium,
    round(argMinIf(theta_pct, moneyness_gap, underlying_symbol = 'QQQ'), 1)          AS qqq_theta_pct_of_premium
FROM
(
    SELECT
        underlying_symbol,
        days_to_expiry,
        abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1)  AS moneyness_gap,
        toFloat64(option_close)                                         AS premium,
        gamma * toFloat64(underlying_close) / 100                       AS delta_change_1pct,
        -theta / toFloat64(option_close) * 100                          AS theta_pct
    FROM global_markets.options_greeks
    WHERE date = '2025-06-12'
      AND underlying_symbol IN ('SPY', 'QQQ')
      AND lower(toString(option_type)) IN ('call', 'c')
      AND days_to_expiry BETWEEN 1 AND 10
      AND iv_converged = 1
      AND volume > 0
      AND option_close > 0
)
GROUP BY days_to_expiry
HAVING countIf(underlying_symbol = 'SPY') > 0
   AND countIf(underlying_symbol = 'QQQ') > 0
ORDER BY days_to_expiry
직접 실행해 보기

가장 가까운 만기인 1DTE 행을 보면 SPY 등가격 콜 프리미엄은 $4.36이고, 기초자산이 1% 움직일 때 델타는 0.226만큼 변한다. 같은 날 8DTE 계약은 그 값이 0.146에 그친다. 세타도 같은 방향이다. 1DTE 콜의 하루치 세타는 프리미엄의 49.3%인데, 8DTE에서는 6.4%다. QQQ도 같은 날 1DTE 등가격 콜의 세타가 프리미엄의 50%로 SPY와 같은 급경사를 보인다.

이 곡선이 말해 주는 것은 분명하다. 1DTE 포지션은 0DTE의 순한 버전이 아니다. 만기 하루 전 등가격 옵션은 이미 곡선에서 가장 가파른 구간에 서 있고, 다음 세션에는 그 값이 더 극단으로 간다. 감마와 세타의 정의는 옵션 감마옵션 세타에서 따로 설명했다.

마지막 이틀의 시간가치는 어디서 사라지나

이번에는 계약 하나를 따라간다. 2025년 6월 13일(금) 만기 SPY 옵션 가운데 6월 12일 종가에 등가격이었던 행사가를 고르고, 같은 행사가의 콜과 풋을 합친 스트래들을 만기 일주일 전부터 만기 전날까지 일별로 추적했다. 스트래들 프리미엄은 시장이 그 시점에 "만기까지 남은 움직임"에 매기는 값이라고 읽을 수 있다.

조회SPY 2025-06-13 만기 등가격 스트래들의 일별 궤적 (만기 전날까지)
session_dateday_labeldtespy_vs_strike_pctcall_premiumput_premiumstraddle_premiumcall_thetacall_theta_pct_of_premiumcall_delta_change_per_1pct
2025-06-066월 6일7-0.044.214.568.77-0.3297.80.233
2025-06-096월 9일4-0.023.753.957.7-0.49513.20.26
2025-06-106월 10일30.455.142.397.53-0.59611.60.259
2025-06-116월 11일20.083.822.045.86-0.90923.80.273
2025-06-126월 12일10.034.360.695.05-2.1549.30.226
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    toString(date)                                                                 AS session_date,
    concat(toString(toMonth(date)), '월 ', toString(toDayOfMonth(date)), '일')      AS day_label,
    any(days_to_expiry)                                                            AS dte,
    round((anyIf(underlying_px, side = 'C') / any(strike) - 1) * 100, 2)           AS spy_vs_strike_pct,
    round(anyIf(premium, side = 'C'), 2)                                           AS call_premium,
    round(anyIf(premium, side = 'P'), 2)                                           AS put_premium,
    round(anyIf(premium, side = 'C') + anyIf(premium, side = 'P'), 2)              AS straddle_premium,
    round(anyIf(theta, side = 'C'), 3)                                             AS call_theta,
    round(-anyIf(theta, side = 'C') / anyIf(premium, side = 'C') * 100, 1)         AS call_theta_pct_of_premium,
    round(anyIf(gamma, side = 'C') * anyIf(underlying_px, side = 'C') / 100, 3)    AS call_delta_change_per_1pct
FROM
(
    SELECT
        date,
        days_to_expiry,
        toFloat64(strike_price)                                       AS strike,
        toFloat64(underlying_close)                                   AS underlying_px,
        toFloat64(option_close)                                       AS premium,
        theta,
        gamma,
        if(lower(toString(option_type)) IN ('call', 'c'), 'C', 'P')   AS side
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND expiration_date = '2025-06-13'
      AND date BETWEEN '2025-06-06' AND '2025-06-12'
      AND strike_price = (
              SELECT argMin(strike_price, abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1))
              FROM global_markets.options_greeks
              WHERE date = '2025-06-12'
                AND underlying_symbol = 'SPY'
                AND expiration_date = '2025-06-13'
                AND lower(toString(option_type)) IN ('call', 'c')
                AND iv_converged = 1
                AND volume > 0
          )
      AND iv_converged = 1
      AND volume > 0
      AND option_close > 0
)
GROUP BY date
HAVING countIf(side = 'C') > 0
   AND countIf(side = 'P') > 0
ORDER BY date
직접 실행해 보기

만기 이틀 전인 6월 11일 종가에 콜은 $3.82였고, 하루 뒤인 6월 12일 종가에는 $4.36이 됐다. 이 변화에는 시간가치 소멸과 기초자산의 움직임이 함께 들어 있다. 그날 SPY 종가는 행사가 대비 0.03% 자리에 있었다. 모델이 계산한 순수 시간 감소분인 1DTE 시점의 세타는 하루당 -2.15(주당 달러 단위, 음수는 시간이 지날수록 가치가 줄어든다는 뜻)로, 남은 콜 프리미엄의 49.3%가 마지막 하루에 걸려 있다. 같은 시점의 스트래들 전체 가격은 $5.05였다. 만기 전날 종가에 이 스트래들을 판 쪽은 이 금액을 받고 밤과 마지막 세션을 통째로 넘겨받은 것이다.

다음 패널이 이 글의 핵심이다. 같은 스트래들을 만기 전날 개장부터 만기 당일 마감까지 30분 단위로 이어 보면, 1DTE가 0DTE로 바뀌는 밤에 무슨 일이 생기는지 눈에 보인다. 옵션 코드 안의 C와 P 문자로 콜과 풋을 구분했고, 각 구간의 마지막 체결가를 썼다.

조회같은 스트래들의 30분 단위 궤적: 만기 전날 개장부터 만기 마감까지 (미국 동부시간)
28 rows (showing 20)
et_timecall_premiumput_premiumstraddle_premiumtraded_volume
06-12 09:302.941.984.9225921
06-12 10:004.011.335.3419248
06-12 10:304.11.285.3810072
06-12 11:004.011.375.3814700
06-12 11:304.011.355.366062
06-12 12:004.321.135.455064
06-12 12:303.911.285.195268
06-12 13:004.11.045.144688
06-12 13:304.320.975.295177
06-12 14:004.11.025.125645
06-12 14:304.40.855.258559
06-12 15:004.340.855.196855
06-12 15:304.550.645.1917487
06-12 16:004.360.695.055911
06-13 09:300.882.863.74137272
06-13 10:000.473.664.1372955
06-13 10:300.981.842.8280979
06-13 11:001.611.032.6484501
06-13 11:3020.742.7472206
06-13 12:001.640.762.441502
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%m-%d %H:%i') AS et_time,
    round(argMaxIf(toFloat64(close), window_start, substring(ticker, length(ticker) - 8, 1) = 'C'), 2)                 AS call_premium,
    round(argMaxIf(toFloat64(close), window_start, substring(ticker, length(ticker) - 8, 1) = 'P'), 2)                 AS put_premium,
    round(argMaxIf(toFloat64(close), window_start, substring(ticker, length(ticker) - 8, 1) = 'C')
        + argMaxIf(toFloat64(close), window_start, substring(ticker, length(ticker) - 8, 1) = 'P'), 2)                 AS straddle_premium,
    toInt64(sum(volume))                                                                                                AS traded_volume
FROM global_markets.options_minute_aggs
WHERE ticker IN (
        SELECT ticker
        FROM global_markets.options_greeks
        WHERE date = '2025-06-12'
          AND underlying_symbol = 'SPY'
          AND expiration_date = '2025-06-13'
          AND strike_price = (
                  SELECT argMin(strike_price, abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1))
                  FROM global_markets.options_greeks
                  WHERE date = '2025-06-12'
                    AND underlying_symbol = 'SPY'
                    AND expiration_date = '2025-06-13'
                    AND lower(toString(option_type)) IN ('call', 'c')
                    AND iv_converged = 1
                    AND volume > 0
              )
    )
  AND window_start >= toDateTime('2025-06-12 13:00:00', 'UTC')
  AND window_start <  toDateTime('2025-06-14 00:00:00', 'UTC')
GROUP BY et_time
HAVING countIf(substring(ticker, length(ticker) - 8, 1) = 'C') > 0
   AND countIf(substring(ticker, length(ticker) - 8, 1) = 'P') > 0
ORDER BY et_time
직접 실행해 보기

첫 구간인 06-12 09:30(동부시간)에 콜은 $2.94, 풋은 $1.98, 합계 $4.92에서 출발했다. 마지막 구간인 06-13 16:00에는 콜이 $0.01, 풋이 $2.37로 끝났다. 차트에서 06-12의 마지막 구간과 06-13의 첫 구간 사이를 보면, 두 선이 단 한 번의 체결도 없이 서로 다른 자리에서 다시 시작한다. 그 틈이 시장이 닫혀 있던 시간이고, 1DTE 보유자만 그 틈을 통과한다. 0DTE 트레이더가 사는 것은 06-13 첫 구간부터 마감까지의 곡선뿐이다. 만기 당일의 그릭스는 하루 안에서도 크게 바뀌므로, 일간 스냅숏 하나보다 이런 장중 흐름이 0DTE의 실제 모습에 가깝다. 시간에 따라 그릭스가 변하는 일반적인 모양은 그릭스가 시간에 따라 변하는 방식에 정리해 두었다.

결정적 차이: 오버나이트 갭은 누구 몫인가

갭은 오늘 시가와 전일 종가의 차이다. 1DTE 보유자는 갭을 그대로 안은 채 개장을 맞고, 0DTE 트레이더는 갭이 이미 반영된 가격에서 시작한다. 그러니 1DTE 매도 포지션이 받는 밤사이 세타는, 시장이 닫힌 동안 손댈 수 없는 갭 리스크와 맞바꾼 값이다. 위 예시 주간의 SPY 일봉으로 갭과 장중 변동을 분리해 보자.

조회예시 주간 SPY 일봉: 오버나이트 갭과 장중 변동 (2025-06-09 ~ 06-13)
session_dateday_labelopencloseovernight_gap_pctintraday_move_pct
2025-06-096월 9일599.72599.680.1-0.01
2025-06-106월 10일600.22603.080.090.48
2025-06-116월 11일604.19601.360.18-0.47
2025-06-126월 12일600.01603.75-0.220.62
2025-06-136월 13일598.5597-0.87-0.25
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    toString(d.date)                                                                  AS session_date,
    concat(toString(toMonth(d.date)), '월 ', toString(toDayOfMonth(d.date)), '일')     AS day_label,
    round(d.open_px, 2)                                                               AS open,
    round(d.close_px, 2)                                                              AS close,
    round((d.open_px / d.prev_close - 1) * 100, 2)                                    AS overnight_gap_pct,
    round((d.close_px / d.open_px - 1) * 100, 2)                                      AS intraday_move_pct
FROM
(
    SELECT
        date,
        open_px,
        close_px,
        lagInFrame(close_px, 1) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS prev_close
    FROM
    (
        SELECT
            date,
            any(toFloat64(open))  AS open_px,
            any(toFloat64(close)) AS close_px
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date BETWEEN '2025-06-06' AND '2025-06-13'
        GROUP BY date
    )
) AS d
WHERE d.date >= '2025-06-09'
ORDER BY d.date
직접 실행해 보기

만기일인 6월 13일 SPY는 전일 종가 $603.75에서 $598.5에 개장해 갭이 -0.87%였고, 개장부터 마감까지의 장중 변동은 -0.25%였다. 미국 동부시간 12일 밤 이스라엘의 이란 공습 소식이 전해진 뒤에 열린 개장이었다. 이 갭과 만기 전날 종가의 스트래들 가격 $5.05를 나란히 놓고 보면, 그날 스트래들 매도자의 손익은 개장 순간에 대부분 정해졌고 세션 안에서 할 수 있는 일은 이미 벌어진 갭을 뒤늦게 관리하는 것뿐이었다. 갭이 생기는 구조는 주식이 밤사이 갭을 내는 이유에서 따로 정리했다.

한 주의 예시는 예시일 뿐이다. 2025년 한 해 SPY의 모든 세션에서 오버나이트 갭과 장중 변동의 크기 분포를 비교하면 밤이 보통 얼마나 조용한지, 그리고 얼마나 자주 조용하지 않은지가 나온다.

조회2025년 SPY: 오버나이트 갭과 장중 변동의 크기 분포
bucketovernight_gap_sessionsintraday_move_sessionsovernight_gap_share_pctintraday_move_share_pct
0.25% 미만1177846.831.2
0.25~0.50%616024.424
0.50~1.00%417916.431.6
1.00% 이상313312.413.2
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    bucket,
    overnight_gap_sessions,
    intraday_move_sessions,
    round(overnight_gap_sessions * 100 / sum(overnight_gap_sessions) OVER (), 1) AS overnight_gap_share_pct,
    round(intraday_move_sessions * 100 / sum(intraday_move_sessions) OVER (), 1) AS intraday_move_share_pct
FROM
(
    SELECT
        multiIf(move_pct < 0.25, '0.25% 미만',
                move_pct < 0.50, '0.25~0.50%',
                move_pct < 1.00, '0.50~1.00%',
                '1.00% 이상')                                                    AS bucket,
        multiIf(move_pct < 0.25, 1, move_pct < 0.50, 2, move_pct < 1.00, 3, 4)   AS bucket_order,
        countIf(kind = 'overnight_gap')                                          AS overnight_gap_sessions,
        countIf(kind = 'intraday_move')                                          AS intraday_move_sessions
    FROM
    (
        SELECT
            date,
            abs((open_px / prev_close - 1) * 100) AS overnight_gap,
            abs((close_px / open_px - 1) * 100)   AS intraday_move
        FROM
        (
            SELECT
                date,
                open_px,
                close_px,
                lagInFrame(close_px, 1) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS prev_close
            FROM
            (
                SELECT
                    date,
                    any(toFloat64(open))  AS open_px,
                    any(toFloat64(close)) AS close_px
                FROM global_markets.stocks_daily_aggs
                WHERE ticker = 'SPY'
                  AND date BETWEEN '2024-12-31' AND '2025-12-31'
                GROUP BY date
            )
        )
        WHERE date >= '2025-01-01'
    )
    ARRAY JOIN
        ['overnight_gap', 'intraday_move'] AS kind,
        [overnight_gap, intraday_move]     AS move_pct
    GROUP BY bucket, bucket_order
)
ORDER BY bucket_order
직접 실행해 보기

2025년 SPY의 오버나이트 갭은 전체 세션의 46.8%에서 0.25% 미만이었다. 갭이 1% 이상 벌어진 세션은 31일(12.4%), 개장 후 마감까지 장중 변동이 1% 이상이었던 세션은 33일(13.2%)이다. 대부분의 밤은 조용하다. 그런데 1DTE 포지션이 상대하는 것은 분포의 꼬리이고, 평균은 꼬리를 설명해 주지 않는다. 금요일 만기 계약을 목요일에 여는 1DTE는 하룻밤이지만, 월요일 만기 계약을 금요일에 열면 사흘 밤을 통과한다. 그 셈법은 세타는 주말에도 줄어드는가에서 다뤘다.

개인투자자는 0DTE에서 돈을 벌고 있나: 연구 결과

뮌스터대학교의 Heiner Beckmeyer, Nicole Branger, Leander Gayda는 미국 S&P 500 옵션 시장에서 개인투자자 주문을 식별해 0DTE 거래의 손익을 추적했다. Lancaster University의 FoFI 2024 컨퍼런스에 게재된 2023년 12월 15일 판의 초록은 이렇게 적는다.

"We use recent exchange-related developments to identify option trades that originate from retail investors, and find that more than 75% of their trades in S&P 500 options today are in 0DTE contracts. While retail investors benefit from significant price improvements in the form of lower effective spreads, they experience large losses on average: between February 2021 and September 2023, retail investors lost $241,000 on an average day; since the introduction of a daily expiration calendar in May of 2022, this number has grown to average losses of $350,000 per day."

Beckmeyer, Branger, Gayda, Retail Traders Love 0DTE Options... But Should They?, working paper, 2023년 12월 15일 판 (Lancaster FoFI 2024 게재본)

개인투자자의 S&P 500 옵션 거래 중 75% 이상이 0DTE이고, 2021년 2월부터 2023년 9월까지 하루 평균 24만 1천 달러를 잃었으며, 2022년 5월 일별 만기 도입 이후에는 하루 평균 35만 달러로 늘었다는 내용이다. 논문은 손실이 단일 종목(single-leg) 거래, 프리미엄을 미리 내고 사는 거래, 내재변동성이 높은 옵션에 몰려 있고, 멀티레그 거래와 변동성·점프 리스크의 보상을 취하는 거래는 상대적으로 수익성이 높다고 덧붙인다. 이 결과는 미국 개인투자자 전체의 합산이지 개별 트레이더의 기대값이 아니고, 1DTE 포지션을 따로 떼어 측정한 것도 아니다. 사람들이 실제로 0DTE를 어떻게 거래하는지는 0DTE를 거래하는 방식들에 정리했다.

한국 시간으로 보면 1DTE는 밤, 0DTE는 새벽

미국 정규장은 동부시간 09:30~16:00이다. 미국 서머타임 기간(2026년은 3월 8일부터 11월 1일까지)에는 한국 시간 22:30~05:00, 겨울에는 23:30~06:00이다. SPY와 QQQ 옵션은 주식보다 15분 늦은 16:15(동부시간)까지 거래되므로 서머타임 기준 05:15까지다. 이 시차가 1DTE와 0DTE의 체감을 뒤집는다. 한국 트레이더가 1DTE 포지션을 여는 시각은 늦은 밤이고, 그 포지션이 0DTE로 살아가는 마지막 세션은 다음 날 밤 10시 반부터 새벽 5시까지다. 반대로 미국 시장이 닫혀 있는 "밤"은 한국의 낮이다. 갭을 만드는 뉴스를 실시간으로 보면서 출근할 수는 있지만, 시장이 닫혀 있으니 보기만 할 수 있다. 세션별 시각의 세부는 0DTE 옵션은 언제 거래되나를 참고하면 된다.

국내 증권사와 세금: 미국 옵션을 거래할 때

증권사. 2026년 9월 집필 시점에 미국 상장 주식·ETF 옵션 중개 서비스를 확인한 곳은 키움증권(2023년 9월 미국주식옵션 서비스 개시, 영웅문 Global), 삼성증권과 삼성선물(미국주식옵션), 한국투자증권(해외옵션 내 미국 개별주식옵션), KB증권(해외선물옵션 내 미국주식옵션), 토스증권(2025년 11월 미국 주식옵션 출시)이다. 키움증권의 거래가능 종목 안내에는 SPY와 QQQ가 올라 있지만, SPY와 QQQ 옵션이 거래가능 종목에 들어 있는지는 증권사마다 다르다. 삼성선물은 2024년 12월부터 SPXW(S&P 500)와 RUTW(러셀 2000) 지수 제로데이 옵션도 중개하는데, 출시 공지 기준으로 신규 매도 주문은 받지 않고 매수와 청산만 가능했다. SPXW는 현금결제 유럽형 지수옵션이라 SPY 옵션과 달리 만기 배정으로 ETF 주식을 받거나 넘길 일이 없다(현금결제와 실물인수도의 차이). 거래 가능 종목, 매도(네이키드 매도) 허용 여부, 계약당 수수료, 실시간 시세 조건은 증권사마다 다르고 수시로 바뀌므로 각 사의 거래가능 종목 안내를 직접 확인해야 한다.

세금. 미국 거래소에 상장된 옵션은 세법상 해외 장내파생상품이라, 매매차익은 파생상품 양도소득으로 분류된다. 국세청 안내 기준으로 파생상품 양도소득세의 기본세율은 20%이지만 2018년 4월 1일 이후 양도분부터 10%의 탄력세율이 적용되고, 여기에 지방소득세(양도소득세의 10%)가 붙어 실제 부담은 11%다. 기본공제는 국내와 국외 파생상품 양도소득을 통산한 뒤 연 250만원이고, 신고는 다음 해 5월 1일부터 31일까지 하는 확정신고다. 코스피200 옵션 손익과 미국 옵션 손익은 서로 통산되지만, 해외주식 양도소득(세율 22%, 별도 250만원 공제)과는 통산되지 않는다. 세율과 공제는 세법 개정으로 바뀔 수 있으니 신고 전에 국세청 안내로 다시 확인하는 편이 안전하다.

국내판 0DTE: 코스피200 위클리옵션

한국거래소(KRX)의 코스피200 위클리옵션은 목요일 만기 상품이 2019년 9월 23일, 월요일 만기 상품이 2023년 7월 31일 상장됐다. 집필 시점 기준 만기 요일은 월요일과 목요일 두 가지다. 월물 옵션의 최종거래일(둘째 목요일)이 있는 주에는 목요일 만기 위클리가 상장되지 않고 월요일 만기만 상장된다. 유럽형이라 만기일에만 권리행사가 가능하고 현금결제다. 한국판 1DTE는 수요일 종가에 목요일 만기 위클리를 들고 넘기는 포지션이고, 목요일 아침 08:45 개장과 함께 0DTE가 된다. 만기일 당일 종목은 15:20에 거래를 마친다. 미국 옵션과 다르게 한국 트레이더에게는 낮 시간대에 열리는 0DTE이고, 갭 구간이 한국의 밤이라는 점에서 체감 리스크의 배치가 정확히 반대다. KRX는 2025년 7월 설명회 자료에서 시장참가자들이 화·수·금 만기 다양화를 요청하고 있다고 적었으니, 만기 요일은 거래 전 KRX 상품안내에서 다시 확인하는 것이 좋다.

데이터 노트
  • 등가격 계약은 해당 날짜 종가 기준으로 행사가와 기초자산 종가의 비율이 1에 가장 가까운, 그날 체결이 있고 내재변동성 계산이 수렴한 콜을 골랐다. 스트래들의 풋은 같은 행사가, 같은 만기의 계약이다.
  • "1% 변동당 델타 변화"는 감마에 기초자산 가격의 1%를 곱한 근사값이고, "세타의 프리미엄 대비 비율"은 모델 세타(하루 단위, 음수)의 부호를 뒤집어 옵션 종가로 나눈 값이다.
  • 30분 궤적은 옵션 코드 끝에서 아홉 번째 문자(C 또는 P)로 콜과 풋을 구분했고, 각 구간의 마지막 1분봉 종가를 썼다. 두 종목 모두 체결이 있는 구간만 남겼다.
  • 갭 분포는 2025년의 각 세션을 오버나이트 갭(시가 대 전일 종가)과 장중 변동(종가 대 시가)으로 한 번씩 세었다.

FAQ

1DTE 옵션은 0DTE보다 안전한가요?

같은 등가격 옵션이라면 만기 하루 전 계약은 이미 감마와 세타 곡선의 가장 가파른 구간에 있고, 여기에 시장이 닫힌 밤의 갭까지 더해집니다. 0DTE는 장중 변동만 상대하고 1DTE는 장중 변동에 밤의 갭을 얹어 상대하므로, 리스크의 종류가 다를 뿐 한쪽이 순한 버전은 아닙니다.

0DTE 옵션은 한국 시간으로 언제 거래되나요?

미국 정규장은 서머타임 기간(2026년 3월 8일부터 11월 1일까지)에 한국 시간 22:30~05:00, 겨울에는 23:30~06:00입니다. SPY와 QQQ 옵션은 주식 마감 뒤 15분 더 거래되므로 서머타임 기준 05:15까지 체결됩니다.

미국 옵션 수익에는 세금이 어떻게 붙나요?

미국 상장 옵션은 해외 장내파생상품이라 파생상품 양도소득세 대상입니다. 국세청 안내 기준으로 탄력세율 10%에 지방소득세 1%를 더한 11%이고, 국내외 파생상품 손익을 통산한 뒤 연 250만원을 기본공제하며 다음 해 5월에 확정신고합니다.

코스피200 위클리옵션 만기는 무슨 요일인가요?

집필 시점 기준 월요일 만기와 목요일 만기 두 종류가 상장돼 있습니다. 월물 옵션의 최종거래일인 둘째 목요일이 있는 주에는 목요일 만기 위클리가 상장되지 않고 월요일 만기만 상장됩니다.

1DTE 포지션의 세타는 밤사이에도 줄어드나요?

가격 모델의 세타는 달력 시간을 따라 계산되므로 밤사이에도 시간가치는 이론적으로 줄어듭니다. 다만 다음 날 시가는 세타만이 아니라 밤사이 쌓인 뉴스와 갭을 함께 반영하므로, 1DTE 매도자가 받는 밤사이 세타는 그 갭을 감수한 대가로 읽는 편이 정확합니다.


이 글의 모든 패널은 각 패널 아래의 SQL을 펼쳐 그대로 볼 수 있다. 다른 날짜나 다른 기초자산으로 같은 질문을 던져 보려면 Strasmore 터미널에 한국어로 물어보면 된다.

#0dte#1dte#options#theta#gamma#korea