Era il 2017 e dopo aver visto il lungometraggio di AlphaGo, ricordo spesi diversi mesi a riprendere il tema del Reinforcement Learning (RL) e acquistai diversi libri con un occhio all’applicazione in ambito trading e investing. Avevo già lavorato sul RL, ma un esame attento degli ultimi sviluppi, in cui tali tecniche venivano affiancate e coadiuvate dal Supervised e dall’Unsupervised Learning, sembravano aprire nuovi orizzonti. Ma andiamo con ordine.
AlphaGo è stato un importante passo in avanti nell’applicazione del Reinforcement Learning come branca dell’Intelligenza Artificiale (AI). AlphaGo è stato sviluppato da DeepMind, una divisione di Alphabet (Google), ed è stato il primo algoritmo di intelligenza artificiale ad avere sconfitto un campione mondiale umano di Go, un gioco di strategia apparentemente elementare, ma estremamente complesso nella sua evoluzione. Uno dei mantra dei giocatori di Go (gioco molto praticato in oriente) è che il numero di mosse possibili sul Goban (la scacchiera del Go) superino il numero degli atomi dell’universo (10^180 contro una stima di 10^80). Quest’ultima considerazione (per quanto frutto di approssimazioni) dovrebbe far comprendere il motivo per il quale gli ingegneri di Google avessero tanto a cuore la supremazia nel gioco del Go (per fare un confronto il gioco degli scacchi ha una stima di mosse possibili di 10^50).
Si ma cos’è il Reinforcement Learning? Semplificando si tratta di una branca dell’apprendimento automatico che si concentra su come un agente interagisce con il suo ambiente per massimizzare una ricompensa cumulativa. In altre parole, l’agente fa una scelta basata sulla sua esperienza e ottiene un feedback positivo o negativo, che gli dice se la scelta è stata buona o meno. In base a questo feedback, l’agente adatta la sua strategia per ottenere una maggiore ricompensa in futuro.

In AlphaGo, l’agente era l’algoritmo stesso che cercava di massimizzare la sua ricompensa, ovvero vincere il gioco del Go. L’algoritmo è stato addestrato su milioni di partite giocate da esseri umani, acquisendo informazioni sulle mosse vincenti e perdenti in diversi contesti. Quindi, durante le partite contro i giocatori umani, AlphaGo ha utilizzato queste conoscenze per prendere decisioni basate sulla valutazione delle sue mosse e della situazione del gioco.
L’impatto di AlphaGo sulla ricerca e sulla comprensione del Reinforcement Learning è stato enorme. Ha dimostrato che l’intelligenza artificiale può essere addestrata su un’ampia gamma di problemi e può superare le prestazioni degli esseri umani in molte attività. Inoltre, ha aperto la strada a molte altre applicazioni del Reinforcement learning, tra cui il controllo dei robot, la navigazione autonoma e la risoluzione di problemi complessi. In conclusione, AlphaGo è stato un importante punto di svolta nell’applicazione del Reinforcement learning e ha avuto un impatto significativo sulla ricerca e lo sviluppo dell’intelligenza artificiale.
Per i non addetti ai lavori è bene dare alcune indicazioni di orientamento che collochino tale branca dell’AI rispetto alle altre categorie. Il reinforcement learning differisce dal supervised e unsupervised learning perché:
- Supervised Learning: l’algoritmo apprende da esempi etichettati, cercando di mappare input a output previsti.
- Unsupervised Learning: l’algoritmo impara dai dati non etichettati, cercando di identificare pattern o strutture nei dati.
- Reinforcement Learning: l’algoritmo apprende da esperienze tramite feedback positivo o negativo, cercando di massimizzare una ricompensa cumulativa.

