Vai al contenuto

Genetic Asset Management su ETF

In questo breve articolo desideriamo presentare il Genetic Asset Management in azione su un portafoglio di tre ETF che rappresentano il mercato azionario, l’oro ed il mercato obbligazionario.

Queste le parole chiave oggetto dell’analisi del presente articolo: Exchange Traded Fund, Genetic Asset Management, Cost Impact, Compounding Effect, Backtest, Walk Forward Analysis, Metric Benchmark.

Per approfondimenti su cosa si intenda in dettaglio per algoritmo di Genetic Asset Management (GAM) vi invitiamo a leggere il seguente articolo:

In questi due articoli precedenti abbiamo invece utilizzato i medesimi asset per comporre due portafogli di confronto:

Questa volta faremo un ulteriore passo in avanti e ci concentreremo, in particolare, sul tema dell’impatto commissionale e sul confronto tra le performance di un portafoglio “buy & hold” (in cui acquistiamo all’inizio dell’investimento e liquidiamo al termine dello stesso) ed uno guidato da un algoritmo di Genetic Asset Management che selezioni in modo “intelligente” quali asset detenere per ciascun intervallo temporale.

Riprendiamo i tre asset su cui avevamo ragionato per la costruzione di un portafoglio grezzo: il mercato azionario (prenderemo SPY, SPDR S&P 500 ETF Trust, che mira a fornire risultati di investimento che, al lordo delle spese, corrispondono generalmente al prezzo e alla performance dell’Indice S&P 500), il mercato obbligazionario (TLT, iShares 20+ Year Treasury Bond ETF, il cui investimento mira a tracciare i risultati di investimento dell’ICE Treasury 20+ Year Bond Index) e il mercato dell’oro (GLD, SPDR Gold Shares, legato all’andamento del prezzo dei lingotti d’oro, meno le spese delle operazioni del Trust). Si tratta di alcuni tra gli ETF più liquidi sul mercato americano e possono essere negoziati come delle azioni (per le limitazioni per il mercato retail europeo fare riferimento al broker di turno).

Partiamo dalla costruzione di un benchmark nella doppia versione con e senza effetto di “compounding” (reinvestimento degli utili, per approfondire questo tema specifico potete leggere il seguente articolo: “Cumulative vs. Compounding: Distinguere le Strade dell’Investimento“).

Nella figura di seguito potete osservare le tre curve di equity sui tre asset (SPY, GLD e TLT) immaginando di acquistare ogni asset, a parità di capitale e senza commissioni, all’inizio di ogni settimana (lunedì all’apertura del mercato americano) e chiudendo la posizione il venerdì in corrispondenza alla chiusura dello stesso.

Il punto di partenza (1) rappresenta il 100% del capitale. GLD, dal 2005, avrebbe portato un profitto di oltre il 180% (2.8), SPY di poco meno (170%) e TLT un 30%. La cosa interessante diventa combinare questi tre investimenti separati in un unico portafoglio.

Immaginiamo infatti di ripartire il nostro capitale associando il 33% dello stesso su ciascun asset, ottenendo l’equity line seguente.

L’investimento avrebbe portato circa il 130% a fronte di un andamento decisamente più stabile di quello dei singoli asset componenti (successivamente passeremo ad un confronto metrico per chiarirci le idee da un punto di vista quantitativo). Per avere una visione di confronto poniamo quest’ultima curva all’interno del grafico precedente (in rosso).

Ora ripetiamo le analisi precedenti, ma aggiungendo l’effetto di compounding (reinvestimento degli utili). Iniziamo dalle serie singole dei tre asset (SPY,GLD,TLT).

L’effetto, come da teoria, si amplifica allontanandosi dal punto di partenza. Vediamo ora il quadro di insieme con un’allocazione “equal weighted” al 33% per ciascun asset.

Anche la curva di portafoglio soffre, per così dire, delle medesime criticità allontanandosi dal punto di inizio dell’investimento (si noti in particolare l’effetto di amplificazione durante il drawdown del 2022). Di sicuro siamo passati ad un profitto di oltre il 230%, ma ciò è avvenuto a fronte di un maggiore rischio. Uniamo le tessere anche in questo caso nella figura seguente.

A questo punto introduciamo il sistema GAM (Genetic Asset Management) che abbiamo codificato e che fa parte del materiale della “Machine Learning Academy“. Analizziamo la scheda di progetto: utilizziamo una periodicità weekly (comoda per eseguire le operazioni propedeutiche alla rotazione durante il weekend a mercati chiusi) e applichiamo una walk forward “rolling” con step di 6 mesi (ri-addestreremo il nostro algoritmo genetico ogni 6 mesi). La fitness function è una nostra vecchia conoscenza, il Kestner Ratio, che tende a premiare curve regolari invece che un profitto più sostanzioso. Utilizziamo una popolazione di 1000 investitori artificiali per 100 generazioni (per un totale di 100000 combinazioni), un “instability factor del 10% e dei costi fissi dello 0.2% a settimana per asset (tali costi sono imputabili alle operazioni di rotazione del portafoglio e caratterizzano una prima approssimazione).

Quello che è importante comprendere è che l’approccio proposto non è un backtest quanto una proiezione. In che senso si chiederà qualcuno? Per comprenderlo seguitemi nei prossimi passi.

Di seguito possiamo vedere i periodi associati all’architettura di Walk Forward Analysis (WFA).

