Strasmore Research

Wash sale rule e opzioni: la finestra di 61 giorni

La wash sale rule dura 61 giorni, non 30, e include le opzioni: call, roll, put deep in the money, gap del 1099-B e perdite cancellate da un’IRA.

La wash sale rule disconosce una minusvalenza quando vendi un titolo in perdita e acquisti un titolo sostanzialmente identico entro una finestra di 61 giorni: i 30 giorni precedenti alla vendita, il giorno della vendita e i 30 giorni successivi. Le opzioni rientrano nella regola sotto due profili: come sostituzione che invalida la perdita sul titolo e come posizione in perdita autonoma. In un conto imponibile, la perdita disconosciuta non viene annullata. Viene trasferita nel cost basis della posizione sostitutiva e resta lì.

Questa pagina illustra il meccanismo. Non costituisce consulenza fiscale.

Perché la finestra della wash sale è di 61 giorni, non 30

Somma le componenti: 30 giorni prima, il giorno della vendita e 30 giorni dopo fanno 61 giorni di calendario. Sono giorni di calendario, non di trading, e il conteggio prosegue anche nei fine settimana e nei giorni festivi di mercato. Il pannello qui sotto prende come riferimento l’ultima seduta di ogni mese e conta quante sedute rientrano nella finestra di 61 giorni di quel mese.

QueryQuante sessioni di trading rientrano in una finestra wash sale di 61 giorni
L'esatto SQL dietro ogni numero
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

La linea piatta rappresenta i 61 giorni di calendario previsti dalla regola. La linea inferiore mostra quanti di quei giorni il mercato è stato effettivamente aperto. Il primo mese del pannello contiene 42 sedute nella propria finestra, il mese più recente ne contiene 42 e il pannello copre 30 mesi di riferimento.

La metà della finestra che si tende a dimenticare è quella iniziale. Di solito si conta in avanti dalla vendita e si segna il giorno 31 sul calendario. I 30 giorni precedenti alla vendita contano allo stesso modo. Se acquisti altre 100 azioni il 10 mentre incrementi la posizione a prezzi più bassi, vendi in perdita il lotto originario il 20 e hai già effettuato un acquisto che rientra nella finestra. La perdita sul lotto venduto viene disconosciuta anche se non hai acquistato nulla dopo la vendita. In questo caso è fondamentale quale lotto esce dal conto, e si tratta di una scelta effettuata al momento dell’operazione: vedi come i metodi di cost basis selezionano il lotto.

Il problema di dicembre

La tax-loss harvesting si concentra nelle ultime settimane dell’anno, proprio quando il calcolo della finestra diventa più delicato. Una vendita nell’ultima seduta dell’anno comporta una finestra di riacquisto che si estende in profondità dentro gennaio, mentre un acquisto a gennaio può disconoscere una perdita già riportata nella dichiarazione dell’anno precedente.

QueryOgni sessione di dicembre e fin dove arriva la relativa finestra wash sale nel nuovo anno
L'esatto SQL dietro ogni numero
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

Ogni riga rappresenta una seduta di dicembre, fissata a dicembre 2025 per mantenere invariato il calcolo. Per una vendita il Dec 1, 0 dei giorni della finestra cadono nel nuovo anno. Per una vendita il Dec 31, vi cadono 30 giorni, e la finestra comprende complessivamente 42 sedute di trading. Nulla nella contabile di dicembre segnala il problema. La perdita disconosciuta si trasferisce alle azioni acquistate a gennaio e diventa deducibile solo quando la nuova posizione viene chiusa definitivamente, anche l’anno successivo o diversi anni dopo.

Come entrano le opzioni nella wash sale rule

La Section 1091 riguarda azioni o securities e, nello stesso passaggio, un contratto o un’opzione per acquistare azioni sostanzialmente identiche. Nel 1988 il Congresso ha esteso la norma ai contratti e alle opzioni per acquistare o vendere. Dal punto di vista operativo, questo comporta quattro conseguenze:

  • Acquistare una call su un’azione appena venduta in perdita costituisce di per sé una wash sale. La call è un contratto per acquistare le azioni. Non devi esercitarla e non esiste uno strike abbastanza lontano da escluderla dalla regola.
  • Vendere una call in perdita e acquistare l’azione sottostante entro la finestra pone la stessa questione in senso inverso. La risposta dipende dal criterio della sostanziale identità, non da un safe harbor pubblicato.
  • La vendita di una put così deep in the money che l’esercizio appare quasi certo può essere trattata in modo analogo all’acquisto dell’azione.
  • Una perdita su un’opzione è una perdita su una security e la regola si applica anche alla sostituzione di un’opzione con un’altra opzione.

La quantità di azioni rappresentata da un determinato contratto è misurabile. Il delta indica la variazione del prezzo dell’opzione per ogni variazione di un dollaro del sottostante; moltiplicato per 100, approssima il numero di azioni di esposizione rappresentato da un contratto. Il pannello ordina i contratti AAPL con 20-45 giorni alla scadenza fino a giugno 2026 in 5 fasce, in base alla posizione dello strike rispetto al titolo, e calcola il delta medio di ciascuna fascia.

