Come Testare in Modo Responsabile il Mcginley Dynamic con il Backtest
Definire il Mcginley Dynamic e l’obiettivo esatto del backtest
Il Mcginley Dynamic è un metodo di tipo media mobile che produce una linea dinamica progettata per adattarsi ai cambiamenti nella velocità del trend. Prima di eseguire un backtest, definisci con precisione due elementi:
- La serie di input (ad esempio, quale campo prezzo utilizzi: midpoint, bid, ask o close).
- L’obiettivo del backtest. Un backtest non è semplicemente “calcolare l’indicatore”. Deve specificare quale decisione o misurazione stai valutando, come ad esempio la qualità predittiva di una relazione scelta o la performance di una regola.
Se il tuo obiettivo è la qualità dell’indicatore piuttosto che il trading, scegli un obiettivo misurabile, come la frequenza con cui la linea si trova sopra/sotto una serie di riferimento, oppure se una pendenza calcolata corrisponde al movimento successivo. Qualunque obiettivo tu scelga, dichiaralo fin dall’inizio per evitare che la valutazione cambi dopo aver visto i risultati.
Meccaniche: scegli dati, ricampionamento e regole che puoi riprodurre
Un backtest responsabile inizia con meccaniche riproducibili.
Granularità e allineamento dei dati
- Utilizza un timeframe coerente (ad esempio, barre orarie) e specifica se l’indicatore viene calcolato dai close delle barre o da approssimazioni temporali intrabar.
- Se utilizzi prezzi di fine barra, assicurati che il segnale (o la misurazione) sia correttamente timestampato per evitare di utilizzare informazioni dal futuro.
Assunzioni sui parametri Il Mcginley Dynamic prevede tipicamente un parametro che controlla la reattività (comunemente indicato nelle descrizioni come costante). Anche se mantieni fisso il formato dell’indicatore, devi specificare:
- I valori dei parametri scelti.
- Se gli stessi valori vengono utilizzati in tutti i periodi di test.
Modello dei costi I backtest che ignorano le frizioni possono produrre risultati fuorvianti. Includi almeno:
- Una proxy per lo spread/slippage come costo per ogni entrata/uscita.
- Una nota su se i costi vengono applicati nella barra in cui agisci.
Regole di posizione ed esecuzione Se stai testando regole di trading, definisci:
- Quando gli ordini sono considerati eseguiti (al close, all’apertura successiva o con un’approssimazione documentata).
- Come gestisci più segnali all’interno di un singolo timeframe.
Evidenza ed esempio di approccio: confronto tra in-sample e out-of-sample
Poiché le relazioni storiche non garantiscono risultati futuri, un metodo accurato separa la selezione del modello dalla valutazione.
Una struttura pratica
- Periodo in-sample (addestramento): scegli i valori dei parametri e la regola di valutazione.
- Periodo out-of-sample (test): applica queste scelte fisse senza ulteriori aggiustamenti.
- Ripeti su diverse finestre temporali utilizzando un programma walk-forward.
Questo riduce la possibilità che risultati positivi derivino da overfitting. Se riadegui i parametri dopo aver visto i risultati del test, indebolisci il significato del test.
Controlli del bias
- Nessun look-ahead: assicurati che ogni valore utilizzato per prendere una decisione fosse effettivamente disponibile in quel momento.
- Set di regole fisso: non modificare l’obiettivo dopo aver osservato i risultati.
- Trattamento coerente dei dati: gestisci i dati mancanti nello stesso modo in tutti i periodi.
Stress test Esegui verifiche aggiuntive in scenari in cui i risultati potrebbero essere fragili:
- Cambiamenti di regime (ambienti con trend lenti vs. rapidi).
- Aumenti improvvisi dello spread e assunzioni sui costi.
- Periodi con liquidità diversa, se il tuo dataset li distingue.
Limitazioni e modi di fallimento da aspettarsi
Anche con controlli accurati, il backtesting può fallire in modi prevedibili.
Sensibilità ai costi di transazione Molte strategie basate su indicatori hanno margini di guadagno che possono essere inferiori ai costi realistici. Piccole variazioni nelle assunzioni di spread/slippage possono ribaltare le conclusioni.
Problemi di qualità e costruzione dei dati I backtest possono essere sensibili al modo in cui viene costruita la serie dei prezzi (midpoint vs. quotazioni negoziabili). Barre mancanti o disallineamenti temporali possono creare schemi artificiali.
Overfitting alla storia Se provi molti valori di parametro e criteri di selezione, potresti “trovare” uno schema che si adatta al passato ma non si generalizza.
Non stazionarietà La dinamica di mercato cambia nel tempo. Un indicatore che risponde bene in un regime può comportarsi diversamente in un altro, specialmente se la volatilità o la struttura del trend del mercato cambiano.
Verifica e passi successivi
Per verificare che il tuo backtest sia responsabile, assicurati di poterlo spiegare e riprodurre in modo indipendente:
- Puoi indicare scelte sui dati, meccaniche dell’indicatore, valori dei parametri e tempistica dell’esecuzione.
- Puoi dimostrare che i risultati derivano da una valutazione fuori campione, non solo da un aggiustamento in-sample.
- Puoi elencare almeno uno scenario in cui il metodo potrebbe fallire (ad esempio: costi più elevati, input di prezzo diversi o cambi di regime).