Vai al contenuto

Come progettare un Trading System in modo rigoroso

Per comprendere quanto serio sia l’approccio di chi costruisca un trading system, è sufficiente verificare quanto sia stato “tirato” da un punto di vista metrico per ottenere una curva il più possibile regolare ed appetibile. Progettiamo sistemi dal 2001, prima con Traderlabs e successivamente con Gandalf Project (oggi stiamo mettendo la nostra esperienza e la tecnologia prodotta al servizio della gestione anche con Rocket Capital Investment), in un processo virtuoso di continuo rinnovamento. Ma non tutti coloro che operano sui mercati finanziari e sulle Commodity in particolare, hanno chiaro cosa vada osservato con più attenzione durante la fase di progettazione di un sistema.

Proveremo a descrivere per sommi capi quello che poi approfondiamo nei corsi di formazione che eroghiamo a privati e ad istituzionali del mondo del trading e dell’investing:

Setup di Ingresso: si tratta della tecnica con cui decidiamo di prendere posizione sul mercato, che sia al rialzo, al ribasso e bidirezionale. Tipicamente ha a che fare con criteri statistici, la cui matrice può essere quantitativa (ingressi di volatility breakout, level breakout, reversal, pattern multi time frame ecc.) oppure generati da algoritmi evolutivi o da Machine Learning (Programmazione Genetica, Random Forest, Deep Neural Networks ecc.)

Filtri Operativi: tipicamente il numero di operazioni generate consente una riduzione opportuna, per migliorare le metriche del sistema. Sto parlando in particolare della media di profit/loss delle operazioni (Average Trade) che ci parla della sostenibilità del sistema in termini di capienza sui costi fissi (commissioni fisse, commissioni variabili e slippage). Tali filtri cercano di escludere quei trade che abbassino il valor medio di Average Trade e Profit Factor, pur essendo magari in grado di generare una dinamica positiva della curva dei profitti (Equity Line). Stiamo parlando dei Filtri di Trend (possiamo decidere ad esempio di operare al rialzo sul 5 minuti soltanto se il trend giornaliero sia rialzista, oppure se il valore nominale di un ADX sia superiore o inferiore ad una certa soglia ecc.) dei Filtri di Volatilità (cerchiamo una compressione su un time frame superiore a quello su cui operiamo, sfruttando una fisiologica periodicità del “respiro” di mercato), dei Filtri Periodici o Bias (operare ad una certa ora in intraday o escludere un determinato giorno della settimana come il venerdì per operatività short sui principali metalli come Gold, Silver e Platinum) oppure dei Filtri di Liquidità (isoliamo in intraday le aree temporali su cui siano maggiori i volumi di scambio, per garantirci mediamente uno slippage minore e movimenti più partecipati).

Setup di Uscita: stiamo parlando dell’insieme delle modalità di uscita dal trade. Uscite a Tempo (che cerchino di cogliere l’inerzia di un movimento impulsivo), Uscite  su Livelli di prezzo o di volatilità (sono le più comuni e chiudono spesso trade partiti su medesimi criteri), Uscite a Pattern (in presenza di pattern ribassisti per operatività al rialzo e viceversa) o Uscite Monetarie (parliamo di criteri legari al money e position management come lo stoploss, il takeprofit, il trailingstop/profit ecc.)

Ovviamente potremmo continuare con ulteriori regole e suddivisioni, ma di base questi tre punti descrivono piuttosto bene i criteri cardine che caratterizzano un trading system. Se quello di cui abbiamo parlato è prevalentemente tecnica, affrontando il tema della validazione passiamo nel campo di una visione per così dire “a tutto tondo”. Se è vero come è vero che il mercato è un animale mutevole, questo sembra togliere molte certezze. Come possiamo aumentare le probabilità che un dato sistema abbia una maggiore probabilità di continuare a generare profitti nel prossimo futuro?

La risposta esiste ed ha a che fare con il modo in cui percorriamo i vari step di progettazione: in letteratura oggi troviamo ovunque (non era così una ventina di anni fa) il suggerimento di testare il proprio sistema su storici sconosciuti o variati artificialmente (“noise addicted”), oppure banalmente di suddividere in periodi multipli In Sample ed Out of Sample l’unico storico a disposizione. Ancora è possibile ispirarsi al principio che la robustezza e quindi la “persistenza” del modello (siamo stati tra i primi a dare la definizione del concetto di persistenza) possa essere inversamente legata alla complessità delle regole in gioco. Si è anche visto come la complessità evocata dal modello non abbia alcun legame con la complessità del prodotto finito (possiamo ad esempio utilizzare un approccio estrememente complesso che generi un trading system dalle regole semplici).

Vediamo un esempio ispirato da un’intera classe di sistemi trend following che operino sui metalli e sul Gold Future in particolare. Stiamo parlando del sistema “Cloud Break” che, pur basandosi sul medesimo criterio di ingresso, è declinato in varie versioni che dipendono dal differente criterio di uscita.

Di seguito l’equity line ad operazioni chiuse della versione “Gold Cloud Break” che opera su barre a 15 minuti (equity ad unico contratto su Gold Future) ma ha un approccio tipicamente multi time frame:

