Considerazioni avanzate per la definizione di backtesting

Definizione di backtesting, casi limite, assunzioni, limitazioni.

Considerazioni avanzate per la definizione di backtesting

Cosa significa backtesting in termini avanzati

Il backtesting è il processo di valutazione di un insieme definito di regole decisionali su dati di mercato storici per stimare come quell’insieme di regole si sarebbe comportato in passato. La considerazione avanzata è che un backtest non è la “performance della strategia” in sé; è una simulazione il cui output dipende da ciò che si è assunto riguardo ai dati e all’esecuzione.

Per spiegare con precisione il backtesting, occorre distinguere tre livelli:

  1. Le regole: la logica precisa di entrata/uscita o di decisione che si desidera testare.
  2. I dati di mercato: i prezzi storici, i timestamp e tutti i campi derivati che si alimentano nella simulazione.
  3. Il modello di esecuzione: come gli ordini sarebbero stati eseguiti all’interno dell’ambiente simulato.

Una definizione robusta di backtesting include il fatto che tutti e tre i livelli devono essere espliciti, riproducibili e verificabili in modo indipendente.

Meccanismo: il modello semplice e le sue parti

Un modello semplice per il backtesting è: regole + dati + assunzioni di esecuzione → operazioni simulate → metriche di performance. Le domande avanzate riguardano cosa deve essere specificato affinché l’output abbia un significato.

Input che devono essere definiti

  • Base temporale e allineamento: quale dimensione delle candele o frequenza di campionamento viene utilizzata, e come i segnali sono timestampati rispetto ai cambiamenti di prezzo.
  • Granularità dei dati: l’uso di dati aggregati (come barre) rispetto a dati ad alta risoluzione cambia ciò che “avrebbe potuto accadere” durante una barra.
  • Costi e frizioni: includere i costi di trading che si sceglie di modellare (commissioni, spread, effetti simili al finanziamento se applicabili) e definire quando si applicano.
  • Logica di ordine e di esecuzione: decidere come gli ordini vengono eseguiti (ad esempio, al prossimo prezzo disponibile, a un prezzo modellato con spread aggiustato, o usando assunzioni di esecuzione a limite). Questo è spesso la principale fonte di discrepanza.

Metriche di output che seguono la simulazione

Il backtesting comunemente riassume i risultati con metriche come rendimento cumulativo, drawdown, distribuzione win/loss e misure corrette per il rischio. Il punto avanzato è che le metriche sono affidabili solo quanto le assunzioni di simulazione che hanno generato la cronologia delle operazioni usata per calcolarle.

Casi limite e modalità di errore che cambiano il significato di un backtest

Il backtesting può fallire in silenzio. Le considerazioni avanzate si concentrano su condizioni in cui i test storici possono diventare fuorvianti.

Errori di look-ahead e di temporizzazione

Un backtest potrebbe accidentalmente utilizzare informazioni che non sarebbero state disponibili al momento della decisione. Questo può accadere a causa di:

  • Calcoli di indicatori che usano implicitamente dati futuri.
  • Segnali generati da un timestamp ma applicati alla barra successiva come se fossero già noti.

Anche piccoli errori di temporizzazione possono produrre risultati che non sono semplicemente “ottimistici”, ma fondamentalmente incompatibili con l’esecuzione in tempo reale.

Bias di sopravvivenza e di selezione dei dati

Se il dataset storico omette strumenti, periodi temporali o record di quotazione che in seguito sono scomparsi, il backtest può sovrastimare la realtà. Analogamente, selezionare solo “buoni” periodi senza una regola predefinita su quali dati includere può creare una falsa sensazione di performance.

Dati mancanti e interpolazione

I feed storici reali possono avere lacune o campionamenti irregolari. Un backtest che riempie i valori mancanti (o assume un movimento regolare tra i timestamp) può simulare prezzi che in realtà non hanno mai scambiato nel modo richiesto dal modello di esecuzione.

Overfitting attraverso tuning ripetuto

Quando le regole vengono aggiustate per massimizzare la performance passata, si può adattare il rumore invece che la struttura. La definizione avanzata di backtesting include quindi l’idea di separazione tra selezione del modello e valutazione (ad esempio, usando periodi distinti o un approccio walk-forward), e richiede che il periodo di valutazione non sia stato utilizzato durante il tuning.

Limiti della realismo nell’esecuzione

Le barre storiche non rivelano il percorso completo all’interno della barra. Se il modello di esecuzione assume esecuzioni a prezzi che potrebbero verificarsi solo con informazioni più granulari, i risultati possono discostarsi da qualsiasi esecuzione reale plausibile. Questo è un limite fondamentale: la risoluzione dei dati e le assunzioni sulle esecuzioni determinano congiuntamente il realismo.

Limitazioni e rischi: cosa puoi verificare e cosa no

Un backtest può supportare certi tipi di verifica, ma non può eliminare l’incertezza.

Cosa può aiutarti a comprendere

  • Se un insieme di regole si comporta in modo coerente in diverse condizioni storiche.
  • Se i risultati peggiorano sotto assunzioni più conservative (ad esempio, costi modellati più alti o logica di esecuzione più rigorosa).
  • Se i risultati dipendono da casi limite fragili (come eventi rari o una finestra temporale ristretta).

Cosa non può garantire

  • Risultati futuri: le relazioni storiche non stabiliscono risultati futuri.
  • Sicurezza: un backtest non dimostra che drawdown o regimi avversi non si verificheranno.
  • Accuratezza predittiva: il backtesting è una stima sotto assunzioni, non una prova.

Queste limitazioni si applicano anche se il backtest è internamente coerente.

Come verificare in modo indipendente la definizione di backtesting

Per verificare il significato di un backtest, trattalo come un esperimento riproducibile.

  1. Verifica la catena di assunzioni: conferma come interagiscono regole, timestamp dei dati e logica di esecuzione.
  2. Testa l’invarianza a cambiamenti ragionevoli: modifica la granularità dei dati, le assunzioni sui costi o sui tempi entro un intervallo predefinito per vedere se le conclusioni dipendono da una scelta fragile.
  3. Usa la valutazione fuori campione: separa il periodo usato per impostare i parametri da quello usato per misurare i risultati.
  4. Documenta tutto ciò che serve per riprodurre la simulazione: definizioni esatte delle regole, descrizione della fonte dei dati e modello di esecuzione.

Una chiara definizione di backtesting è quindi non solo una descrizione di “esecuzione su dati storici”, ma anche una checklist di assunzioni e un metodo per verificare se l’output è sensibile a tali assunzioni.

Prossime domande da chiarire prima di fidarsi dell’output del backtest

Prima di poter spiegare o affidarsi a qualsiasi risultato di backtesting, chiarisci:

  • Quale allineamento temporale esatto viene usato tra creazione del segnale e decisione operativa?
  • Quale risoluzione dei dati supporta il tuo modello di esecuzione, e cosa succede quando non lo fa?
  • Quali parti sono state ottimizzate e quali valutate, e come è stata applicata la separazione?
  • Per quali modalità di errore (errori di temporizzazione, dati mancanti, overfitting) è stato specificamente testato?

Se questi punti non sono espliciti, il “backtesting” diventa ambiguo — e l’output del backtest non può essere interpretato in modo significativo.

Il trading su forex e CFD comporta rischi significativi. Le informazioni di FoxiForex sono educative e non costituiscono consulenza finanziaria personale. I contenuti sponsorizzati sono chiaramente indicati.