Vai al contenuto

Gli Algoritmi Genetici non funzionano!

Gli algoritmi genetici non funzionano!

No, non allarmatevi. Non sono impazzito improvvisamente, dopo aver dedicato gli ultimi quindici anni allo studio e all’applicazione dell’intelligenza artificiale al mondo del trading. L’idea di partenza che una macchina sia enormemente più efficiente dell’occhio umano nel trovare un setup interessante per entrare sul mercato, ma anche per gestire il trade e per ottimizzare l’uscita, non mi è balenata all’improvviso, è stata piuttosto una naturale deduzione logica, nata dopo centinaia di ore trascorse davanti ai grafici di borsa. La mia formazione di ingegnere mi ha naturalmente fatto propendere per un approccio “AI” oriented, verificando come le discipline provenienti dal mondo ingegneristico stessero spopolando in tutti i campi dell’”incerto”. E cosa esiste di più incerto di una previsione di borsa…

Le Reti Neurali, in primis, rispolverate ultimamente e particolarmente adatte alla modellizzazione dei moderni Robo Advisor, la Fuzzy Logic e gli Algoritmi Genetici. Discipline ormai mature, grazie alla curva esponenziale di crescita delle performance dell’hardware che ha portato i rudimentali, ma mai dimenticati personal computer degli anni ’80, fino alle vere e proprie workstation integrate negli ultimi modelli di smartphone.

Alle fiere o nei convegni sul trading non siamo più gli unici a parlare di AI e la cosa non può che rallegrarmi. E, statene sicuri, in futuro se ne parlerà sempre di più, già è possibile accorgersene leggendo paper in giro per il mondo.  Difficile azzardare se e quando le macchine sostituiranno completamente gli operatori, aumentando asintoticamente l’efficienza degli scambi, ammesso che qualcuno abbia interesse ad andare in questa direzione.

Eppure autorevoli colleghi, che hanno liquidato fino all’altro ieri come sofismi da tecnici in pericolosa deriva, queste discipline, sembrano finalmente accorgersi che il mondo è andato avanti e che, se si vuole rimanere al passo con i tempi (e non sto parlando certo di HFT) è vitale aggiornarsi soprattutto in questi ambiti. Altri ancora utilizzano queste tecniche affidandosi a procedure built in nascoste nelle moderne piattaforme, senza saperlo. Un esempio per tutti: l’ottimizzatore di Tradestation e Multicharts.

Gli algoritmi genetici non funzionano!

Nella migliore delle ipotesi queste affermazioni provengono dai trader discrezionali, abituati a scovare ad occhio le proprie opportunità di profitto, altre ancora da progettisti di trading system, proprio come me. In un caso e nell’altro si tratta di un pregiudizio destinato a sfaldarsi.

Già, non perdiamo di vista ciò da cui siamo partiti. Si perché occupandomi, tra le altre cose, di formazione, mi capita spesso di confrontarmi proprio con alcuni di questi pregiudizi, tipici di chi si avvicini per la prima volta al trading algoritmico. E’ vero che gli algoritmi genetici portano a confezionare sistemi meravigliosi sul passato, ma con pochissime probabilità di continuare a performare positivamente nel futuro? In sostanza è vero che determinare le migliori regole possibili per tradare uno strumento significhi inesorabilmente modellizzare il rumore della serie e quindi, in termini più comprensibili, ciò che è accaduto in un certo modo, ma senza alcun principio di causa ed effetto?

Quesiti leggittimi, tuttavia hanno più a che fare con le modalità di validazione che con le modalità di ricerca sulle serie storiche.

Se, ad esempio, decidiamo di scandagliare ad occhio la serie dei prezzi dell’oro, ci accorgeremo che esiste una naturale inerzia a proseguire movimenti di breakout. Come un treno in corsa, i prezzi tendono a continuare i movimenti impulsivi e, sotto opportune ipotesi, è possibile costruire un protocollo operativo per guadagnare con una certa costanza su diversi time frame. Se ora chiediamo ad una delle nostre macchine di modellizzare con maggiore precisione tale tendenza inerziale, la risposta saranno, ad esempio, una serie di pattern ricorrenti e anticipatori che diano maggiore valenza al segnale di rottura verificato ad occhio. Qualcuno potrebbe obiettare che un tale passaggio sia possibile anche ad occhio, ma converrà con me che in termini di efficienza, per lo meno temporale, non possano esistere paragoni. La macchina, infatti, nell’ipotesi più generale, ha sondato tutte le possibili combinazioni dei prezzi (solo per fare un esempio didattico).

