Come si arriva a realizzare un sistema di Trading Automatico efficace e performante
La creazione di un Expert Advisor passa attraverso una complessa fase di progettazione e programmazione che termina con la realizzazione definitiva del software. Per essere validato, un Trading System deve però superare numerosi passaggi che ne valutano la funzionalità, l’efficacia, la robustezza e soprattutto la reale profittabilità a mercato.
Quando si parla di Trading System, siamo abituati a vedere all’opera software sofisticati che attraverso complessi algoritmi sono in grado di automatizzare una strategia di Trading. Quello che non vediamo, è la serie di passaggi che ha portato alla realizzazione del Trading System, e soprattutto la serie di Test indispensabili per arrivare alla validazione definitiva e alla commercializzazione dello stesso.
Un processo fondamentale, quello della validazione, che non può essere ridimensionato o addirittura eluso completamente, come spesso accade quando si è mossi dall’esigenza di mettere a mercato un Trading System in tempi eccessivamente ristretti.
La fase di collaudo
La progettazione di un Trading System automatizzato si conclude con il collaudo dello stesso: questo significa che, prima di ogni altra cosa, il software viene testato in tutte le sue funzioni. In sostanza, nella fase di collaudo ci si accerta che il Trading Robot faccia quello per cui è stato creato. In termini di analisi, questo significa apertura e chiusura dei trades, piazzamento di take profit, stop loss e così via. Il collaudo di un Trading System è assolutamente necessario per verificare la validità e la stabilità del codice di programmazione, e per individuare eventuali errori che possono così essere emendati prima ancora dei Test successivi.
In questa fase non è impossibile scontrarsi con piccoli bug, o difetti di programmazione, che in maniera più o meno grave possono influenzare il funzionamento dei processi algoritmici, impedendo lo svolgersi ordinario della strategia di Trading: ad esempio, il codice potrebbe non aver previsto alcune situazioni particolari o determinati casi limite che possono verificarsi sul mercato. Infine, quando si può essere sicuri del corretto funzionamento e della stabilità del sistema (e questo avviene dopo centinaia di Test che diano margini di sicurezza altissimi), si può allora passare alle fasi successive del processo di validazione.
I Test storici
Questa seconda fase di Test è finalizzata alla verifica dell’efficienza e della profittabilità della strategia su cui si basa l’Expert Advisor: in pratica si va a valutare se, al di là del corretto funzionamento del sistema, la strategia sia in grado di generare profitti oppure no. Questo tipo di Test è sicuramente il più importante e avviene principalmente tramite l’effettuazione di backtest storici, che si effettuano facendo lavorare l’Expert Advisor su dati storici reali ed osservando il comportamento dello stesso alle prese con determinati spezzoni temporali di mercato: a mero titolo di esempio, si potrebbe testare il Trading Robot sul periodo 2016/2019 e capire come si sarebbe comportato lo stesso se fosse stato attivo in quel determinato periodo.
Per effettuare Test storici che abbiano un reale riscontro, è necessario utilizzare dati di altissima qualità, che non sono quelli forniti gratuitamente dalle principali piattaforme di Trading ma devono essere acquistati separatamente da fonti affidabili. I dati gratuiti delle piattaforme presentano infatti numerosi buchi e inesattezze che rendono l’eventuale test effettuato assolutamente non attendibile. Ma oltre alla qualità dei dati storici, è di fondamentale importanza testare l’Expert Advisor su condizioni di mercato reale, in termini di spread, costi e commissioni: questo aspetto viene spesso ignorato ma in realtà è di primaria importanza, perché riguarda una serie di costi che incidono pesantemente sui risultati di una strategia, anche stravolgendoli.
Un test storico è tanto più attendibile quanto più tiene conto di tutte le variabili che possono influire sui prezzi di mercato, aderendo perfettamente alla verità storica. Al tempo stesso, la durata del periodo storico su cui vengono effettuati i Test è un altro fattore direttamente proporzionale all’affidabilità degli stessi: un Test effettuato su un arco temporale di un anno, per esempio, sarà scarsamente indicativo della reale efficacia del Trading System perché offrirà un banco di prova troppo breve per la strategia implementata.
Il processo di ottimizzazione
In occasione dell’effettuazione di tali backtest storici si realizza l’importantissimo processo di ottimizzazione, che permette di individuare i parametri e i settaggi che nel corso del tempo hanno dimostrato una maggiore efficacia, sicurezza e profittabilità: si tratta di un processo delicato, elaborato tramite sofisticati algoritmi che permettono di bilanciare vari fattori ed individuare i parametri più equilibrati e, soprattutto, che abbiano dimostrato un soddisfacente grado di validità su diversi orizzonti temporali.
Questa fase è lunga, perché può comprendere diverse decine di migliaia di Test, e si tratta di un momento di vitale importanza, oltre che di estrema complessità. È un momento importante che consente di determinare i parametri di funzionamento più efficaci per ogni diverso strumento finanziario, generando i vari set di impostazioni che poi saranno utilizzati quando il Trading System verrà messo su mercato reale: il processo di ottimizzazione si basa infatti sull’assunto per cui i parametri di funzionamento che hanno dimostrato il proprio valore su significative porzioni di periodo storico avranno buone probabilità di essere profittevoli anche in futuro.
Quanto sopra esposto rende quindi una precisa idea del ruolo insostituibile rivestito dalla fase di backtest nell’ottica di una completa validazione di un Trading System.
Il rischio di “Overfitting”
Abbiamo accennato anche alla complessità del processo suddetto, e lo abbiamo fatto soprattutto pensando ai rischi derivanti da un’ottimizzazione effettuata senza le dovute precauzioni o senza le competenze necessarie: l’ottimizzazione di un Trading System dovrebbe infatti essere effettuata da figure professionali specializzate, e non dall’utente finale del software che quasi mai ha le competenze necessarie per cimentarsi su tale processo.
Il principale rischio cui si va incontro durante la fase di ottimizzazione si chiama “overfitting”, ed è il fenomeno per cui la selezione effettuata attraverso migliaia di combinazioni porti a considerare come “best choice” un set di parametri che sono “cuciti a pennello” per il determinato periodo storico preso in considerazione, ma che potrebbero rivelarsi inefficaci su qualsiasi altro periodo. Questo avviene quando si fa una valutazione dei risultati asettica, scegliendo i dati che hanno evidenziato le migliori performance in assoluto, senza valutare tutte le variabili in gioco.
La selezione dei dati va infatti effettuata con criteri più complessi, basati soprattutto sul concetto di robustezza, per il quale è importante selezionare parametri che abbiano fornito risultati costantemente buoni (anche se non i migliori) su diversi periodi storici: i dati che dimostrano tale robustezza, meglio ancora se avvalorati dalla possibilità di essere impiegati su diversi strumenti finanziari, possono dare senza dubbio le maggiori garanzie di successi futuri.
I Test live
Terminata questa lunga serie di Test, e prima di iniziare l’eventuale commercializzazione di un Trading System, è necessario però avviare un’ulteriore e fondamentale fase, che è quella dei Test svolti su un conto reale: questi Test sono infatti necessari per capire, in un periodo di tempo abbastanza lungo, se i parametri di strategia testati su dati storici siano validi e performanti anche se applicati a dati reali e attuali.
Senza quest’ultima fase di Test, lunga e costosa, non si può avere la certezza di aver realizzato un Expert Advisor che possa essere vincente sul mercato, poiché non è assolutamente scontato che un Trading System performante nel passato possa essere tale anche in futuro. È in questa delicata fase che viene valutata la reale efficacia di una strategia di Trading e scovati eventuali casi di overfitting: il confronto con il mercato reale costituisce infatti il Test definitivo per un Expert Advisor, che viene messo a confronto con situazioni ed eventi mai avvenuti e, in certi casi, completamente eccezionali.
Su un conto live, tra l’atro, la strategia di Trading ha modo di confrontarsi con situazioni di prezzo reali e non simulate, caratterizzate da costi, commissioni e oscillazioni di spread che i backtest storici potrebbero non aver correttamente considerato.
Conclusioni
Nelle righe precedenti abbiamo quindi illustrato quali sono i vari passaggi che portano dalla realizzazione di un Trading System alla sua validazione definitiva: sarebbe infatti estremamente limitante pensare che il lavoro si concluda con la fase di programmazione informatica o con qualche sommario backtest realizzato sulla propria piattaforma di Trading.
La validazione di un Trading System è invece un processo lungo e complesso, che vede coinvolti diversi soggetti specializzati: è necessario, infatti, che al programmatore che si occupa materialmente della realizzazione del codice si affianchino figure professionali come Strategist del Trading Algoritmico e Analisti dei Mercati Finanziari. Il processo di validazione di un Trading System comporta quindi il lavoro di un Team composto da differenti professionalità, per un percorso che complessivamente può arrivare anche ad un anno di durata: un periodo lungo che implica importanti investimenti, necessari per chiunque abbia l’aspirazione di generare un sistema di Trading Automatico che possa performare in maniera costante e soprattutto duratura.
Un adeguato processo di validazione è l’unica strada verso la realizzazione di un Trading System che possa riprodurre, sui mercati reali, quanto promesso durante le varie fasi di realizzazione: un sistema di Trading Automatico che, in sostanza, abbia una buona probabilità statistica di risultare profittevole sia nel breve che nel lungo termine.
Cristiano Minniti
Cristiano Minniti è uno Strategist del Trading Algoritmico che ha valutato e ottimizzato Trading System automatici provenienti da tutto il Mondo. Dal 2019 è a capo della Swiss Corp e coordina un Team di progettazione specializzato nella realizzazione di Trading Robot caratterizzati da elevati livelli di automazione dell’Intelligenza Artificiale.