QueryDelta medio di call e put per distanza dallo strike, AAPL, 20–45 giorni alla scadenza, giugno 2026
L'esatto SQL dietro ogni numero
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

Leggi il pannello da sinistra a destra. Le call con strike ben sotto il prezzo del titolo hanno registrato un delta medio di 0.937, abbastanza vicino a uno da seguire le azioni quasi dollaro per dollaro. Le call con strike ben sopra il prezzo del titolo hanno registrato una media di 0.017. Le put si muovono nella direzione opposta: quelle con strike più alto rispetto al titolo hanno registrato un delta assoluto medio di 0.888, mentre quelle con strike più basso hanno registrato 0.015. Il margine destro rappresenta la put deep in the money, un contratto il cui writer detiene un’esposizione simile a una posizione long sulle azioni. Per la terminologia relativa a strike e scadenze, parti da come leggere una option chain.

L’IRS non ha mai stabilito quanto debba essere “deep enough”. Il criterio operativo applicato dai professionisti chiede se, nel momento in cui la put viene venduta, esista una probabilità sostanziale che scada senza essere esercitata. Una put posizionata all’estrema destra del pannello e una collocata al centro non rappresentano la stessa posizione.

Il rolling di una long call in perdita

La domanda più comune sulle opzioni è anche quella con la risposta meno definita. Possiedi una call, ha perso valore, la vendi e acquisti un’altra call sullo stesso sottostante con uno strike diverso o una scadenza successiva. Il nuovo contratto è sostanzialmente identico al precedente?

Treasury non ha emanato regolamenti che definiscano quando un’opzione è sostanzialmente identica a un’altra. Questa è la situazione concreta. Nella pratica esiste una convenzione di reporting: i broker abbinano le posizioni in opzioni in base al contract symbol, quindi un roll verso uno strike o una scadenza diversi normalmente passa attraverso il 1099-B senza essere segnalato. Una convenzione non equivale a una pronuncia. Il criterio previsto dalla legge chiede se la sostituzione lasci l’investitore esposto agli stessi movimenti al rialzo e al ribasso. Una call a uno strike di distanza con la stessa scadenza dà una risposta diversa rispetto a una call con scadenza tra sei mesi e molto out of the money.

Coesistono due interpretazioni. Quella prudente considera a rischio una sostituzione con strike e scadenza vicini. Quella più permissiva considera ogni modifica dei termini contrattuali come la creazione di una nuova security. Nessuna delle due è stata definita da una giurisprudenza o da una pronuncia in una linea di demarcazione netta.

Come appaiono 61 giorni sul tape

Sessantuno giorni di calendario restano un concetto astratto finché non li si osserva come sedute di mercato. Il pannello qui sotto mostra esattamente una finestra di wash sale: dal primo dicembre al 30 gennaio, cioè l’intera finestra per una perdita realizzata nell’ultima seduta di dicembre.

QueryUna finestra wash sale completa di 61 giorni sul tape: AAPL, dal 1° dicembre 2025 al 30 gennaio 2026
L'esatto SQL dietro ogni numero
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

Quei 61 giorni di calendario comprendevano 42 sedute di AAPL. Il titolo è entrato nella finestra con una chiusura di $283.1 ed è uscito a $259.48, -8.34% rispetto al punto di partenza. Chi avesse venduto nell’ultima seduta di dicembre e avesse voluto mantenere la perdita avrebbe dovuto evitare un’esposizione sostanzialmente identica durante tutte quelle sedute. La regola trasforma una decisione fiscale in una decisione sull’esposizione di mercato per tutta la durata della finestra.

Cosa rileva il tuo 1099-B e cosa non può rilevare

I broker calcolano le wash sale un conto alla volta e un security identifier alla volta: il CUSIP per un titolo e il contract symbol per un’opzione. È quanto richiesto loro dalle regole di reporting dei broker, ma l’ambito è più ristretto rispetto alla legge che deve essere applicata nella dichiarazione. La Section 1091 si applica al singolo contribuente e a tutti i suoi conti, compresi quelli del coniuge e delle entità che controlla.

Questa differenza è all’origine della maggior parte delle sorprese segnalate dai lettori:

  • Vendi in perdita presso il broker A e ricompri entro la finestra presso il broker B. Nessuno dei due 1099-B mostra una wash sale. Per il contribuente, però, la wash sale esiste.
  • Vendi un titolo in perdita e acquisti una call sullo stesso titolo nello stesso conto. L’abbinamento dipende dal software del broker, non dalla legge.
  • Vendi in perdita nel tuo conto e ricompri nel conto del coniuge. Nessun broker vede entrambe le operazioni.
  • Esegui il roll di una call in perdita verso un nuovo strike. L’identificativo è cambiato, quindi il modulo risulta pulito. La questione della sostanziale identità resta aperta.

Considera il 1099-B un input, non una determinazione. Lo stesso problema si presenta nei fondi con una forma diversa, perché due fondi che replicano lo stesso indice sono securities separate sulla carta: vendere fondi comuni in perdita illustra questo caso.

