Wash sale và quyền chọn: Khung thời gian 61 ngày
Quy tắc wash sale kéo dài 61 ngày, không phải 30 ngày, và áp dụng cho quyền chọn, roll, put deep in the money, khoảng trống 1099-B và khoản lỗ IRA xóa bỏ.
Quy tắc wash sale không cho phép ghi nhận lỗ vốn khi bạn bán một chứng khoán bị lỗ rồi mua một chứng khoán gần như đồng nhất trong khoảng thời gian 61 ngày: 30 ngày trước ngày bán, chính ngày bán và 30 ngày sau đó. Quyền chọn chịu tác động của quy tắc này theo hai cách: có thể là tài sản thay thế khiến khoản lỗ từ cổ phiếu bị loại, hoặc tự tạo ra một vị thế lỗ. Trong tài khoản chịu thuế, khoản lỗ bị loại không mất đi. Khoản này được cộng vào cost basis của vị thế thay thế và được giữ lại ở đó.
Trang này giải thích cơ chế. Đây không phải tư vấn thuế.
Vì sao thời gian wash sale là 61 ngày, không phải 30 ngày
Cộng các phần lại: 30 ngày trước, chính ngày bán và 30 ngày sau tạo thành 61 ngày theo lịch. Đây là ngày theo lịch, không phải ngày giao dịch; việc đếm vẫn tiếp tục qua cuối tuần và ngày nghỉ của thị trường. Biểu đồ dưới đây lấy phiên giao dịch cuối cùng của mỗi tháng làm mốc và đếm số phiên nằm trong khoảng 61 ngày của tháng đó.
Câu lệnh SQL chính xác đằng sau mỗi con số
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Đường nằm ngang là 61 ngày theo lịch của quy tắc. Đường thấp hơn cho biết trong số những ngày đó có bao nhiêu ngày thị trường thực sự mở cửa. Tháng đầu tiên trên biểu đồ có 42 phiên nằm trong khoảng thời gian của nó, tháng gần nhất có 42 phiên, và biểu đồ bao phủ 30 tháng làm mốc.
Một nửa khoảng thời gian thường bị bỏ quên là phần trước ngày bán. Phần lớn chúng ta đếm từ ngày bán trở đi rồi đánh dấu ngày 31 trên lịch. Nhưng 30 ngày trước ngày bán cũng được tính hoàn toàn tương tự. Bạn mua thêm 100 cổ phiếu vào ngày 10 trong lúc bình quân giá giảm, rồi bán lô ban đầu bị lỗ vào ngày 20; giao dịch mua trước đó đã nằm trong khoảng thời gian này. Khoản lỗ của lô đã bán bị loại, dù sau đó bạn không mua thêm gì. Việc lô nào rời khỏi tài khoản có ý nghĩa rất lớn, và đây là lựa chọn được thực hiện ngay khi giao dịch: xem cách các phương pháp cost basis lựa chọn lô.
Vấn đề tháng 12
Hoạt động thu hoạch lỗ thường tập trung vào những tuần cuối năm. Đây là lúc cách tính khoảng thời gian gây tác động rõ nhất. Một giao dịch bán trong phiên cuối cùng của năm có khoảng thời gian mua lại kéo dài sâu sang tháng 1. Ngược lại, một giao dịch mua trong tháng 1 có thể khiến khoản lỗ đã báo cáo trên tờ khai của năm trước bị loại.
Câu lệnh SQL chính xác đằng sau mỗi con số
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.dMỗi dòng là một phiên giao dịch trong tháng 12, được cố định vào tháng 12 năm 2025 để cách tính không thay đổi. Với giao dịch bán vào ngày Dec 1, 0 số ngày trong khoảng thời gian rơi vào năm mới. Với giao dịch bán vào ngày Dec 31, con số này là 30, và toàn bộ khoảng thời gian kéo dài 42 phiên giao dịch. Bảng kê tháng 12 không đánh dấu điều này. Khoản lỗ bị loại được gắn vào số cổ phiếu mua trong tháng 1. Khoản lỗ chỉ được khấu trừ khi vị thế mới đó cuối cùng được đóng, có thể là trong năm sau hoặc vài năm sau.
Quyền chọn được áp dụng vào quy tắc wash sale như thế nào
Section 1091 áp dụng cho cổ phiếu hoặc chứng khoán, đồng thời áp dụng cho hợp đồng hoặc quyền chọn mua cổ phiếu gần như đồng nhất. Năm 1988, Quốc hội mở rộng phạm vi quy định để bao gồm hợp đồng và quyền chọn mua hoặc bán. Tại màn hình giao dịch, điều này dẫn đến bốn điểm:
- Mua call option trên cổ phiếu vừa bán bị lỗ tự nó đã là một wash sale. Call option là hợp đồng mua cổ phiếu. Bạn không nhất thiết phải thực hiện quyền, và không có strike price nào đủ xa để quy tắc bỏ qua giao dịch này.
- Bán call option bị lỗ rồi mua cổ phiếu cơ sở trong khoảng thời gian quy định đặt ra câu hỏi tương tự theo chiều ngược lại. Câu trả lời phụ thuộc vào tiêu chuẩn “gần như đồng nhất”, chứ không dựa trên một safe harbor được công bố.
- Việc bán put option với mức strike price thấp hơn nhiều đến mức khả năng thực hiện quyền trở nên gần như chắc chắn có thể được xem tương tự như mua cổ phiếu.
- Khoản lỗ từ quyền chọn là khoản lỗ từ một chứng khoán, và quy tắc cũng áp dụng khi thay thế quyền chọn bằng một quyền chọn khác.
Có thể đo lường lượng cổ phiếu mà mỗi hợp đồng đại diện. Delta là mức thay đổi giá của quyền chọn khi tài sản cơ sở thay đổi một USD. Nhân delta với 100 sẽ xấp xỉ số cổ phiếu mà một hợp đồng đại diện về mức độ tiếp xúc. Biểu đồ phân loại các hợp đồng AAPL có thời gian đến ngày đáo hạn từ 20 đến 45 ngày, đến tháng 6 năm 2026, thành 5 nhóm dựa trên vị trí của strike price so với cổ phiếu, rồi tính delta trung bình cho từng nhóm.
Câu lệnh SQL chính xác đằng sau mỗi con số
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)Đọc biểu đồ từ trái sang phải. Các call option có strike price thấp hơn nhiều so với cổ phiếu có delta trung bình 0.937, gần bằng một, nên hợp đồng biến động gần như từng USD theo cổ phiếu. Các call option có strike price cao hơn nhiều có delta trung bình 0.017. Put option có chiều ngược lại: các put option có strike price cao hơn nhiều so với cổ phiếu có delta tuyệt đối trung bình 0.888, còn các put option có strike price thấp hơn nhiều có delta trung bình 0.015. Phía ngoài cùng bên phải là put option deep in the money, tức hợp đồng mà người bán đang nắm mức vị thế gần với vị thế mua cổ phiếu. Để hiểu các thuật ngữ về strike price và ngày đáo hạn, hãy bắt đầu với cách đọc option chain.
IRS chưa bao giờ đưa ra một con số cụ thể cho khái niệm “đủ sâu”. Tiêu chuẩn thực tế mà các chuyên gia thường áp dụng là xem xét tại thời điểm bán put option liệu có khả năng đáng kể quyền chọn sẽ đáo hạn mà không được thực hiện hay không. Một put option nằm ở ngoài cùng bên phải của biểu đồ và một put option nằm ở giữa biểu đồ không phải là cùng một dạng quyền lợi.
Cuộn tiếp một long call đang bị lỗ
Câu hỏi phổ biến nhất liên quan đến quyền chọn lại có câu trả lời ít rõ ràng nhất. Bạn sở hữu một call option, quyền chọn này mất giá, rồi bạn bán nó và mua một call option khác trên cùng tài sản cơ sở với strike price khác hoặc ngày đáo hạn muộn hơn. Hợp đồng mới có gần như đồng nhất với hợp đồng cũ hay không?
Bộ Tài chính chưa ban hành quy định xác định khi nào một quyền chọn được xem là gần như đồng nhất với một quyền chọn khác. Đó là thực trạng cần được thừa nhận. Trong thực tế tồn tại một thông lệ báo cáo: các công ty môi giới đối chiếu vị thế quyền chọn theo mã hợp đồng. Vì vậy, việc cuộn sang strike price khác hoặc ngày đáo hạn khác thường đi qua mẫu 1099-B mà không bị đánh dấu. Nhưng thông lệ không phải là phán quyết pháp lý. Tiêu chuẩn trong luật đặt câu hỏi liệu vị thế thay thế có khiến bạn tiếp tục chịu cùng chiều tăng giảm hay không. Một call option cách một strike price với cùng ngày đáo hạn sẽ cho câu trả lời khác với một call option còn sáu tháng mới đáo hạn và ở trạng thái out of the money rất xa.
Có hai cách diễn giải cùng tồn tại. Cách thận trọng xem một vị thế thay thế có strike price và ngày đáo hạn gần là có thể bị áp dụng quy tắc. Cách diễn giải rộng hơn xem mọi thay đổi về điều khoản hợp đồng là tạo ra một chứng khoán mới. Chưa cách nào được kiểm chứng để hình thành một ranh giới rõ ràng.
61 ngày thể hiện như thế nào trên diễn biến giao dịch
61 ngày theo lịch vẫn chỉ là một khái niệm trừu tượng cho đến khi bạn nhìn nó qua các phiên giao dịch. Biểu đồ dưới đây mô tả chính xác một khoảng thời gian wash sale, từ ngày 1 tháng 12 đến ngày 30 tháng 1, tức toàn bộ khoảng thời gian áp dụng cho khoản lỗ phát sinh khi bán trong phiên cuối cùng của tháng 12.
Câu lệnh SQL chính xác đằng sau mỗi con số
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.date61 ngày theo lịch đó có 42 phiên AAPL. Cổ phiếu bắt đầu khoảng thời gian ở mức đóng cửa $283.1 và kết thúc ở mức $259.48, thay đổi -8.34% so với điểm bắt đầu. Người bán trong phiên cuối cùng của tháng 12 và muốn ghi nhận khoản lỗ phải tránh mức độ tiếp xúc với chứng khoán gần như đồng nhất trong toàn bộ các phiên này. Quy tắc biến một quyết định thuế thành quyết định về mức độ tiếp xúc thị trường trong suốt khoảng thời gian đó.
1099-B biết gì và không thể biết gì
Các công ty môi giới tính wash sale riêng cho từng tài khoản và từng mã nhận diện chứng khoán: CUSIP đối với cổ phiếu và mã hợp đồng đối với quyền chọn. Đây là phạm vi mà quy định báo cáo của môi giới yêu cầu, nhưng hẹp hơn phạm vi của luật mà người nộp thuế phải tuân thủ trên tờ khai. Section 1091 áp dụng cho từng người nộp thuế trên tất cả tài khoản, bao gồm tài khoản của vợ hoặc chồng và các pháp nhân bạn kiểm soát.
Khoảng cách này tạo ra phần lớn những bất ngờ mà độc giả phản ánh:
- Bán bị lỗ tại môi giới A rồi mua lại trong khoảng thời gian quy định tại môi giới B. Không mẫu 1099-B nào đánh dấu wash sale. Nhưng người nộp thuế vẫn có một wash sale.
- Bán cổ phiếu bị lỗ rồi mua call option trên cổ phiếu đó trong cùng tài khoản. Việc hai giao dịch có được đối chiếu hay không phụ thuộc vào phần mềm của môi giới, không phụ thuộc vào điều luật.
- Bán bị lỗ trong tài khoản của bạn rồi mua lại trong tài khoản của vợ hoặc chồng. Không môi giới nào nhìn thấy cả hai phía.
- Cuộn một call option đang lỗ sang strike price mới. Mã nhận diện đã thay đổi nên biểu mẫu được trả về mà không có cảnh báo. Câu hỏi về việc hai hợp đồng có gần như đồng nhất hay không vẫn chưa được giải quyết.
Hãy xem 1099-B là dữ liệu đầu vào, không phải kết luận. Các quỹ cũng tạo ra vấn đề tương tự dưới một hình thức khác, vì hai quỹ cùng theo dõi một chỉ số vẫn là hai chứng khoán riêng biệt trên giấy tờ: bán mutual fund bị lỗ giải thích trường hợp này.
Trường hợp không bao giờ được hoàn lại: mua lại trong IRA
Mọi wash sale thông thường đều chỉ là việc hoãn ghi nhận. Khoản lỗ bị loại được cộng vào cost basis của vị thế thay thế, thời gian nắm giữ của vị thế cũ được cộng vào thời gian nắm giữ của vị thế mới, và khoản khấu trừ xuất hiện sau đó khi vị thế được đóng hoàn toàn.
Mua tài sản thay thế trong IRA phá vỡ chuỗi này. Revenue Ruling 2008-5 quy định rằng khoản lỗ từ giao dịch bán trong tài khoản chịu thuế sẽ bị loại khi cổ phiếu hoặc chứng khoán gần như đồng nhất được mua trong IRA hoặc Roth IRA của bạn trong khoảng thời gian quy định. Việc điều chỉnh cost basis không có nơi để áp dụng: section 1091(d) không cho phép tăng cost basis của IRA. Không có khoản nào được chuyển tiếp. Khoản khấu trừ mất vĩnh viễn.
Sự bất đối xứng này khiến IRA là trường hợp duy nhất cần được lập bản đồ trước khi giao dịch, thay vì chờ đến thời điểm khai thuế. Toàn bộ 61 ngày đều được áp dụng, và Roth IRA được đối xử giống IRA truyền thống.
Thời gian nắm giữ và khoản lỗ được chuyển đi
Khi khoản lỗ được hoãn thay vì bị xóa, có hai yếu tố đi cùng khoản lỗ. Khoản lỗ bị loại được cộng vào cost basis của số cổ phiếu thay thế. Thời gian nắm giữ của vị thế đã bán được cộng vào thời gian nắm giữ của vị thế thay thế. Vì vậy, một vị thế thay thế mới tồn tại vài ngày có thể được xem là vị thế dài hạn trên giấy tờ. Cách tính thời gian nắm giữ cũng chi phối cách xử lý cổ tức: xem thời gian nắm giữ để hưởng cổ tức đủ điều kiện.
Một nhóm hợp đồng nằm ngoài khuôn khổ này. Quyền chọn chỉ số diện rộng được đánh dấu theo giá thị trường vào cuối năm theo một cơ chế riêng và được phân chia theo tỷ lệ 60/40 giữa dài hạn và ngắn hạn. Vì vậy, khoản lỗ cuối năm của các quyền chọn này được quyết toán thông qua việc đánh dấu theo giá thị trường, thay vì thông qua khoảng thời gian mua lại: vì sao quyền chọn chỉ số bị đánh thuế theo tỷ lệ 60/40.
Câu hỏi thường gặp
Khoảng thời gian wash sale là 30 ngày hay 61 ngày?
Là 61 ngày theo lịch. Quy tắc bao gồm 30 ngày trước ngày bán, chính ngày bán và 30 ngày sau đó. Chỉ đếm từ ngày bán trở đi sẽ bỏ sót một nửa khoảng thời gian. Giao dịch mua trước ngày bán bị lỗ được xem là giao dịch thay thế giống như giao dịch mua sau đó.
Mua call option có tạo ra wash sale không?
Có, nếu call option được mua trong khoảng thời gian quy định đối với cổ phiếu đã bán bị lỗ. Section 1091 áp dụng cho hợp đồng hoặc quyền chọn mua cổ phiếu gần như đồng nhất. Wash sale vẫn tồn tại ngay cả khi call option không bao giờ được thực hiện.
Quy tắc wash sale có áp dụng giữa hai tài khoản môi giới khác nhau không?
Có. Các công ty môi giới tính wash sale theo từng tài khoản và từng mã nhận diện chứng khoán. Trong khi đó, quy tắc áp dụng cho người nộp thuế trên tất cả tài khoản, bao gồm tài khoản của vợ hoặc chồng. Việc mỗi môi giới cung cấp một mẫu 1099-B không có cảnh báo không có nghĩa là không xảy ra wash sale.
Call option có strike price khác có gần như đồng nhất với call option tôi đã bán không?
Không có quy định nào trả lời câu hỏi này. Bộ Tài chính chưa xác định khi nào một quyền chọn được xem là gần như đồng nhất với một quyền chọn khác. Các công ty môi giới đối chiếu hợp đồng theo mã thay vì theo đặc điểm kinh tế, nên giao dịch cuộn thường xuất hiện mà không bị đánh dấu. Tiêu chuẩn về mức độ tiếp xúc trong luật rộng hơn thông lệ báo cáo.
Điều gì xảy ra nếu tôi mua lại cổ phiếu trong IRA?
Khoản lỗ bị loại và mất vĩnh viễn. Revenue Ruling 2008-5 quy định section 1091(d) không có cơ chế cộng khoản lỗ bị loại vào cost basis của IRA. Vì vậy, không giống wash sale thông thường, khoản lỗ không được khôi phục về sau.
Ghi chú dữ liệu
Số phiên được lấy từ dữ liệu hằng ngày của SPY, đại diện cho các ngày thị trường cổ phiếu Mỹ có phiên giao dịch thông thường. Biểu đồ đầu tiên lấy phiên cuối cùng của mỗi tháng làm mốc và đếm mọi phiên nằm trong 61 ngày theo lịch xung quanh mốc đó. Biểu đồ tháng 12 được cố định vào tháng 12 năm 2025. Biểu đồ diễn biến giao dịch được cố định trong khoảng từ ngày 1 tháng 12 năm 2025 đến ngày 30 tháng 1 năm 2026, nên cả hai không được cập nhật. Biểu đồ delta chỉ sử dụng các hợp đồng có implied volatility hội tụ và khối lượng khác 0, thời gian đến ngày đáo hạn từ 20 đến 45 ngày, lấy trung bình qua tháng 6 năm 2026. Strike price được phân nhóm dựa trên giá đóng cửa của tài sản cơ sở trong ngày đó. Dữ liệu ở phần đầu có độ trễ nhập liệu từ một đến hai ngày, chỉ ảnh hưởng đến biểu đồ theo dõi hàng tháng. Không nội dung nào trong đây là tư vấn thuế. Việc xác định hai tài sản có gần như đồng nhất hay không phụ thuộc vào tình tiết cụ thể và cần chuyên gia thuế xem xét đầy đủ.
Mỗi biểu đồ trên đều đi kèm SQL đã tạo ra dữ liệu, nên bạn có thể mở biểu đồ và tự đếm lại số phiên. Để lập bản đồ khoảng thời gian 61 ngày cho các mốc riêng của bạn, hãy yêu cầu bằng tiếng Anh thông thường trên terminal Strasmore.