In che modo il MACD può essere sottoposto a backtest in modo responsabile?
Definisci prima il MACD, poi cosa significa “backtesting”
Il MACD (Moving Average Convergence Divergence) è un oscillatore che segue il trend, costruito a partire da medie mobili. Nel backtesting, non stai testando il “MACD stesso” come garanzia della direzione futura; stai testando una regola che converte i valori del MACD in risultati misurabili sui dati storici.
Per eseguire un backtest in modo responsabile, inizia col definire con precisione la meccanica che utilizzerai:
- Il tipo di media mobile e i parametri usati per calcolare il MACD (ad esempio, le lunghezze delle due medie mobili e della linea del segnale).
- Come calcoli la linea MACD e la linea del segnale dalla stessa serie di prezzi.
- Se effettui il test sui valori di chiusura delle candele o su approssimazioni intra-candela.
- Come gestisci i timestamp, i dati mancanti e le eventuali correzioni simili a quelle per eventi societari (se applicabili alla tua fonte dati).
Una definizione pratica di “backtesting” è: applicare la tua regola decisionale ai dati passati per produrre una sequenza di operazioni ipotetiche o risultati ipotetici, quindi valutarli con metriche che tengano conto di costi e ipotesi di esecuzione.
Specifica i dati e le ipotesi (ciò che può cambiare maggiormente i risultati)
La maggior parte degli errori evitabili deriva da una gestione inconsistente o irrealistica dei dati. Poiché i risultati di mercato variano, considera i seguenti elementi come ipotesi esplicite:
Portata e campionamento dei dati
- Scegli un intervallo temporale e una frequenza di campionamento fissa (ad esempio, barre giornaliere). Mescolare frequenze o ricampionare i dati in modo diverso tra un’esecuzione e l’altra può distorcere i risultati.
- Decidi se gli indicatori vengono calcolati utilizzando lo stesso prezzo di chiusura che poi utilizzi per le decisioni operative.
Look-ahead e allineamento
- Assicurati che i valori dell’indicatore siano disponibili al momento della decisione. Se calcoli un indicatore usando informazioni della stessa barra su cui “entri”, potresti accidentalmente introdurre un bias di look-ahead.
- Usa una regola coerente per lo spostamento dei segnali: se la tua decisione si basa sull’indicatore alla fine della barra t, l’azione simulata dovrebbe verificarsi dopo la barra t.
Integrità dei dati
- Verifica la presenza di lacune, timestamp duplicati, cambi improvvisi nei flussi di prezzo e barre mancanti.
- Se calcoli indicatori da prezzi aggiustati o trasformati, registra i passaggi della trasformazione.
Queste scelte non sono puramente estetiche; cambiano i valori del MACD che alimentano la tua regola, modificando così l’intero percorso del backtest.
Includi costi e ipotesi di esecuzione (le frizioni contano)
Anche un’implementazione corretta del MACD può apparire redditizia in un backtest che ignora le frizioni. Un backtest responsabile include almeno tre livelli di costo e ipotesi di esecuzione chiaramente definite:
Tipi di costi
- Costi di transazione (commissioni, spese).
- Approssimazioni di spread/impatto sui prezzi (come modelli la differenza tra il prezzo teorico della decisione e il prezzo effettivo di esecuzione).
- Slippage (in che misura l’esecuzione si discosta dal prezzo ipotizzato).
Ipotesi di esecuzione
- Decidi se gli ordini vengono eseguiti al prezzo della decisione, all’apertura della prossima barra o secondo un’altra convenzione. Documentalo.
- Stabilisci se ignorare esecuzioni parziali, effetti del libro degli ordini o la latenza.
Poiché potresti non conoscere con esattezza l’esecuzione reale, modella l’incertezza usando verifiche di sensibilità (varia le ipotesi di slippage/spread su intervalli ragionevoli, giustificati dai tuoi dati e dalla conoscenza della microstruttura di mercato). L’obiettivo non è “prevedere il futuro”, ma verificare se le conclusioni resistono a ipotesi più realistiche.
Aggiungi controlli sui bias per ridurre l’overfitting sulla storia
Le scelte di parametri del MACD e le varianti di regole possono accidentalmente “adattarsi” al rumore. I controlli sui bias ti aiutano a rilevarlo.
Separazione fuori campione
- Dividi i dati in almeno due parti: una per la selezione dei parametri o la progettazione della regola, e una separata per la valutazione.
- Se regoli i parametri utilizzando il periodo di valutazione, i tuoi risultati possono diventare fuorvianti.
Test walk-forward
- Invece di usare un unico set statico di parametri per l’intera storia, usa una procedura mobile o progressiva: ottimizza su una finestra, testa sulla finestra successiva, quindi spostati in avanti.
- Questo può ridurre la probabilità che un set di parametri funzioni solo in un determinato periodo storico.
Evita il “peeking” ripetuto
- Se apporti molte modifiche alla regola dopo averne visto le prestazioni, di fatto cerchi la migliore risposta all’interno del tuo insieme di valutazione.
- Controlla questo aspetto fissando il processo prima di una valutazione estesa e utilizzando l’insieme di valutazione una sola volta per versione.
Trasparenza dei parametri
- Tieni un registro di tutti i parametri e soglie provati e del motivo per cui hai scelto quelli finali.
Verifica almeno una limitazione materiale e un modo di fallimento
Un backtest responsabile dovrebbe riconoscere esplicitamente cosa potrebbe andare storto.