training_start = ['2000-01-01', '2000-07-01', '2000-12-30', '2001-06-30', '2001-12-29', '2002-06-29', '2002-12-28', '2003-06-28', '2003-12-27', '2004-06-26', '2004-12-25', '2005-06-25', '2005-12-24', '2006-06-24', '2006-12-23', '2007-06-23', '2007-12-22', '2008-06-21', '2008-12-20', '2009-06-20', '2009-12-19', '2010-06-19', '2010-12-18', '2011-06-18', '2011-12-17', '2012-06-16', '2012-12-15', '2013-06-15', '2013-12-14'] 

training_end = ['2010-01-01', '2010-07-02', '2010-12-31', '2011-07-01', '2011-12-30', '2012-06-29', '2012-12-28', '2013-06-28', '2013-12-27', '2014-06-27', '2014-12-26', '2015-06-26', '2015-12-25', '2016-06-24', '2016-12-23', '2017-06-23', '2017-12-22', '2018-06-22', '2018-12-21', '2019-06-21', '2019-12-20', '2020-06-19', '2020-12-18', '2021-06-18', '2021-12-17', '2022-06-17', '2022-12-16', '2023-06-16', '2023-12-15']

validation_end = ['2010-07-02', '2010-12-31', '2011-07-01', '2011-12-30', '2012-06-29', '2012-12-28', '2013-06-28', '2013-12-27', '2014-06-27', '2014-12-26', '2015-06-26', '2015-12-25', '2016-06-24', '2016-12-23', '2017-06-23', '2017-12-22', '2018-06-22', '2018-12-21', '2019-06-21', '2019-12-20', '2020-06-19', '2020-12-18', '2021-06-18', '2021-12-17', '2022-06-17', '2022-12-16', '2023-06-16', '2023-12-15', '2024-05-12']

Ad esempio, il primo periodo di training, quello per capirci deputato all’individuazione della migliore regola genetica di asset allocation per il primo periodo di validation, va dal 1 gennaio 2000 al 1 gennaio 2010. La regola determinata in tale periodo verrà propagata dal 2 gennaio 2010 fino al 2 luglio 2010, per sei mesi appunto, su dati completamente sconosciuti.

Potete osservare, ad esempio, un’istantanea, in generazione 8, del primo ciclo di ottimizzazione della WFA.

Una linea rossa divide il training (in sample) dal validation (Out of Sample). Di fatto la macchina cercherà le soluzioni migliori in base alla fitness function (KR) e propagherà tale regola per i primi sei mesi del 2010 in territorio sconosciuto. Sulla destra potete osservare la scala relativa al profit/loss (equity line in blue), mentre a sinistra il numero di asset investiti settimana dopo settimana (grafico beige).

Di seguito invece possiamo vedere lo step successivo di addestramento (generazione 2) della nostra WFA. La regola determinata fino a luglio 2010 viene propagata fino alla fine del 2010.

S noti come soltanto in rari momenti venga proposta una allocazione su tutti e tre gli asset.

Al termine del processo di WFA saremo in grado di unire tutti i periodi di validation su cui siano state propagate le regole determinate nel periodi di training precedenti.

In blue possiamo apprezzare la strategia dinamica ottenuta dal processo di Genetic Asset Management, in cui abbiamo unito ogni tessera di sei mesi in sei mesi. In verde l’equivalente che avremmo ottenuto da gennaio 2010 con una strategia Buy&Hold senza reinvestimento degli utili. Si noti come la scala, in questo caso, sia relativa ai soli profitti, partendo perciò da 0. Di seguito un dettaglio della sola strategia composita di GAM.

Interessante osservare come da fine novembre 2023 la strategia si sia messa flat (0 asset allocati).
A colpo d’occhio possiamo osservare come il Buy&Hold faccia registrare circa un 90% di profitto contro un 55% della strategia composita. A questo punto diventa interessante fare un confronto quantitativo tra le due alternative di investimento.

Riservandoci di andare maggiormente in profondità in un secondo articolo, analizziamo rapidamente due parametri specifici, il drawdown (un parametro di rischio atteso) ed il Calmar Ratio (un parametro di rapporto tra rischio e rendimento).

Possiamo vedere in sequenza il profilo del drawdown della strategia B&H e di quella genetica. Passiamo rispettivamente da un max draw down del -25% ad uno del -8%. Confortante un Calmar Ratio del 6.41 contro il 3.58 del Buy&Hold. In sintesi abbiamo barattato del profitto per un livello di rischio atteso inferiore.

Si tratta di un primo step per la costruzione di una strategia alternativa di asset management di matrice genetica che abbia la caratteristica di essere adattiva e a rischio controllato.

Gandalf Project è diventato un “incubatore” di progetti di analisi quantitativa sul mercato regolamentato ed il primo è una integrazione di sistemi genetici adattivi all’interno delle piattaforme Tradestation e Multicharts. Domenico D’Errico è il project manager di tale adattamento e vi terremo aggiornati sui prossimi passi.

Tutte le tavole (ad eccezione dell’ultima) che abbiamo presentato in questo articolo, sono ottenute con Python e sono parte del materiale fornito all’interno dei percorsi Python Academy e Machine Learning Academy (i nostri acceleratori didattici di punta su coding, analisi quantitativa e intelligenza artificiale).

Ricordo sempre a tutti che è possibile prenotare un confronto via zoom (o telefonico per chi preferisce) per capire insieme se i percorsi possano rispondere o meno alle proprie esigenze. E’ sufficiente scriverci ad info@gandalfproject.com

Giovanni Trombetta

Founder, Head of R&D
Gandalf Project

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *