
Algotrading e 4Invest
Gli algoritmi applicati alla finanza hanno una lunga storia con diverse tappe durante il loro sviluppo prima di giungere a quello che oggi viene definito “algotrading”. Il significato di questa “macro-categoria”, anche se etimologicamente può significare qualsiasi tipo di algoritmo (ovvero uno o più procedimenti che risolvono determinati problemi attraverso un numero finito di passi elementari) applicata al trading, oggi è qualcosa di più complesso ed articolato, che si occupa non solo della fisica esecuzione di un trade in modo automatico, ma anche di un’analisi pre-trade, dell’esecuzione, della gestione ed infine di un’analisi post-trade.
Lo sviluppo dell’algotrading e l’idea di automatizzare attraverso l’uso delle macchine le operazioni di trading di borsa, nasce in maniera naturale via via che si sviluppava ed evolveva l’informatica e l’analisi tecnica. Se da una parte quest’ultima trovava nuove e stimolanti applicazioni attraverso l’uso dei personal computer, ottenendo quindi una maggior rapidità dei calcoli e una conseguente possibilità di verifica degli stessi su più larga scala, dall’altra l’informatica poteva contribuire oltre che alla semplice analisi, anche agli aspetti operativi. Se inizialmente lo scopo era quello di velocizzare l’uomo nei calcoli e nelle analisi ed aiutarlo ad eliminare la componente emotiva, ben presto si capì che il contributo poteva essere ancora più profondo, ovvero non più solamente “supporto” a quello che l’uomo faceva prima, ma anche contributo a sviluppare ulteriormente il settore ed evolversi così nel corso degli anni.
L’Algotrading, è quindi una macrocategoria molto eterogenea all’interno della quale gli algoritmi si differenziano sulla base della loro origine e sviluppo successivo.
​
​
Trading system automatizzati
​
Questa evoluzione, parte successivamente ad una prima tecnica di sviluppo di algoritmi per il trading di borsa che nasce direttamente dalla “traduzione” dell’analisi tecnica grafica “manuale” in quella “automatica” su indicatori grafici automatizzati e successivamente automatizzando l’esecuzione dei trade seguendo il modello di analisi tecnica prestabilito. Questo è il primo e più vecchio tipo di trading su base algoritmica, nato ormai molti anni fa, che se inizialmente poteva essere riservato ad informatici capaci di creare programmi adatti allo scopo, si è poi sviluppato molto nel corso degli anni grazie alla nascita di diversi software (ad esempio Tradestation, Multicharts, Metatrader, Ninjatrader ecc) che permettono attraverso linguaggi di programmazione semplificati o addirittura attraverso metodologia “visuale” click-and-drop di creare in maniera relativamente semplice degli algoritmi di trading personalizzati.
Questa prima generazione di trading “algoritmico” ha però rivelato ben presto numerosi difetti. Pur essendo una metodologia che, se eseguita correttamente e con esperienza, può portare ad algoritmi di trading sufficientemente solidi, è comunque una metodologia fortemente personalizzata e oltretutto fortemente esposta a rischi di overfitting, ovvero quando un modello (di trading, così come in generale qualunque modello statistico) molto complesso si adatta ai dati osservati perché avente un numero eccessivo di parametri rispetto al numero di osservazioni; in altre parole, un modello sbagliato che non funzionerà, può adattarsi perfettamente al sottostante e al suo storico (backtest) se è abbastanza complesso rispetto alla quantità di dati disponibili.
Oltre a queste problematiche, questa prima metodologia di costruzione di modelli di trading algoritmico risulta limitata alle analisi e al lavoro che si può svolgere con risorse che paragonate a quanto offre oggi il panorama globale informatico e di analisi moderno, possono essere definite “limitate”.
La presenza di queste ed alte problematiche ed il progresso negli anni passati dei processi informatici, ha dato il via allo sviluppo di una seconda generazione di modelli di trading algoritmici, quelli legati allo sviluppo attraverso modelli genetici e/o utilizzando anche algoritmi in reti neurali artificiali.
​
​
Evoluzione alla metodologia genetica
​
L’idea che una macchina possa essere più efficiente dell’occhio umano, nel trovare setup per entrare a mercato, così come per gestire il trade stesso e per ottimizzarne l’uscita, trova le sue fondamenta nello sviluppo del trading algoritmico, e nel cercare di sopperire ai difetti della prima generazione più “manuale”; dando quindi inizio allo sviluppo di questa generazione di algoritmi di trading legati come dicevamo nella costruzione a modelli genetici e/o reti neurali. Questa metodologia, se usata correttamente, offre notevoli vantaggi rispetto alla prima generazione e certamente permette di bypassare o quantomeno ridurre molto i rischi, come ad esempio quello dell’overfditting. Questo metodo, anziché sondare tutte le combinazioni possibili, prende “strade casuali” valutando e archiviando la migliore soluzione sino a quel momento, utilizzando processi evolutivi presi in prestito dalla genetica, da cui il nome; calcoli altrimenti difficilmente eseguibili se non con notevoli risorse informatiche e che avrebbero richiesto decine di ore di studio, sono diventati accessibili e amplificabili. Il risultato, che non sarà necessariamente il migliore in senso assoluto, descrive adeguatamente bene il problema sulla base dei parametri impostati (grazie ad una primissima forma, un po’ rudimentale per l’accezione moderna del termine e per le tecnologie oggi a disposizione, che appunto viene spesso impropriamente definito machine learning), ed attraverso un corretto uso dei dati a disposizione, divisi tra impostazioni, test e verifica (out of sample ed in sample), ha permesso, fino ad oggi, di ottenere buoni risultati. Oltre alla creazione di programmi informatici personalizzati basati su queste tecnologie, che naturalmente poteva e può essere a disposizione solo di tecnici informatici ed esperti del settore, negli anni lo sviluppo e lo studio di questo metodo ha subìto una notevole spinta grazie anche alla nascita di software di “autogenerazione” di trading system (come ad esempio AdapTrade Bulder, Trading System Lab, StrategyQuant ecc.) che, applicando queste tecnologie, hanno permesso di espandere notevolmente negli anni questo metodo e di renderlo facilmente accessibile a tutti.
Queste metodologie, attraverso algoritmi genetici (basati come dicevamo proprio sui principi di ereditarietà ed evoluzione genetica), reti neurali artificiali e logica fuzzy, hanno dato nuovo impulso allo sviluppo dell’intelligenza artificiale applicata al trading. L’utilizzo dell’intelligenza artificiale che ormai grazie a numerosi software citati sono a disposizione di tutti da almeno un decennio, ha suscitato comunque notevoli interrogativi. Con il passare degli anni infatti, anche questa metodologia ha evidenziato non poche lacune e punti interrogativi. Infatti, pur permettendo un notevole passo avanti nei sistemi di trading algoritmico, essa non è assolutamente priva di rischi di correlazioni spurie (spesso agganciandosi appunto a queste correlazioni in vari modi, per esempio nella ricerca dei pattern).
I modelli così creati possono poi "ancorarsi” ad impostazioni erronee, essendo oltretutto prive di normalizzazione (gaussianizzazione) dei parametri utilizzati, possono agganciarsi anche a “generazioni” erronee e sviluppare le successive generazioni con degli errori di base, ma soprattutto, rimangono modelli addestrati al comportamento del sottostante e a quanto hanno analizzato nel passato storico, non prevedendo studi statistici per interpretare le variazioni presenti nei dati o per prevederne lo sviluppo futuro; i sottostanti, infatti, possono mutare strutturalmente ed anche in maniera molto importante nell’arco di poco tempo. I modelli si comporteranno quindi bene solo se il sottostante rimarrà sempre all’interno delle logiche analizzate nel passato (cosa che si è rilevata estremamente pericolosa, soprattutto nel periodo storico di grossi mutamenti che stiamo vivendo oggi). Seppur l’evoluzione nel tempo di questo metodo e di questi software abbia, accortosi di queste problematiche, introdotto e sviluppato metodi aggiuntivi come ad esempio applicando in alcuni casi dei processi di alterazione dei prezzi casuale o dei parametri per cercare di “scollarsi” dall’utilizzo diretto del sottostante, rimangono comunque alterazioni blande, che se anche possono contribuire a ridurre i rischi di overfitting, non certamente possono intervenire sulla complessità dei problemi o delle correlazioni citate o sui mutamenti del sottostante o anche sulla variazione in senso statistico che un sottostante può avere.
Così come i modelli tradizionali e di prima generazione, questo tipo di approccio attraverso i modelli genetici seppur partendo da uno studio di un campione di dati per arrivare alla soluzione ottimale che nel passato ha generato le migliori performance (e introducento importanti novità e sviluppi nel settore), non può tuttavia dare notevoli rassicurazioni che nel futuro si avranno performance in linea con il passato. Il sottostante dovrà sempre comportarsi in maniera molto simile a ciò che ha fatto in precedenza perché i modelli continuino a funzionare correttamente.
​
​
4Invest e i modelli in Data Science
​
Così, se da una parte questa generazione di algoritmi ha portato notevoli sviluppi, vantaggi e passi in avanti nel settore, ha evidenziato altresì la necessità di effettuare uno step ulteriore, legato non solo all’analisi dei parametri, ma anche alla bontà e solidità degli stessi, alla solidità statistica del modello creato, alla resistenza alle modifiche del sottostante e di conseguenza appunto ad un “allontanamento” dal sottostante stesso. Nasce quindi una nuova generazione, il trading algoritmico in intelligenza artificiale basato sulla data science, con un utilizzo reale dei processi di machine learning, con apprendimento da parte della macchina non solo quindi per il settaggio dei parametri e la ricerca delle condizioni migliori, ma che sappia anche resistere ad un certo grado di mutamenti del mercato, con impostazioni adattabili a sottostanti diversi ma con natura statistica simile.
Questa nuovissima generazione, che è venuta a crearsi solo recentissimamente grazie soprattutto alla notevole rivoluzione avvenuta in campo informatico e di cui la 4Invest Adivsor risulta pioniera, nasce da quanto di buono gli algoritmi genetici e di reti neurali hanno portato al trading algoritmico. La Data Science, grazie ad analisi di Big Data e a processi di Machine Learning hanno permesso di costruire, con metodologie in qualche modo simili agli algoritmi genetici ma non ancorati al sottostante, nuovi modelli e metodi di trading non costruiti sul sottostante e sottoposti a processi di verifica su milioni di test. Linguaggi di programmazione come R o Python, con i vari moduli statistici e le librerie legate ai Big Data, hanno premesso non solo di analizzare quantità di dati altrimenti impossibili da analizzare, ma anche, attraverso procedure di Data Science, di NON lavorare direttamente sui sottostanti ma creare milioni di “potenziali sottostanti” nati da letture statistiche di quelli reali, potendo quindi simulare su centinaia di milioni di test non solo la solidità dei modelli e la mancanza di eccessive correlazioni, overfiting, correlazioni spurie ecc. ma anche un’estrema resistenza dei modelli ai possibili mutamenti dei sottostanti.
Questi nuovi modelli e metodologia, prodotti con le ultime tecnologie legate ai big data combinate a processi di data science e machine learning, non nascono quindi direttamente dai movimenti del sottostante, ma solo in ultima istanza vengono applicati al sottostante selezionato, come se il sottostante reale fosse semplicemente una delle milioni di possibilità analizzate.
La conseguenza dei modelli creati con questa nuova metodologia risulterà non solo priva di tutti quei problemi che potevano essere generati dalle costruzioni basate direttamente sui sottostanti utilizzati, ma anche capace di adattarsi notevolmente meglio ai possibili mutamenti del mercato, avendo infatti già dimostrato di poter lavorare su scenari anche molto diversi fra loro.
Oltre a questo, che già rappresenterebbe un notevole passo avanti, questi processi realizzati grazie a queste recentissime tecnologie e metodologie, hanno permesso inoltre di sviluppare controlli sulla “normalizzazione” dei parametri, così da evitare, grazie a processi di “gaussianizzazione” dei parametri, quello che in statistica viene definito “rumore statistico”.