Come si può testare il Session Breakout?
Definisci il concetto prima di testarlo
Il Session Breakout è un concetto di trading secondo cui ci si aspetta che il prezzo si muova in modo significativo dopo l’inizio (o la fine) di una sessione di mercato definita. Durante il test, dovresti innanzitutto tradurre il concetto in definizioni concrete e ripetibili:
- Finestra di sessione: orari esatti di inizio/fine in un fuso orario scelto.
- Livelli di riferimento: quali livelli misuri durante il periodo “pre” della sessione (ad esempio, range massimo/minimo, prezzo di apertura o un range precedente).
- Regola di rottura: la condizione che identifica una rottura (ad esempio, il prezzo supera un livello e rimane oltre).
- Finestra di valutazione: come misuri i risultati dopo il segnale di rottura (ad esempio, barre a orizzonte fisso o fino a un evento di stop/target).
Un test è significativo solo se le definizioni sono abbastanza precise da far sì che due persone indipendenti calcolino gli stessi “segnali” dai medesimi dati storici.
Formula un’ipotesi e scegli un baseline
Un buon modo per testare è specificare un’ipotesi che separi le meccaniche di rottura da effetti non correlati.
Struttura dell’ipotesi di esempio
Puoi esprimere l’ipotesi come un’affermazione sul comportamento atteso sotto una regola, ad esempio:
- Se il prezzo supera un livello definito sulla base di una finestra pre-sessione, allora la variazione direzionale media (misurata su un orizzonte fisso) è maggiore rispetto a quanto avverrebbe in una condizione comparabile senza rottura.
Costruisci un baseline che controlli le distorsioni
Poiché i mercati presentano schemi di volatilità che variano in base all’ora del giorno, hai bisogno di un baseline che rispecchi la struttura temporale ma elimini la dipendenza dalla rottura. Opzioni di baseline (descritte concettualmente) includono:
- Baseline senza rottura: valuta la stessa finestra post-sessione senza selezionare solo eventi di rottura.
- Baseline con livello randomizzato: mantieni i tempi della sessione ma randomizza quale livello di riferimento viene utilizzato, in modo che la condizione di “superamento” non sia legata alla regola originale.
- Baseline con mappatura mescolata: preserva la distribuzione dei tempi di rottura ma mescola gli esiti, rompendo qualsiasi collegamento sistematico tra regola e movimento.
Se la regola di rottura non riesce a superare un baseline appropriato, l’effetto potrebbe essere spiegato dalla volatilità intraday generale piuttosto che da un vantaggio specifico della rottura.
Specifica assunzioni, costi e l’unità di test
Il test deve basarsi su assunzioni esplicite. Se le ometti, i risultati non sono verificabili in modo indipendente.
Assunzioni fondamentali da dichiarare
- Allineamento temporale: come mappi tick/barre ai confini della sessione.
- Prezzi utilizzati: se utilizzi il prezzo di apertura, massimo/minimo, chiusura o un proxy per l’esecuzione.
- Modello di esecuzione: se gli ordini vengono eseguiti all’apertura della barra successiva, al prezzo di rottura o con un’assunzione conservativa di slippage.
- Costi: spread, commissioni e qualsiasi altra frizione inclusa come costo generico per operazione.
Poiché il trading reale comporta frizioni e incertezze di esecuzione, dovresti trattare i costi come un intervallo piuttosto che un singolo valore. Ad esempio, esegui la stessa logica con assunzioni di costi bassi/medi/altri che riflettano variazioni plausibili.
Unità di test
Decidi cos’è un “caso”:
- ogni evento di rottura,
- ogni giorno con una rottura,
- o ogni finestra di sessione indipendentemente dall’occorrenza di una rottura.
Queste scelte cambiano l’interpretazione. Una valutazione basata sugli eventi risponde a “cosa succede dopo le rotture?”; una valutazione giornaliera risponde a “con quale frequenza le sessioni generano la condizione e qual è l’effetto netto?”. Entrambe possono essere valide, ma non dovresti mescolarle in silenzio.
Dividi i dati e prevenire la fuga di informazioni
L’overfitting è una causa principale di fallimento per le strategie basate sul tempo, poiché puoi accidentalmente incorporare nei parametri della regola schemi specifici del mercato.
Usa una suddivisione temporale
Un approccio semplice è:
- Training (in-sample): scegli i parametri della regola e verifica i calcoli.
- Validazione: regola i parametri se necessario.
- Test (out-of-sample): esegui una sola volta, senza ulteriori modifiche ai parametri.
Se hai un solo periodo storico, puoi usare finestre mobili: addestra su un blocco di tempo precedente, valida sul blocco successivo e testa su un blocco più recente.
Proteggiti dal lookahead
Rischi comuni di fuga di informazioni includono:
- usare informazioni successive alla finestra di sessione per definire il livello di riferimento,
- calcolare i livelli di riferimento usando dati che si estendono oltre il momento della decisione di rottura,
- o selezionare i parametri ispezionando le prestazioni del test.
Una buona disciplina è calcolare ogni livello di riferimento usando solo i dati disponibili al momento della valutazione della regola di rottura.
Misura la robustezza con verifiche multiple
Anche se una regola sembra promettente in un periodo, potrebbe fallire in regimi diversi. Le verifiche di robustezza ti aiutano a capire se il comportamento è generalizzabile.
1) Variazione del regime
Testa la stessa regola in diverse condizioni di mercato usando partizioni basate sul tempo, ad esempio:
- periodi ad alta volatilità vs a bassa volatilità (definiti da un proxy di volatilità calcolato in modo indipendente),
- periodi di tendenza vs laterali (definiti da un proxy di tendenza calcolato in modo indipendente).
Se le prestazioni appaiono solo in un regime, l’ipotesi è più debole.
2) Sensibilità ai parametri
Varia leggermente i parametri chiave per vedere se i risultati collassano:
- confini della finestra di sessione,
- definizione del range di riferimento,
- comportamento della soglia di rottura (ad esempio, richiedere la chiusura vs il superamento intrabar),
- orizzonte di valutazione.
Un concetto robusto non dovrebbe dipendere da un’impostazione dei parametri estremamente precisa.
3) Assunzioni alternative di esecuzione
Esegui la valutazione con modelli di esecuzione diversi, inclusi riempimenti conservativi. Molti test di rottura esagerano i risultati assumendo riempimenti ideali al momento della rottura.
4) Confronto statistico vs baseline
Piuttosto che affidarti solo a medie grezze, confronta i risultati della regola con quelli del baseline usando riassunti statistici appropriati (ad esempio, differenze medie con stime di incertezza e distribuzioni di rendimento). Esamina anche la proporzione di casi in cui l’esito è sfavorevole.
Includi almeno una limitazione materiale o un modo di fallimento
Il test deve riconoscere dove la logica di rottura può fallire.
Modi comuni di fallimento
- Mancata corrispondenza del regime di volatilità: le rotture possono verificarsi frequentemente, ma il seguito potrebbe essere inconsistente quando cambiano le dinamiche di volatilità.
- Sensibilità ai costi e allo slippage: piccoli movimenti attesi possono essere annullati dalle frizioni; un test dovrebbe includere assunzioni di costo realistiche come intervallo.
- Errori nella definizione della sessione: errori di fuso orario o finestre di sessione non coerenti possono invalidare i livelli di riferimento.
- Tempistica ambigua dell’esecuzione: se una rottura viene misurata intrabar o alla chiusura della barra cambia quali “eventi” vengono conteggiati.
Un buon rapporto di test dovrebbe specificare quale limitazione è più probabile nel tuo contesto.
Verifica e prossime domande
Per rendere i tuoi risultati verificabili in modo indipendente, documenta una “checklist di calcolo”:
- Definizione esatta della finestra di sessione e fuso orario.
- Regola del livello di riferimento e quali barre/tick utilizza.
- Logica di rilevamento della rottura (superamento vs chiusura, e eventuali requisiti di persistenza).
- Finestra di valutazione e come vengono misurati gli esiti.
- Assunzioni su esecuzione e costi (e l’intervallo testato).
- Metodo di suddivisione temporale e come prevenire la fuga di informazioni.
- Quale/i baseline hai usato e quale confronto hai effettuato.