Strasmore Research
심층 분석 Matt Connor작성자 Matt Connor

워시 세일 규정과 옵션 61일 기간 계산법

워시 세일 규정은 매도 전후 30일을 포함한 61일간 적용됩니다. 옵션 거래 시 발생하는 손실 이연과 1099-B 보고서의 차이, IRA 계좌에서의 손실 소멸 문제를 설명합니다. 대체 자산으로 간주되는 옵션의 취득원가 가산 원리를 이해하여 세무 리스크를 관리하십시오.

워시 세일(wash sale, 손실 회피 거래) 규정은 증권을 손실 상태에서 매도한 후 61일 이내(매도 전 30일, 매도 당일, 매도 후 30일)에 실질적으로 동일한 증권을 재매수할 경우 자본 손실을 인정하지 않습니다. 옵션은 이 규정 내에서 두 가지 방식으로 작용합니다. 주식 손실을 무효화하는 대체 자산이 되기도 하고, 옵션 자체의 손실 포지션이 되기도 합니다. 과세 계좌에서 부인된 손실은 소멸하지 않습니다. 해당 손실은 대체 포지션의 취득원가(cost basis)에 가산되어 이연됩니다.

이 페이지는 관련 메커니즘을 설명합니다. 세무 조언이 아닙니다.

워시 세일 기간이 30일이 아닌 61일인 이유

기간을 합산하면 매도 전 30일, 매도 당일, 매도 후 30일을 더해 총 61역일(calendar days)이 됩니다. 이는 거래일이 아닌 역일 기준이며, 주말과 시장 휴장일을 모두 포함하여 계산합니다. 아래 패널은 매월 마지막 거래일을 기준으로 해당 월의 61일 기간 내에 포함된 거래일 수를 산출합니다.

조회61일 워시 세일(wash sale) 기간 내 포함되는 거래일 수
모든 수치 뒤에 숨겨진 정확한 SQL
WITH sessions AS
(
    SELECT DISTINCT date AS d
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2023-11-01'
),
month_ends AS
(
    SELECT
        toStartOfMonth(d) AS m,
        max(d)            AS anchor
    FROM sessions
    WHERE d >= '2024-01-01'
      AND d <  '2026-07-01'
    GROUP BY m
)
SELECT
    toString(me.m)                                            AS month,
    toString(me.anchor)                                       AS last_session,
    countIf(s.d >= me.anchor - 30 AND s.d <= me.anchor + 30)   AS sessions_in_window,
    61                                                        AS calendar_days_in_window
FROM month_ends AS me
CROSS JOIN sessions AS s
GROUP BY me.m, me.anchor
ORDER BY me.m
Run this yourself

직선은 규정상의 61역일을 나타냅니다. 아래쪽 선은 그 기간 중 시장이 열린 거래일 수입니다. 패널의 첫 번째 달은 기간 내에 42개의 거래일이 포함되어 있고, 가장 최근 달은 42개가 포함되어 있으며, 패널은 총 30개월의 기준일을 다룹니다.

사람들이 흔히 간과하는 부분은 기간의 앞쪽 절반입니다. 대부분 매도 시점부터 날짜를 세어 31일째 되는 날에 표시를 합니다. 그러나 매도 30일도 동일하게 계산됩니다. 예를 들어 10일에 평균 단가를 낮추기 위해 주식을 100주 추가 매수하고, 20일에 기존 보유분을 손실 상태로 매도했다면, 이미 매수한 주식이 기간 내에 포함됩니다. 이후에 아무것도 매수하지 않았더라도 매도한 주식의 손실은 부인됩니다. 이때 계좌에서 어떤 주식 묶음(lot)이 나가는지가 매우 중요하며, 이는 거래 시점에 결정됩니다. 취득원가 산정 방식이 주식 묶음을 선택하는 방법을 참조하십시오.

12월의 문제

손실 확정(loss harvesting)은 연말 마지막 몇 주에 집중되는데, 이때 기간 계산이 가장 까다롭게 적용됩니다. 연말 마지막 거래일에 매도하면 재매수 금지 기간이 1월까지 이어지며, 1월에 매수할 경우 전년도 세금 신고서에 이미 보고된 손실이 부인될 수 있습니다.

