In che modo lo SMMA può essere backtestato in modo responsabile?
Definisci chiaramente lo SMMA prima del test
SMMA sta per Smoothed Moving Average (Media Mobile Smussata). È un tipo di media mobile che aggiorna il suo valore gradualmente, invece di ricalcolarlo da zero ad ogni barra. Nel backtesting, l’approccio “responsabile” inizia con la definizione esatta della meccanica che si intende simulare:
- Passo temporale e dati: Cosa costituisce una singola barra (ad esempio, minuto, ora, giorno) e quale prezzo si utilizza (apertura, massimo, minimo, chiusura o una media).
- Lunghezza (periodo): Il numero di barre utilizzato dalla definizione dello SMMA.
- Inizializzazione: Il valore iniziale dello SMMA e come viene impostato all’inizio del dataset.
- Regola di aggiornamento: La formula applicata ad ogni nuova barra.
Se questi elementi non vengono specificati in anticipo, due persone possono eseguire “backtest SMMA” che in realtà non misurano la stessa cosa.
Separa la meccanica stabile dalle condizioni variabili
La forma di una media mobile deriva dalla sua meccanica, ma i risultati di trading (se si simula un’attività di trading) dipendono da molte condizioni di mercato variabili. Per effettuare un backtest in modo responsabile, è necessario trattarle separatamente:
- Meccanica stabile: Regole di calcolo dello SMMA e definizioni dei parametri.
- Condizioni di mercato variabili: regimi di volatilità, comportamento dello spread, gap e se i dati sui prezzi riflettono effettivamente prezzi negoziabili.
- Esecuzione e costi: commissioni, spread bid/ask, slippage e tempistiche degli ordini.
Anche se si studia solo il comportamento dell’indicatore (e non una strategia di trading), è comunque necessario disporre di definizioni stabili affinché i risultati possano essere confrontati.
Specifica le assunzioni e la modellazione dei costi
Spesso i backtest appaiono “migliori” quando si omettono costi e dettagli di esecuzione. Un backtest responsabile documenta le assunzioni per ogni calcolo o esempio eseguito. Le assunzioni chiave includono:
- Costi: Si modellano commissioni per ogni operazione, lo spread come costo, o entrambi?
- Slippage: Si assume uno slippage fisso, una funzione della volatilità o una banda conservativa peggiore? (Scegline una e giustificala.)
- Tempistiche di esecuzione: Se una regola si attiva alla chiusura della barra, si esegue all’apertura della barra successiva, alla chiusura o con un’altra assunzione temporale?
- Qualità dei dati: Gli orari sono coerenti? Ci sono barre mancanti? I prezzi sono allineati in modo che lo SMMA e qualsiasi logica di evento utilizzino la stessa barra?
Poiché costi ed esecuzione variano, l’obiettivo non è “prevedere” risultati reali, ma evitare simulazioni fuorvianti eccessivamente ottimistiche.
Controlla il bias: prevenire il look-ahead e l’overfitting
Un backtest responsabile verifica se la configurazione potrebbe beneficiare involontariamente di informazioni che non dovrebbe avere.
- Look-ahead (fuga dal futuro): Assicurati che ogni valore utilizzato al tempo t dipenda solo dai dati disponibili fino a t. Ciò include il warm-up dell’indicatore e qualsiasi filtro.
- Bias da ri-parametrizzazione: Se provi molti periodi SMMA e scegli quello con il miglior risultato in-sample, potresti incorrere in overfitting. Utilizza un processo strutturato: definisci un intervallo di ricerca dei parametri, quindi blocca le scelte prima della valutazione.
- Bias di selezione nei dati: L’uso esclusivo di periodi “puliti” o la rimozione di segmenti con forti drawdown può gonfiare i risultati. Preferisci una regola trasparente per stabilire quali segmenti storici includere.
Usa controlli out-of-sample per testare la stabilità
Le prestazioni storiche possono cambiare con l’evolversi delle condizioni di mercato, quindi un test “responsabile” richiede una valutazione oltre i dati utilizzati per configurare il modello.
Un approccio tipico è:
- Training (in-sample): Usa una parte della cronologia per decidere i parametri dello SMMA e qualsiasi mappatura dal comportamento dell’indicatore a un risultato misurato.
- Validazione (tuning dei parametri): Usa una porzione separata per ridurre l’overfitting.
- Test (valutazione finale): Usa l’ultima porzione solo per il controllo finale.
Considera anche la valutazione walk-forward, in cui si riallenano/rieseguono ripetutamente i parametri utilizzando solo dati passati e si testano sui segmenti successivi. Questo aiuta a rivelare se i risultati dipendono da un periodo specifico.
Riporta limitazioni e modalità di fallimento
Anche un backtest SMMA perfettamente codificato può fallire a causa di discrepanze nel modello o di cambiamenti di regime di mercato. Esempi di limitazioni rilevanti includono:
- Dipendenza dal regime: I metodi di smoothing possono comportarsi in modo diverso in mercati in trend rispetto a quelli laterali.
- Sensibilità ai costi: Piccoli vantaggi possono scomparire una volta inclusi spread e slippage realistici.
- Effetti di warm-up: Le prime barre potrebbero utilizzare un’inizializzazione che non riflette il comportamento a regime.
- Disallineamento dati-modello: Se i prezzi storici non rappresentano prezzi effettivamente negoziabili (o se le tempistiche di esecuzione sono irrealistiche), il backtest potrebbe non essere generalizzabile.
Una trattazione responsabile include non solo “ciò che ha funzionato”, ma anche quando e perché potrebbe non funzionare.
Verifica che puoi fare in modo indipendente
Per verificare rigorosamente il tuo backtest senza fare affidamento su affermazioni esterne:
- Ricalcola manualmente i valori SMMA per alcune barre utilizzando la formula e l’inizializzazione dichiarate, quindi verifica che il tuo codice corrisponda. 2.