Robustezza trading system

In questo articolo ti spiegheremo l’importanza della fase di valutazione della robustezza di un trading system. Prima della lettura voglio segnalarti la nostra guida di approfondimento sui trading system.

Il sogno di ogni trader è la creazione di un trading system vincente. Abbiamo visto come la creazione di un trading system avviene attraverso l’osservazione e lo studio della serie storica di prezzi passati. A nostro avviso questo rappresenta l’aspetto fondamentale, che qualsiasi trader deve avere sempre in mente. Osservando i dati quindi, il programmatore realizzerà algoritmi costituiti da un insieme di regole in e regole out, che applicate alla serie storica dei prezzi osservata genereranno  determinati risultati. Ovviamente l’obiettivo del programmatore è ottenere un alto profitto e un basso max drawdown (per semplicità consideriamo solo queste due variabili).  “Lavorando” sulla serie storica sarà quindi possibile costruire un trading system con buon profitto e basso Drawdown.

Abbiamo quindi trovato il modo per diventare ricchi? Beh purtroppo no. Come accennato agli inizi dell’articolo, il sistema è stato costruito considerando la serie storica passata. E’ un po’ come vedere i risultati di un trader che  ha fatto  trading conoscendo già quello che sarebbe successo. A questo punto ci vengono incontro i guru americani,  sono infatti stati scritti oltreoceano molti volumi che spiegano come valutare se un trading system che ha ottenuto buoni risultati in backtest ha probabilità di essere profittevole anche nel futuro. Una volta terminato il lavoro di programmazione è necessario capire  quindi se un trading system genera risultati positivi senza dipendere da un insieme limitato di parametri. In altre parole capire se un trading system è robusto.

Robustezza trading system regola Sample in Sample out

Uno dei metodi più utilizzati è il Sample in e Sample out. Questo metodo consiste nel dividere la serie storica in due, programmare il sistema solo osservando una di esse (sample in) e poi verificare se applicando il trading system alla seconda parte della serie storica(sample out) i risultati in termini statistici non cambiano. In caso positivo il sistema può definirsi robusto. Questa metodologia senza ombra di dubbio può ritenersi valida, può accadere però, soprattutto quando alla base del sistema non ci sia un idea chiara e semplice di trading, e quando il programmatore genera centinaia di algoritmi, che i buoni risultati di un trading system in sample out siano da attribuire al caso.

Robustezza trading system regola universale

Un’altro metodo per capire se un sistema è robusto è applicare lo stesso algoritmo a strumenti finanziari diversi. Se i risultati saranno simili, potremmo definire il sistema robusto. La nostra esperienza in tal senso ci ha insegnato che affinchè un algoritmo sia valido per più strumenti bisogna rinunciare ad operazioni di filtro, spesso questo rende poi i risultati del sistema poco incoraggianti.

Robustezza trading system regole statistiche

Esistono  poi complesse tecniche di statistica, che cercheremo di spiegare semplicemente senza entrare nel dettaglio tecnico, vedremmo come la complessità che le caratterizza non è sinonimo di efficacia. Tecniche di resampling (dette tecniche di bootstrapping ) attraverso le quali è possibile spostare in modo casuale la posizione temporale dei vari trades che contribuiscono alla formazione dell’equity line di un trading system, modificando solo la posizione temporale ma mai il valore.

Ovviamente variando solo la posizione temporale dei singoli trades il risultato finale dell’equity line non varierà. L’obiettivo di questa tecnica è quello di stressare il più possibile l’equity line producendo tantissime combinazioni diverse di essa attraverso le quali  il programmatore potrà ipotizzare i possibili scenari futuri dell’equity line; in modo particolare potrà analizzare la combinazione peggiore in termini di massimizzazione del drawdown (la combinazione  temporale di trades che comporta il max drawdown). Ovviamente l’ipotesi di base di questa tecnica è che nel futuro il sistema presenterà la stessa distribuzione di trades (vincenti e perdenti) osservata nel passato. A nostro avviso un’ipotesi molto forte.

Montecarlo

Spesso sentiamo parlare poi della tecnica Montecarlo applicata ai Trading system. Da wikipedia leggiamo “Il Metodo Monte Carlo fa parte della famiglia dei metodi statistici non parametrici. È utile per superare i problemi computazionali legati ai test esatti (ad esempio i metodi basati sulla distribuzione binomiale o calcolo, che per grandi campioni generano un numero di permutazioni eccessivo). Il metodo è usato per trarre stime attraverso simulazioni. Si basa su un algoritmo che genera una serie di numeri tra loro incorrelati, che seguono la distribuzione di probabilità che si suppone abbia il fenomeno da indagare. L’incorrelazione tra i numeri è assicurata da un test di chi quadrato”. 

In pratica è possibile attraverso il metodo Montecarlo (anche attraverso Excel si possono costruire modelli statistici Montecarlo) generare dei valori pseudo-causali che possono essere utilizzati come serie  dei prezzi per testare il trading system creato. I risultati del trading system applicato alle serie  generate saranno indice di robustezza del sistema. Anche in questo caso stiamo considerando ipotesi forti, stiamo considerando infatti che la media e la varianza dei prezzi futuri sia la stessa di quella osservata nel passato (abbiamo infatti parlato di valori pseudocausali). Si intuisce quindi che anche quando un trading system ha passato i diversi  test di robustezza, non si avrà mai la certezza che in futuro l’equity line sia in linea con quella registrata con i dati storici in backtest.

Conclusione

Dopo la creazione di alcuni algoritmi, anche molto complessi (anche con buone perfomances) continuiamo a preferire per l’operatività algoritmi semplici. Al momento la nostra esperienza ci insegna che la semplicità dell’idea di trading che sta alla base di un trading system rappresenta la migliore soluzione per la creazione di un trading system robusto.