La cosa più frustrante per un trader sistematico – scrive Francesco Placci direttore ufficio studi di www.agoritmica.pro – si verifica quando, dopo aver sviluppato un sistema di trading che sembra performare bene nella fase di back test, lo si mette realmente a mercato e il suo comportamento differisce da quanto osservato nella fase in sample.

Sicuramente i procedimenti d’ideazione e creazione di un trading system sono importanti, poiché se non effettuati correttamente ne minano la solidità futura, ma occorre comunque porre una particolare attenzione alla fase successiva, quella precedente alla messa a mercato, ossia la fase di analisi della robustezza di un sistema.

Intendiamoci, la garanzia che un sistema continui a funzionare nel futuro non può darcela nessun tipo di test, i mercati evolvono ed è normale che un sistema di trading abbia una nascita una vita ed una morte. Tuttavia se non cambia la premessa di fondo, ossia il comportamento del mercato su cui andiamo ad operare non si è modificato, il nostro sistema dovrebbe continuare a performare in modo simile a quanto certificato dal nostro back test.

E’ comunque da mettere in conto un fisiologico calo delle performance, poiché per quanto si cerchi di evitare l’overfitting, ossia la sovra ottimizzazione degli input e delle regole di funzionamento del sistema, sappiamo che un back test inevitabilmente conterrà una componente di ottimizzazione. D’altra parte  nello sviluppo di un sistema andiamo a ricercare le regole di funzionamento e a individuare  i parametri che migliorano il comportamento di un sistema di trading e questo altro non è che una sorta di ottimizzazione.

Proprio per questo motivo assume importanza la fase di analisi di robustezza di un sistema.

Esistono vari modi per stressare un sistema, il più semplice è quello di metterlo in paper trading e verificarne le performance in realtime.

E’ possibile effettuare una analisi montecarlo – scrive Francesco Placci direttore ufficio studi di www.agoritmica.pro – su tutti i trades generati dal sistema, al fine di ottenere un intervallo di confidenza selle future distribuzioni. La premessa di fondo infatti è che la distribuzione delle operazioni nel futuro  possa (e sicuramente lo sarà) essere diversa rispetto al passato.

Meglio ancora se la analisi Montecarlo viene effettuata sui trades generati dalla Wolk Forward Analysis, che è quanto di più simile (probabilmente in negativo) al trading in realtime.

Esiste tuttavia un altro metodo che ci consente di validare un sistema in modo semplice e veloce, e che probabilmente è in grado di farci capire se il nostro back test si trova su un picco di ottimizzazione oppure su parametri stabili,  se abbiamo ecceduto con il numero di regole oppure no, se abbiamo cioè lascito al nostro sistema i necessari gradi di libertà.

Questo metodo, chiamato Randomizzazione dei Parametri, ritengo che sia quello che meglio di tutti sia in grado di stimare realisticamente i risultati che possiamo attenderci dal nostro sistema, ferma restando la premessa iniziale, ossia che il comportamento del mercato non si sia nel frattempo modificato.

Le basi di questo test poggiamo sulla considerazione che il nostro back test è una previsione particolarmente ottimistica dei risultati del sistema, dovuta alla migliore combinazione possibile dei paramentri e ciò indipendentemente dal fatto che nella fase di ottimizzazione ci siamo concentrati sulla individuazione delle aree stabili piuttosto che sui parametri che massimizzano i risultati.

In poche parole è anche frutto di una componente di casualità, che difficilmente potrà ripetersi in futuro nella stessa maniera.

Per intenderci, se ritengo che la combinazione migliore di input sia ad esempio 15, 23, 40, 1.5, non significa che sarà la migliore nel futuro, perché la componente di casualità farà in modo che difficilmente questi input possano catturare i movimenti del mercato nel futuro alla stessa maniera del passato.

Tuttavia, se il mio sistema è robusto,  una combinazione di parametri adiacente ad esempio 13, 25, 35, 2,  potrà essere quella che si comporterà meglio in futuro.

Avete capito dove voglio arrivare?

Analizzando tutte le combinazioni di input adiacenti a quella per me ottimale, oppure generando casualmente un campione di combinazioni, randomizzando ciascun input all’interno in un range di valori con al centro in mio valore ideale,  sono in grado – scrive Francesco Placci direttore ufficio studi di www.agoritmica.pro – di capire se la mia combinazione è stabile oppure no, e soprattutto di stimare più realisticamente le performance del mio sistema.

Vi mostro l’analisi effettuata su un trading system sul future RBOB Gasoline che sto sviluppando ultimamente. Notate il fascio di equity line casuali in azzurro e la mia equity line originale in rosso.

Fascio di equity

Fascio di equity

 

Appare evidente – conclude Francesco Placci direttore ufficio studi di www.agoritmica.pro – che la mia equity line rappresenti un risultato ottimistico, tuttavia è possibile notare che, tutte le equity line generate da una scelta casuale dei parametri hanno un andamento crescente nel tempo e hanno una certa regolarità. Questo mi da un certo grado di confidenza che il sistema ha una sua robustezza e al contempo mi fa capire che affidarmi unicamente al back test per avere una stima delle performance future non è realistico. Una stima più verosimile è possibile ottenerna analizzando le distribuzioni di tutte le possibili combinazioni dei parametri, e prendendo come benchmank ad esempio un valore mediano.

Per chi volesse approfondire l’argomento allego il paper “Know your System! – Turning Data Mining from Bias to Benefit” di Dave Walton vincitore del premio della National Association od active investment managers nel 2014