조회12월의 모든 거래일과 해당 워시 세일 기간이 새해로 이어지는 범위
모든 수치 뒤에 숨겨진 정확한 SQL
WITH sessions AS
(
    SELECT DISTINCT date AS d
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2025-10-20'
      AND date <  '2026-02-10'
)
SELECT
    toString(sale.d)                                                    AS session_date,
    concat(formatDateTime(sale.d, '%b'), ' ', toString(toDayOfMonth(sale.d))) AS sold_on,
    countIf(s.d >= sale.d - 30 AND s.d <= sale.d + 30)                   AS sessions_in_window,
    greatest(dateDiff('day', toDate('2025-12-31'), sale.d + 30), 0)      AS window_days_in_new_year
FROM
(
    SELECT d
    FROM sessions
    WHERE d >= '2025-12-01'
      AND d <  '2026-01-01'
) AS sale
CROSS JOIN sessions AS s
GROUP BY sale.d
ORDER BY sale.d
Run this yourself

각 행은 2025년 12월의 거래일을 기준으로 합니다. Dec 1에 매도할 경우, 기간 중 0가 새해에 해당합니다. Dec 31에 매도할 경우 30가 새해에 해당하며, 해당 기간은 총 42거래일에 걸쳐 있습니다. 12월 명세서에는 이에 대한 별도의 표시가 없습니다. 부인된 손실은 1월에 매수한 주식에 귀속되며, 해당 포지션이 최종적으로 청산될 때(다음 해 혹은 수년 후가 될 수 있음)에야 공제가 가능해집니다.

옵션이 워시 세일 규정에 포함되는 경우

세법 제1091조는 주식이나 증권뿐만 아니라 실질적으로 동일한 주식을 취득하기 위한 계약이나 옵션도 포함합니다. 의회는 1988년 이를 확대하여 주식 매수 또는 매도를 위한 계약과 옵션까지 포함시켰습니다. 거래 화면에서는 다음 네 가지 사항이 발생합니다.

  • 손실 상태로 매도한 주식의 콜옵션을 매수하는 것은 그 자체로 워시 세일에 해당합니다. 콜옵션은 주식을 취득하기 위한 계약이기 때문입니다. 옵션을 행사하지 않더라도, 행사가격(strike price)이 아무리 멀리 떨어져 있어도 규정 적용을 피할 수 없습니다.
  • 손실 상태로 콜옵션을 매도하고 기간 내에 기초자산을 매수하는 경우도 마찬가지입니다. 이 경우 판단 기준은 공식적인 면제 조항이 아니라 '실질적으로 동일한' 표준에 따라 결정됩니다.
  • 행사 가능성이 매우 높은 딥 인더머니(deep in the money) 풋옵션을 매도하는 것은 주식을 매수하는 것과 유사하게 취급될 수 있습니다.
  • 옵션에서 발생한 손실은 증권 손실로 간주되며, 규정은 옵션을 옵션으로 대체하는 경우에도 적용됩니다.

특정 계약이 얼마나 많은 주식 노출을 가지는지는 측정 가능합니다. 델타(delta)는 기초자산 가격이 1달러 변동할 때 옵션 가격이 변하는 정도를 나타내며, 여기에 100을 곱하면 한 계약이 대체하는 주식 노출 규모를 근사할 수 있습니다. 아래 패널은 2026년 6월 만기인 AAPL 계약을 행사가격과 주가 위치에 따라 5개의 구간으로 나누고 각 구간의 평균 델타를 산출합니다.

조회행사가 거리별 평균 콜 및 풋 델타(delta), AAPL, 만기까지 20~45일, 2026년 6월
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    bucket                                 AS strike_vs_spot,
    round(avgIf(delta, delta > 0), 3)      AS call_delta,
    round(avgIf(abs(delta), delta < 0), 3) AS put_delta_abs,
    count()                                AS contract_count