Quello che non torna mai indietro: il riacquisto in un IRA

Ogni wash sale ordinaria comporta un differimento. La perdita disconosciuta viene aggiunta al cost basis della posizione sostitutiva, il holding period della vecchia posizione si somma a quello della nuova e la deduzione arriva più avanti, quando la posizione viene definitivamente chiusa.

L’acquisto della posizione sostitutiva all’interno di un IRA interrompe questa catena. La Revenue Ruling 2008-5 stabilisce che la perdita realizzata su una vendita in un conto imponibile viene disconosciuta quando azioni o securities sostanzialmente identiche vengono acquistate nel tuo IRA o Roth IRA entro la finestra, e che l’aggiustamento del basis non può essere effettuato: la Section 1091(d) non prevede alcun modo per incrementare il basis dell’IRA. Nulla viene riportato in avanti. La deduzione è persa definitivamente.

Questa asimmetria rende l’IRA l’unico caso che conviene analizzare prima dell’operazione, non al momento della dichiarazione. Si applicano tutti i 61 giorni e un Roth viene trattato come un IRA tradizionale.

Holding period e perdita trasferita

Quando una perdita viene differita anziché cancellata, due elementi si spostano con essa. L’importo disconosciuto viene aggiunto al basis delle azioni sostitutive. Il holding period della posizione venduta viene aggiunto a quello della posizione sostitutiva, che può quindi risultare long term anche se è stata acquistata da pochi giorni. Il calcolo del holding period disciplina anche il trattamento dei dividendi: vedi il holding period per i dividendi qualificati.

Una famiglia di contratti resta fuori da questo quadro. Le opzioni su indici broad based sono sottoposte a mark-to-market a fine anno secondo il proprio regime e vengono ripartite 60/40 tra long term e short term. Di conseguenza, una perdita di fine anno su queste opzioni viene regolata da quel mark, non da una finestra di riacquisto: perché le opzioni su indici sono tassate 60/40.

FAQ

La finestra della wash sale è di 30 o di 61 giorni?

Sessantuno giorni di calendario. La regola comprende i 30 giorni precedenti alla vendita, il giorno della vendita e i 30 giorni successivi. Contare solo in avanti dalla vendita significa ignorarne metà; un acquisto effettuato prima della vendita in perdita conta come sostituzione esattamente come un acquisto successivo.

L’acquisto di una call crea una wash sale?

Sì, quando la call viene acquistata entro la finestra su un titolo venduto in perdita. La Section 1091 riguarda un contratto o un’opzione per acquistare azioni sostanzialmente identiche e la wash sale si applica anche se la call non viene mai esercitata.

La wash sale rule si applica tra due conti presso broker diversi?

Sì. I broker calcolano le wash sale per singolo conto e security identifier, mentre la regola si applica al contribuente su tutti i conti, compresi quelli del coniuge. Un 1099-B pulito ricevuto da ciascun broker non significa che non ci sia stata una wash sale.

Una call con uno strike diverso è sostanzialmente identica a quella che ho venduto?

Nessun regolamento risponde a questa domanda. Treasury non ha definito quando un’opzione è sostanzialmente identica a un’altra e il reporting dei broker abbina i contratti in base al symbol anziché all’economia dell’operazione; per questo un roll di norma appare senza segnalazioni. Il criterio dell’esposizione previsto dalla legge è più ampio rispetto alla convenzione di reporting.

Cosa succede se ricompro il titolo nel mio IRA?

La perdita viene disconosciuta e persa definitivamente. La Revenue Ruling 2008-5 stabilisce che la Section 1091(d) non consente di aggiungere la perdita disconosciuta al basis dell’IRA. A differenza di una wash sale ordinaria, quindi, nulla viene recuperato in seguito.

Note sui dati

I conteggi delle sedute provengono dalla serie giornaliera di SPY, utilizzata come proxy dei giorni in cui i mercati azionari statunitensi hanno tenuto una seduta ordinaria. Il primo pannello prende come riferimento l’ultima seduta di ogni mese e conta tutte le sedute comprese nei 61 giorni di calendario attorno a essa. Il pannello di dicembre è fissato a dicembre 2025 e il pannello del tape al periodo dal primo dicembre 2025 al 30 gennaio 2026, quindi nessuno dei due viene aggiornato. Il pannello del delta considera esclusivamente i contratti con volatilità implicita convergente e volume non zero, con 20-45 giorni alla scadenza, calcolando la media su giugno 2026 e raggruppando gli strike rispetto alla chiusura del sottostante di quel giorno. I dati all’estremo iniziale hanno un ritardo di ingestione di uno o due giorni, che interessa solo il pannello mensile mobile. Nulla di tutto questo costituisce consulenza fiscale e la determinazione della sostanziale identità dipende dai fatti specifici, che un professionista fiscale deve esaminare integralmente.


Ogni pannello qui sopra viene fornito con il relativo SQL, che puoi aprire per ricontrollare autonomamente le sedute. Per mappare una finestra di 61 giorni sulle tue date, chiedilo in inglese semplice sul terminale Strasmore.