Ma facciamo degli esempi concreti:
Supervised Learning: il problema di previsione dei prezzi futuri di un’azione può essere affrontato utilizzando il supervised learning. In questo problema, l’obiettivo è prevedere il prezzo futuro di un’azione sulla base di dati storici sul prezzo dell’azione e su altri fattori che possono influire sul prezzo, come ad esempio la performance dell’economia, i tassi di interesse, le notizie finanziarie e le politiche aziendali.
Il modello di previsione viene addestrato su un set di dati storici che include il prezzo dell’azione in un momento specifico e i fattori correlati in quel momento. Il modello utilizza questi dati per identificare la relazione tra i fattori e il prezzo dell’azione, quindi usa questa relazione per effettuare previsioni sul prezzo futuro dell’azione.
Il modello potrebbe essere addestrato utilizzando un algoritmo di apprendimento supervisionato come ad esempio regressione lineare, regressione logistica, random forest o reti neurali.
Unsupervised Learning: l’asset allocation può essere affrontato utilizzando un’approccio di unsupervised learning, in particolare l’analisi di clustering. In questo problema, l’obiettivo è suddividere gli investimenti in diverse categorie o cluster basati sulle loro caratteristiche, come ad esempio il rendimento storico, la volatilità e la correlazione con altri investimenti.
Il modello di clustering utilizza un algoritmo come ad esempio K-Means o DBSCAN per analizzare i dati sugli investimenti e identificare automaticamente gruppi di investimenti con caratteristiche simili. Questi gruppi potrebbero essere utilizzati per classificare gli investimenti in diverse categorie o per fare una suddivisione ottimale degli investimenti stessi. Ad esempio, i cluster potrebbero includere investimenti ad alto rendimento e ad alto rischio, investimenti a basso rendimento e a basso rischio, e così via. Queste categorie possono quindi essere utilizzate per prendere decisioni informate sulla suddivisione degli investimenti.
Reinforcement Learning: il trading può essere affrontato direttamente utilizzando il reinforcement learning. In questo problema, l’obiettivo è sviluppare un agente di trading che prenda decisioni automatiche su quando comprare o vendere uno strumento finanziario sulla base delle informazioni sul mercato e sugli strumenti finanziari.
L’agente di trading viene addestrato utilizzando un algoritmo di reinforcement learning per imparare a prendere decisioni ottimali sulla base delle ricompense ricevute o non ricevute. Ad esempio, cercando di semplificare, l’agente potrebbe essere ricompensato per il guadagno realizzato dalle sue decisioni di trading, o penalizzato per le perdite.
Potrebbe esplorare le varie possibilità, prendendo decisioni e ottenendo ricompense, e utilizzare queste informazioni per migliorare le sue decisioni future. Questo processo di apprendimento continuo aiuta l’agente a sviluppare una strategia di trading ottimale che possa essere adattiva, consentendogli di modificare il proprio comportamento in base alle condizioni al contorno.
L’elemento dirimente è il concetto di backtest che, nel caso del RL, assume una forma tutta nuova.
Quando si parla di backtest (o backtesting) intendiamo un insieme di tecniche utilizzate per valutare la validità di una strategia di trading prima di applicarla in modalità live sul mercato.
Nel caso di un sistema tradizionale di supervised learning (ad esempio un trading system quantitativo a matrice genetica) si usa suddividere lo storico a disposizione in due sequenze disgiunte: il training (o in sample), su cui generare la strategia mediante un processo di ottimizzazione progressiva, e test (o out of sample) su cui validare la bontà o meno delle decisioni prese in in sample. Nonostante tale architettura possa essere resa più robusta, ad esempio, mediante una segmentazione più fitta come una GSA (è possibile leggere sul tema questo articolo), rimane uno dei peccati originali: le regole che governano il sistema di compravendita rimangono statiche e, come tali, fragili.
Qualcuno potrebbe obiettare che l’applicazione di sistemi di equity & performance control possono proteggere da un cambiamento della natura del sottostante o che un approccio walk forward possa rendere tale architettura dinamica. Entrambe sono obiezioni corrette, a mio modo di vedere, ma non risolvono completamente la rigidità di progetto.
Una strategia basata su reinforcement learning apprende invece in modo continuo anche dopo il termine della fase di addestramento. L’agente riceve di continuo aggiornamenti dall’ambiente di lavoro (stato e ricompensa/penalizzazione) e a sua volta prende delle decisioni (azioni) che alimentano l’ambiente stesso. Questo ciclo virtuoso può tenere conto di ricompense immediate e di medio periodo e questo può consentire al nostro sistema di tamponare i danni nelle fasi negative e di cavalcare i profitti in quelle positive.
Ma cos’è esattamente un Agente?
Nei sistemi di DQN (Deep Reinforcement Learning) o DDQN (Double Deep Reinforcement Learning) vengono utilizzate delle reti neurali per sintetizzare la funzione che leghi lo stato attuale (prezzi e condizioni di mercato) alla decisione più opportuna in termini di acquisto (Buy), vendita (Sell), o nessuna azione (Hold) in base al valore atteso dello stato successivo.
Questo determina una fase transitoria dove l’agente (il trading system adattivo) esplora l’ambiente con decisioni parziali e incerte, per poi stabilizzarsi man mano che nuovi elementi arrivano alla sua attenzione.

E’ poi possibile studiare in dettaglio alcune fasi difficili di mercato, determinate da fattori esogeni (di cui l’agente non è informato) per vedere se adatti o meno il comportamento in base alla semplice fluttuazione anomala dei prezzi. Nella figura sottostante è possibile vedere l’operatività adattiva di un agente DDQN a cavallo del crash azionario del 2020 sull’ETF IWM (Russell 2000). In questa elaborazione specifica la macchina sarebbe riuscita a difendersi bene, mediante un’operatività di vendita allo scoperto concentrata durante il downtrend (colori rosso e arancione).

Tuttavia tali sistemi hanno bisogno di grande potenza di elaborazione durante l’addestramento e spesso soffrono di instabilità (in particolar modo se l’ambiente non descrive opportunamente la maggior parte dei parametri in gioco).
Sintetizzando il reinforcement learning risolve alcuni dei problemi tipici dello sviluppo di sistemi tradizionali, ma ne introduce degli altri, caratteristici dei sistemi dinamici. Ad ogni modo una freccia in più nella nostra faretra di modelli per il trading e per l’investing. E, se dobbiamo proiettare i risultati di AlphaGo negli ultimi anni, la ricerca in questo ambito promette interessanti novità.
Nel laboratorio associato alla Machine Learning Academy (un acceleratore didattico Gandalf Project dedicato a Coding, Analisi Quantitativa e Machine Learning di cui potete leggere qui tutti i dettagli), abbiamo integrato un intero modulo dedicato alle tecniche di Reinforcement Learning applicate al trading e all’investing.
Buona settimana!
Giovanni Trombetta
Founder – Head of R&D
Gandalf Project