Come si può fare backtest responsabile del Frama?
Cosa significa “backtest responsabile” per il Frama
Il backtest è un metodo per studiare come una regola basata su un indicatore si sarebbe comportata sui dati storici dei prezzi. Un “backtest responsabile” non afferma nulla riguardo alla performance futura. Piuttosto, costruisce un test trasparente e ripetibile che (1) definisce gli input e le impostazioni dell’indicatore, (2) modella realisticamente costi ed esecuzione, (3) limita bias e overfitting, e (4) verifica se i risultati resistono a nuovi dati al di fuori del periodo utilizzato per progettare il test.
Nel caso specifico del Frama, è necessario innanzitutto comprenderlo come una media mobile il cui comportamento dipende dalla struttura di mercato ricavata dalla variazione dei prezzi. Ogni backtest dovrebbe quindi documentare come si calcolano gli input della media mobile e come si trasformano i valori dell’indicatore in una regola — senza assumere che un valore dell’indicatore corrisponda automaticamente a un segnale di trading.
Meccanica: definisci dati, assunzioni e utilizzo del Frama nel test
Inizia annotando ogni assunzione che influisce sui risultati:
- Definizione dei dati: quale strumento (coppia FX generica), quale timeframe (ad esempio, barre orarie), quale fuso orario e se la serie è aggiustata per eventi societari (generalmente meno rilevante per il Forex rispetto alle azioni, ma il principio è lo stesso).
- Impostazioni dell’indicatore: i parametri del Frama e eventuali finestre di lookback. I backtest dovrebbero mantenere questi fissi, a meno che non si esegua esplicitamente una ricerca di parametri.
- Regole di calcolo: se l’indicatore viene calcolato utilizzando la stessa chiusura della barra su cui si effettua la valutazione, e come si gestiscono le prime barre che richiedono una storia iniziale.
- Definizione della regola: se si valuta la “qualità del segnale”, definire la logica decisionale esatta (ad esempio, se il test valuta i cross, i threshold o i filtri di regime). Non trattare la “direzione dell’indicatore” come un segnale autonomo universale.
Successivamente, modella costi ed esecuzione in modo coerente con le tue assunzioni. Anche senza spread in tempo reale, puoi includere termini di attrito come placeholder costanti (ad esempio, un costo fisso di transazione per ogni entrata e uscita) e dichiarare che si tratta di assunzioni.
Costi da considerare nello stesso quadro:
- Costi di transazione (commissioni, spese).
- Modello di spread bid/ask o slittamento (come si approssima la differenza tra i prezzi basati sulle barre e i prezzi effettivi di trading).
- Tempistica degli ordini (se si assume l’esecuzione all’apertura della prossima barra, alla chiusura o con un ritardo fisso).
Infine, scegli metriche che riflettano la domanda che stai ponendo. Esempi includono proxy di performance aggiustati per il rischio, drawdown massimo, hit rate o escursione avversa media. L’obiettivo è definire le metriche prima di eseguire i test.
Evidenza ed esempio: come progettare controlli che riducono il bias
Un errore comune nel backtest degli indicatori è l’overfitting: il test trova una configurazione che si adatta a un periodo storico specifico ma non si generalizza.
Due approcci pratici per controllare il bias:
-
Validazione walk-forward (a scorrimento)
- Dividi la cronologia in più segmenti consecutivi.
- Usa un segmento precedente per selezionare o confermare le impostazioni, quindi valuta sul segmento successivo.
- Ripeti e aggrega i risultati.
-
Holdout rigoroso fuori campione
- Riserva un periodo finale che non viene mai usato per selezionare parametri o creare regole.
- Solo dopo che la regola è fissata, valuti sui dati riservati.
Se esegui esplorazioni di parametri (ad esempio, variando le scelte di lookback del Frama), separa l’atto di “trovare” da quello di “misurare”. Un flusso di lavoro responsabile considera il passo di misurazione come un test finale della capacità di generalizzazione.
Testa anche la stabilità:
- Verifica se la performance dipende fortemente da un regime specifico.
- Ripeti la valutazione su più periodi temporali e, quando possibile, su più strumenti.
- Confronta i risultati con un benchmark semplice (ad esempio, una strategia passiva) per capire se il miglioramento è significativamente diverso da quanto ottenibile con un approccio base.
Limitazioni e modi di fallimento da trattare come informazioni primarie
I risultati storici dei backtest sono incerti. Importanti limitazioni includono:
- Dipendenza dal regime di mercato: la struttura di un indicatore potrebbe funzionare solo quando volatilità e caratteristiche di trend corrispondono al periodo usato nel test.
- Divergenza tra costi ed esecuzione: piccoli cambiamenti nei costi di transazione, nello slittamento o nel timing ipotizzati possono ribaltare le conclusioni, specialmente per strategie con frequenti cambiamenti.
- Artifatti dei dati: differenze nel campionamento, barre mancanti, diversi fornitori di dati o costruzione non uniforme delle barre possono alterare i risultati.
- Warm-up dell’indicatore ed effetti di bordo: l’inizializzazione delle prime barre può distorcere i risultati se non gestita in modo coerente.
- Confronti multipli e gradi di libertà del ricercatore: se provi molte impostazioni di parametri e cerchi la “migliore”, aumenta la probabilità di trovare pattern per caso.