Tra i vari sistemi di breakout su cui abbiamo lavorato in questi anni è uno di quelli che ha sofferto di meno la fase degli ultimi tre anni e sembra aver ripreso bene il suo lavoro di creazione di valore. Nella prossima tavola vediamo invece l’equity line ad operazioni aperte:

La curva è si regolare (si tenga conto della scala e del fatto che tale sistema non sia stato mai riottimizzato) ma mantiene delle irregolarità che non è nostra intenzione “limare”. Il concept di tale sistema è semplice e così com’è funziona anche su SilverPlatinumSoybeans, Sugar e su alcuni currency future, cosa non da poco e che ci parla di una corretta validazione.

La versione che ho appena mostrato e che verrà rilasciata ai corsisti del corso “L’Officina dei Trading System” (fruibile da remoto e anche in versione registrata) è basata su un’uscita legata ad un particolare bias di ogni singolo strumento (consiglio di evitare di produrre sistemi Bias in generale, per questioni legate alla loro tenuta, ma alcuni aspetti ricorrenti possono essere utili per essere innestati su una singola uscita, come in questo caso).

Vediamo cosa accade se cambiamo semplicemente il criterio di uscita con uno legato alla volatilità. Vediamo l’equity line ad operazioni chiuse:

Ed ora quella ad operazioni aperte (temporizzata):

Quello che emerge è che sembra di guardare un sistema completamente avulso dal primo: maggiore sofferenza negli ultimi anni con periodi più prolungati in laterale. Dovremmo aver compreso l’importanza di utilizzare i vari elementi di un trading system come fossero dei mattoncini lego da combinare tra di loro.

Ma anche se abbiamo lavorato bene, un trading system può desincronizzarsi dal comportamento del mercato di riferimento (si pensi alle tecniche di breakout sui metalli o a quelle di gap filling su alcuni index future, che hanno vissuto fasi alterne dal 2017 ad oggi). E’ quindi necessario pensare ad un sistema di inibizione dell’operatività che intercetti una avaria in corso sul modello e ci difenda da perdite vitualmente infinite. Allo stesso modo tale sistema deve essere in grado di riaccendere la strategia qualora le condizioni ritornino sincrone al mercato su cui è applicata la strategia. Stiamo parlando dei sistemi di Performance Control o Equity Control che da soli meritano uno studio ed un approfondimento a parte (Il quinto modulo della Python Academy tratta proprio questo tema con grande dettaglio e per i vecchi utenti di Easylanguage e Powerlanguage stiamo per lanciare un nuovo prodotto di formazione che descrive la nostra lunga esperienza su questo tema, andando ben oltre il vecchio corso di Equity Control che abbiamo tenuto per otto anni consecutivi).

Ma se abbiamo ottenuto sistemi correttamente validati e potenzialmente persistenti, applichiamo delle strategie di Performance Control evolute per proteggerci dalle avarie, cosa manca ancora?

Ispirandosi alle Tecniche Rotazionali utilizzate per la composizione di portafogli di strumenti finanziari, abbiamo esteso molti di questi meccanismi alla Rotazione di Strategie all’interno di un intero portafoglio di Trading System. E’ possibile utilizzare algoritmi che premino i migliori e associno loro una maggiore esposizione, che eliminino i peggiori o che facciano prevalere i trading system la cui produzione di utili sia il più decorrelata possibile in termini di paniere, solo per fare degli esempi (da oltre due anni trovate tutto nel sesto modulo della Python Academy).

Per quesiti ed informazioni potete scriverci una email a info@gandalfproject.com

Have a good trade!

Giovanni Trombetta

Founder & Head of Research & Development Gandalf Project

AVVERTENZE: I contenuti di questo articolo (e degli altri contenuti in questo sito) e le opinioni espresse non devono in nessun caso essere considerati come un invito all’investimento.
Le analisi non costituiscono mai una sollecitazione all’acquisto o alla vendita di qualsivoglia strumento finanziario. Queste note hanno per oggetto analisi finanziarie e ricerca in materia di investimento. Qualora vengano espresse delle raccomandazioni, queste hanno carattere generale, sono rivolte ad un pubblico indistinto e mancano dell’elemento della personalizzazione.
Sebbene frutto di approfondite analisi, le informazioni contenute in questo e negli altri articoli possono contenere errori. Gli autori non possono in nessun caso essere ritenuti responsabili per eventuali scelte effettuate dai lettori sulla base di tali informazioni erronee. Chi decide di porre in essere una qualsiasi operazione finanziaria sulla base delle informazioni contenute nel sito lo fa assumendone la totale responsabilità.

DISCLAIMER: The contents of these notes and the opinions expressed should in no case be considered as an invitation to invest. The analyzes never constitute a solicitation to buy or sell any financial instrument.
These notes relate to financial analysis and investment research. If recommendations are made, these are of a general nature, are aimed at an indistinct audience and lack the element of personalization.
Although the result of in-depth analysis, the information contained in these notes may contain errors. The authors cannot under any circumstances be held responsible for any choices made by readers on the basis of such erroneous information. Anyone who decides to carry out any financial transaction on the basis of the information contained in the site does so assuming full responsibility.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.