FROM
(
    SELECT
        delta,
        toFloat64(strike_price) / toFloat64(underlying_close) AS mny,
        multiIf(
            mny < 0.85, 'strike 15%+ below spot',
            mny < 0.95, 'strike 5-15% below spot',
            mny < 1.05, 'strike within 5% of spot',
            mny < 1.15, 'strike 5-15% above spot',
                        'strike 15%+ above spot'
        ) AS bucket
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date >= '2026-06-01'
      AND date <  '2026-07-01'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND underlying_close > 0
)
GROUP BY bucket
HAVING countIf(delta > 0) > 0
   AND countIf(delta < 0) > 0
ORDER BY min(mny)
Run this yourself

왼쪽에서 오른쪽으로 읽으십시오. 주가보다 훨씬 낮은 행사가격의 콜옵션은 평균 델타가 0.937로, 1에 가까워 주식과 거의 1대 1로 연동됩니다. 주가보다 훨씬 높은 행사가격의 콜옵션은 평균 0.017입니다. 풋옵션은 반대로 작용합니다. 주가보다 훨씬 높은 행사가격의 풋옵션은 절대 델타 평균이 0.888이며, 훨씬 낮은 행사가격의 풋옵션은 평균 0.015입니다. 오른쪽 끝은 딥 인더머니 풋옵션으로, 이를 매도한 사람은 주식 롱 포지션과 유사한 상태를 유지하게 됩니다. 행사가격과 만기에 관한 용어는 옵션 체인 읽는 법에서 시작하십시오.

국세청(IRS)은 '충분히 깊은(deep enough)'에 대한 수치적 기준을 제시한 적이 없습니다. 실무적으로는 풋옵션을 매도하는 시점에 옵션이 행사되지 않고 만료될 가능성이 실질적으로 존재하는지를 따집니다. 패널 오른쪽 끝에 있는 풋옵션과 중간에 있는 풋옵션은 동일한 성격의 계약이 아닙니다.

손실 중인 롱 콜옵션의 롤오버

옵션과 관련하여 가장 흔한 질문이지만 가장 불확실한 답변을 가진 문제입니다. 콜옵션을 보유 중인데 가치가 하락하여 이를 매도하고, 동일한 기초자산에 대해 다른 행사가격이나 더 먼 만기일의 콜옵션을 매수하는 경우입니다. 새 계약은 이전 계약과 실질적으로 동일한가요?

재무부는 어떤 옵션이 실질적으로 동일한지에 대한 규정을 발표하지 않았습니다. 이것이 현재의 솔직한 상태입니다. 실무적으로는 보고 관행이 존재합니다. 증권사는 계약 기호(contract symbol)를 기준으로 옵션 포지션을 매칭하므로, 다른 행사가격이나 만기일로 롤오버하는 경우 일반적으로 1099-B 보고서에 워시 세일로 표시되지 않습니다. 그러나 관행이 곧 규정은 아닙니다. 법적 기준은 대체 포지션이 동일한 상승 및 하락 움직임에 노출되는지를 묻는데, 동일 만기에 행사가격만 한 단계 차이 나는 콜옵션과 6개월 뒤 만기인 외가격(out of the money) 콜옵션은 다르게 해석될 수 있습니다.

두 가지 해석이 공존합니다. 신중한 입장은 근접 행사가격 및 근접 만기 대체는 노출이 유지된다고 봅니다. 허용적인 입장은 계약 조건이 변경되면 새로운 증권으로 간주합니다. 어느 쪽도 명확한 법적 판례로 확립되지 않았습니다.

61일이 차트에서 보이는 모습

61역일은 거래일로 보기 전까지는 추상적인 개념입니다. 아래 패널은 12월 마지막 거래일에 발생한 손실에 대한 전체 워시 세일 기간인 12월 1일부터 1월 30일까지를 보여줍니다.

조회거래 기록상 61일 워시 세일 전체 기간: AAPL, 2025년 12월 1일 ~ 2026년 1월 30일
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT
    toString(t.date)                              AS session_date,
    round(t.close, 2)                             AS close,
    round(100 * (t.close / a.first_close - 1), 2) AS change_pct