Abbiamo parlato di modalità di ricerca: in un caso abbiamo osservato i grafici, nel secondo abbiamo delegato ad una macchina la fase di confezionamento del setup di ingresso. E lo abbiamo fatto, lo ripeto ancora, permettendo alla macchina di scandagliare tutte le possibili combinazioni dei prezzi. E’ possibile comprendere piuttosto facilmente come, anche per una macchina “carrozzata” dal punto di vista hardware, possa essere improponibile in termini temporali. Immaginate ad esempio cosa significhi testare tutte le possibili combinazioni di Open, High, Low, Close ed AvgPrice delle ultime 20 barre, per comporre un pattern anticipatore lungo a piacere. Certamente possiamo imporre dei limiti alla lunghezza delle stringhe o fare altre ipotesi che semplifichino il problema, ma si continuerebbe a parlare di tempi di elaborazione troppo estesi.

Ma esiste una scorciatoia: gli algoritmi genetici!

La nostra macchina, anziché sondare tutte le combinazioni, inizia a prendere delle strade casuali, salvando, di volta in volta, la migliore soluzione sino a quel momento. Per farlo utilizza un processo evolutivo preso in prestito, appunto, dalla genetica. Il risultato sarà una soluzione che non sarà necessariamente la migliore in assoluto, ma che descriva sufficientemente bene il problema che vogliamo governare.

Dire che “gli algoritmi genetici non funzionano” è quindi un errore di forma e di sostanza: tali algoritmi vincono a mani basse il confronto con un operatore umano nel riconoscimento di comportamenti iterativi sui prezzi. A maggior ragione se aumentiamo ulteriormente la complessità del nostro problema aggiungendo, ad esempio, differenti strumenti finanziari e time frame multipli.

Ora nasce il vero problema, che esula completamente dalla modalità con cui abbiamo scandagliato le serie dei prezzi: la validazione. La modalità con cui scartiamo o accogliamo il frutto del data mining iniziale. Qui si gioca la battaglia vitale che deciderà quali siano le nostre future probabilità di guadagno, ma ciò nulla ha a che fare con le modalità di creazione del nostro sistema prima della validazione.

E’ esattamente questo il principio ispiratore che ci ha portato a confezionare la Gandalf Academy, un percorso di tre giornate dedicato al trading algoritmico la cui seconda tappa, la “Pattern Farm”, è di fatto, il primo e unico corso sul trading genetico presente ad oggi nel panorama formativo nazionale. Durante la giornata verrà fornito un codice EasyLanguage-PowerLanguage (“Gandalf Pattern Composer”) per costruire autonomamente i propri trading system.

Dato che un esempio vale più di mille parole, desidero condividere con voi i risultati di uno dei tanti sistemi prodotti nel post corso (edizione di settembre 2016).

Si tratta di un sistema su Gold Future, time frame 460 minuti. La macchina ha deciso in autonomia sia il setup di ingresso (un setup multiplo), che la gestione del trade (differenziato se l’operazione va subito in guadagno oppure se va in perdita) e l’uscita.

Il periodo di In Sample (periodo di addestramento) termina il 31/12/2013, di seguito il periodo Out of Sample.

Si tratta di un sistema competitivo su questo time frame, ma ancora migliorabile. Tuttavia abbiamo preferito questa versione più grezza e meno ottimizzata di altre, ancor più regolari.

Dando uno sguardo alle metriche notiamo un Average Trade di 232 $ al lordo di costi fissi (sufficientemente capiente considerando uno slippage fisiologico dovuto agli ordini di tipo stop per ingressi di breakout), un Percent Profitable del 56%, un rapporto Rendimento/Rischio di 1.41. Il Max Draw Down risulta di 8170 € con un Max Consecutive Losing Trade di 7.

Il Periodical Return annuale fa registrare due anni su tre positivi in Out of Sample e una media di oltre 50 trade all’anno.

Quello che avete appena visto è un sistema prodotto con matrice genetica seguendo le modalità di progetto descritte nel percorso formativo Gandalf.

Speriamo di essere riusciti ad aprire una finestra sulle grandi possibilità, che in parte si stanno già concretizzando, fornite dall’utilizzo dell’Intelligenza Artificiale applicata al Trading. Non accorgersene non sarebbe soltanto grave, ma anche estremamente pericoloso. Come mi piace ripetere, parafrasando gli algoritmi genetici: “l’estinzione è dietro l’angolo!”

Quello che rimane aperto è il tema dell’efficientamento progressivo dei mercati a causa o grazie a queste tecniche… ma questo sarà argomento di una delle prossime puntate.

Giovanni Trombetta

Head of Research & Development
Gandalf Project

Lascia un commento

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