FROM
(
    SELECT
        date,
        toFloat64(any(close)) AS close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'AAPL'
      AND date >= '2025-12-01'
      AND date <= '2026-01-30'
    GROUP BY date
) AS t
CROSS JOIN
(
    SELECT toFloat64(argMin(close, date)) AS first_close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'AAPL'
      AND date >= '2025-12-01'
      AND date <= '2026-01-30'
) AS a
ORDER BY t.date
Run this yourself

이 61역일 동안 AAPL은 42번의 거래일을 가졌습니다. 주가는 기간 시작 시 $283.1에 마감되었고, 기간 종료 시 $259.48로 마감되어 시작점 대비 -8.34% 변동했습니다. 12월 마지막 거래일에 매도하여 손실을 확정하려는 투자자는 이 모든 거래일 동안 실질적으로 동일한 노출을 피해야 했습니다. 이 규정은 세무 결정을 기간 내내 시장 노출 결정으로 변환시킵니다.

1099-B가 아는 것과 모르는 것

증권사는 계좌별, 증권 식별자별(주식은 CUSIP, 옵션은 계약 기호)로 워시 세일을 계산합니다. 이는 증권사 보고 규정에 따른 것이며, 세법이 요구하는 것보다 범위가 좁습니다. 제1091조는 납세자별로 모든 계좌(배우자 계좌 및 본인이 통제하는 법인 포함)에 걸쳐 적용됩니다.

이러한 차이로 인해 투자자들이 당황하는 경우가 많습니다.

  • A 증권사에서 손실 매도 후, B 증권사에서 기간 내 재매수하는 경우: 양쪽 1099-B 모두 워시 세일을 표시하지 않지만, 납세자에게는 워시 세일이 발생한 것입니다.
  • 동일 계좌에서 주식을 손실 매도하고 콜옵션을 매수하는 경우: 두 거래가 매칭되는지는 법규가 아닌 증권사 소프트웨어에 달려 있습니다.
  • 본인 계좌에서 손실 매도 후 배우자 계좌에서 재매수하는 경우: 증권사는 양쪽을 모두 볼 수 없습니다.
  • 손실 중인 콜옵션을 새로운 행사가격으로 롤오버하는 경우: 식별자가 변경되어 보고서에는 깨끗하게 표시되지만, 실질적 동일성 문제는 여전히 남아 있습니다.

1099-B를 확정된 결과가 아닌 입력 자료로 취급하십시오. 펀드도 같은 문제를 안고 있습니다. 동일 지수를 추종하는 두 펀드는 서류상 별개의 증권이기 때문입니다. 뮤추얼 펀드 손실 매도에서 해당 사례를 다룹니다.

다시 돌아오지 않는 손실: IRA 내 재매수

일반적인 워시 세일은 손실의 이연입니다. 부인된 손실은 대체 포지션의 원가에 가산되고, 이전 보유 기간은 새 포지션으로 승계되며, 포지션이 최종 청산될 때 공제가 이루어집니다.

IRA 내에서 대체 자산을 매수하면 이 연결 고리가 끊어집니다. 국세청 판례(Revenue Ruling 2008-5)에 따르면, 과세 계좌에서 손실 매도한 후 기간 내에 IRA나 Roth IRA에서 실질적으로 동일한 주식이나 증권을 매수하면 손실은 부인되며, 원가 조정이 이루어질 곳이 없습니다. 제1091(d)조는 IRA의 원가를 높일 방법을 제공하지 않기 때문입니다. 손실은 이월되지 않고 영구적으로 소멸합니다.

이러한 비대칭성 때문에 IRA는 세금 신고 시점이 아닌 거래 전에 미리 확인해야 할 유일한 사례입니다. 61일 규정이 모두 적용되며, Roth IRA도 일반 IRA와 동일하게 취급됩니다.

보유 기간과 이동하는 손실

손실이 소멸되지 않고 이연될 때 두 가지가 함께 이동합니다. 부인된 손실액은 대체 주식의 원가에 가산됩니다. 매도한 포지션의 보유 기간은 대체 포지션의 보유 기간에 합산되는데, 이로 인해 며칠 보유하지 않은 대체 주식이 서류상 장기 보유로 바뀔 수 있습니다. 보유 기간 계산은 배당금 처리에도 영향을 미칩니다. 적격 배당 보유 기간을 참조하십시오.

한 가지 계약군은 이 체계에서 제외됩니다. 광범위 지수 옵션(Broad based index options)은 연말에 자체 규정에 따라 시가 평가(mark to market)되며 장기/단기 손익이 60/40으로 분할되므로, 연말 손실은 재매수 기간이 아닌 해당 평가에 의해 정산됩니다. 지수 옵션이 60/40으로 과세되는 이유를 참조하십시오.

자주 묻는 질문(FAQ)

워시 세일 기간은 30일인가요, 61일인가요?

61역일입니다. 매도 전 30일, 매도 당일, 매도 후 30일을 포함합니다. 매도 시점부터 앞쪽으로만 계산하면 절반을 놓치게 되며, 손실 매도 전에 이루어진 매수도 이후 매수와 동일하게 대체 자산으로 간주됩니다.

콜옵션을 매수하면 워시 세일이 발생하나요?

네, 손실 상태로 매도한 주식에 대해 기간 내에 콜옵션을 매수하면 발생합니다. 제1091조는 실질적으로 동일한 주식을 취득하기 위한 계약이나 옵션을 포함하며, 옵션을 행사하지 않더라도 워시 세일은 성립합니다.

워시 세일 규정은 서로 다른 증권사 계좌 간에도 적용되나요?

네. 증권사는 계좌별, 증권 식별자별로 워시 세일을 계산하지만, 규정은 납세자 기준으로 모든 계좌(배우자 계좌 포함)에 적용됩니다. 각 증권사에서 받은 1099-B가 깨끗하다고 해서 워시 세일이 없었다는 뜻은 아닙니다.

다른 행사가격의 콜옵션은 매도한 것과 실질적으로 동일한가요?

이에 대한 규정은 없습니다. 재무부는 옵션 간의 실질적 동일성 기준을 정의하지 않았으며, 증권사 보고는 경제적 실질이 아닌 계약 기호로 매칭하므로 롤오버 시 일반적으로 표시되지 않습니다. 법률상의 노출 기준은 보고 관행보다 더 넓습니다.

IRA 내에서 주식을 다시 매수하면 어떻게 되나요?

손실은 부인되며 영구적으로 소멸합니다. Revenue Ruling 2008-5에 따르면 제1091(d)조는 부인된 손실을 IRA 원가에 가산할 방법을 제공하지 않으므로, 일반적인 워시 세일과 달리 나중에 회수할 수 없습니다.

데이터 참고사항

거래일 수는 미국 주식 시장의 정규 거래일을 대변하는 SPY의 일일 기록에서 가져왔습니다. 첫 번째 패널은 매월 마지막 거래일을 기준으로 61역일 내의 모든 거래일을 계산합니다. 12월 패널은 2025년 12월, 테이프 패널은 2025년 12월 1일부터 2026년 1월 30일까지로 고정되어 있어 새로고침되지 않습니다. 델타 패널은 내재 변동성이 수렴하고 거래량이 0이 아닌, 만기 20~45일 남은 2026년 6월 계약만을 평균하여 행사가격별로 분류했습니다. 최신 데이터는 1~2일의 수집 지연이 발생할 수 있으며, 이는 월별 롤링 패널에만 영향을 미칩니다. 이 내용은 세무 조언이 아니며, 실질적 동일성 판단은 세무 전문가가 전체 상황을 검토해야 하는 사실 관계의 문제입니다.


위의 모든 패널은 생성에 사용된 SQL과 함께 제공되므로, 직접 열어서 거래일을 다시 계산해 볼 수 있습니다. 본인의 날짜에 맞춰 61일 기간을 매핑하려면 Strasmore 터미널에서 평이한 영어로 요청하십시오.