Download Free FREE High-quality Joomla! Designs • Premium Joomla 3 Templates BIGtheme.net

Bitcoin e Machine Learning. Doppia sfida.

 

Ricordate l’articolo di qualche mese fa su Cryptovalute e BlockchainIn quella occasione, dopo aver cercato di spiegare cosa fossero le Cryptovalute (tanto di moda oggi!), avevamo provato a fare un piccolo esercizio pratico: un programma scritto in Python che permetteva di effettuare operazioni automatiche di acquisto e/o di vendita di BitcoinSicuramente un esperimento entusiasmante ma, l’utilizzo di indicatori finanziari classici come  MACD, Medie Mobili ed RSI rendeva tutto… poco evoluto! Bisognava spiegare passo passo ad un computer come leggere i dati, quali metriche applicare e cosa fare per ognuna delle situazioni che si verificavano. Risultati immagini per machine learning

Oggi vorrei fare un passo verso il FUTURO e proporvi qualcosa di più innovativo. Parliamo di intelligenza artificiale. Quello che ci domandiamo è se sia possibile utilizzare Machine Learning nel campo delle Cryptovalute.  Possiamo fare delle previsioni sul prezzo del Bitcoin e quindi fare qualche buon affare?

La mia idea è un po stravante, spesso mi sono chiesto se fosse possibile prevedere il trend di un’azione di borsa a partire da tutti i prezzi e le informazioni degli anni passati. Nello specifico, 

….nelle variazioni di prezzo delle Cryptovalute, esistono dei modelli, delle ricorrenze, delle stagionalità, delle figure che anticipano grandi rialzi o grandi ribassi?

Oggi cercheremo di scoprirlo insieme e ci faremo dare una mano da uno strumento molto potente come il MACHINE LEARNING!

Pronti? Via.

Inquadriamo il problema

Qualche tempo fa ho seguito un corso sul machine learning in cui uno degli esercizi pratici e funzionanti era proprio di implementare un modello di intelligenza artificiale che riuscisse a predire l’andamento generale delle azioni di Google. Funzionava molto bene ed in effetti la letteratura ormai è piena di articoli e programmi utilizzabili. Oggi vogliamo verificare se anche con la difficoltà della volatilità delle cryptovalute funziona. Analizzeremo tutti i dati storici degli ultimi anni con l’obiettivo di ottenere una previsione di trend di almeno un mese. Prevedere l’andamento del Bitcoin nel futuro è sicuramente affascinante, ma per provare ad ottenere questo risultato ci servono due elementi:

  1. sapere come funziona il machine learning per individuare un algoritmo che fa al caso nostro;
  2. trovare i dati di cui il nostro algoritmo ha bisogno per cercare una interpretazione degli stessi che consenta di prevedere i prezzi futuri.

Cos’è il Machine Learning

Macchine e cervello possono “lavorare” nello stesso modo? Il machine learning consiste proprio nel tentativo di far lavorare una macchina allo stesso modo del cervello umano. Siamo nel campo dell’intelligenza artificiale, un settore sperimentale dell’information technology che utilizza strumenti che permettono ai computer di imparare direttamente dall’esperienza sui dati, senza essere programmati a priori. Le applicazioni di Machine Learning sono molto numerose, alcune di queste sono ormai di dominio comune. Pensiamo ai sistemi di guida automatica o ancora al il riconoscimento di volti delle fotocamere e degli smartphone, fino alle applicazioni più evolute di medicina diagnostica.

Il machine learning si basa su un meccanismo di apprendimento simile a quello usato dalla biologia umana; è in grado di migliorare le proprie prestazioni in modo “adattivo” mano a mano che gli “esempi” ed i dati da cui apprendere aumentano. Ad ogni osservazione, gli algoritmi di machine learning, provano diverse alternative e verificano il risultato delle stesse, in questo modo il sistema perseguirà quelle strade che consentono di migliorare progressivamente.

Il machine learning riesce in modo davvero efficace ad individuare le relazioni tra le informazioni, a ricostruire evidenze per definire e spiegare un fenomeno, e lo fa con una velocità impensabile per l’uomo. Più dati abbiamo a nostra disposizione e maggiori saranno le probabilità di arrivare a dei risultati validi. E qui arriviamo al secondo problema.

Trovare i dati che ci servono

Ricordiamoci da dove siamo partiti: le Cryptovalute.

Il nostro obiettivo finale: capire se esiste un modo per avere delle previsioni di andamento dei nostri investimenti o possibili tali. Io scelgo di fare uno studio sull’andamento del Bitcoin (ma ognuno può scegliere una qualsiasi valuta o stock azionario) ed Investing.com è un’ottima fonte per recuperare valutazioni e prezzi di stock finanziari. Consultando il sito, possiamo trovare sia informazioni su Cryptovalute, che su stock ed azioni ordinarie. Per il nostro scopo puntiamo con il nostro browser a questo link, contenente le serie storiche di tutti i prezzi del Bitcoin prelevate dal market GDAX dal 2015 ad oggi. I prezzi sono espressi in Euro e sono giornalieri.

(Se vi interessasse approfondire l’analisi sulle previsioni finanziarie, qui troverete tutto quello che vi serve e come ciliegina sulla torta le informazioni sono tutte scaricabili in formato .csv.)

A questo punto:

  • selezioniamo i pz dei Bitocoin
  • scegliamo una finestra temporale più ampia possibile (ricordiamo che gli algoritmi di machine learning funzionano bene se hanno molti dati reali su cui lavorare)
  • scarichiamo tutto in formato .csv.

Nel mio caso trattiamo circa tre anni di informazioni contenenti per ogni giorno il prezzo, l’apertura, il massimo assoluto, il minimo assoluto, i volumi scambiati ed una percentuale finale con la variazione relativa.

Costruiamo la nostra rete neurale

Bene, adesso cerchiamo di capire in modo semplificato come costruire la nostra Intelligenza Artificiale Finanziaria. Per il momento, non esiste un’unica forma di rete neurale per la soluzione di qualsiasi problema. Ne esistono diverse, sono molto specializzate e devono essere scelte accuratamente in base alle diverse esigenze. Il nostro scopo però non è quello di fare una trattazione sulle reti neurali, ma solo un esercizio pratico in Python che dovrebbe stimolare la vostra curiosità. Le più importanti tipolologie di reti neurali sono indicate di seguito:

ANN

Artificial Neural Network Utilizzata per lo studio di fenomeni non lineari che non presentano profondità storica. Ad esempio analisi delle variabili che influenzano un fenomeno, analisi di dati con classificazione e regressione lineare.

CNN

Convolutional Neural Network Utilizzate sopratutto nel campo della classificazione di immagini, video, file audio. Ad esempio, riconosciamento facciale, riconoscimento di oggetti, riconoscimento voce etc.

RNN

Recurrent Neural Network Si tratta di una catena di reti ANN interoperanti e che sono adatte a lavorare con le serie storiche.

Sicuramente, proveremo a risolvere il nostro problema di predizione finanziaria usando l’ultimo tipo di rete neurale, le RNN e più precisamente un sottotipo denominato LTSM. Usando Python abbiamo la comodità di avere a disposizione diverse librerie e pacchetti già pronti. Per chi volesse approfondire, vi rimando al codice sorgente completo sul repository GitHub. Bene, dopo un minimo adattamente, il nostro algoritmo di machine learning è pronto a studiare tutti i dati raccolti, cercando delle relazioni tra essi per poi arrivare ad una previsione di massima. Abbiamo impiegato davvero lo stato dell’arte della tecnologia, aumentando del 40% in numero di elementi della rete neurale utilizzata per la previsione degli Stock Google ed aumentando la “memoria” storica regresiva da cui imparare di quasi il doppio.

Verifichiamo i risultati

Per verificare i risultati abbiamo suddiviso le informazioni raccolte in modo ad avere:

  • un set completo di dati storici sui prezzi che coprisse il periodo che va dal 28 Aprile 2015 al 7 Luglio 2018  (questo serve per ottenere le PREVISIONI dei successivi 30 giorni)
  • un altro set di dati sui prezzi che copre il periodo che va dal 7 Luglio 2018 all’8 agosto 2018 (per verificare la discrepanza tra PREVISIONI e DATI REALI)

 

Il primo gruppo di dati è stato immesso all’interno della rete neurale descritta al punto precedente e ci ha dato una previsione dell’andamento del Bitcoin per il periodo(7 Luglio 2018 – 7 Agosto 2018).

A distanza di un mese, il 7 Agosto 2018, sono stati raccolti ed inseriti nell’analisi grafica(in rosso) i dati reali rilevati dal mercato GDAX. I risultati del modello e le distanza tra dati previsionali e dati reali sono esposti nell’immagine di seguito.

Come vediamo la rappresentazione del trend si conforma in maniera abbastanza precisa all’andamento reale del Bitcoin. Il modello sembra funzionare bene e vestire a pennello rispetto alla nostra esigenza, ma abbiamo lavorato con i dati di un solo mese ed è davvero troppo poco per cantar vittoria. Nel prossimo paragrafo fornirò le previsioni Bitcoin del periodo successivo. Staremo a vedere cosa succederà.

Le previsioni sull’andamento del BitCoin a settembre

Molto presto su questa pagina le previsioni di prezzo del Bitcoin basate sugli algoritmi di intelligenza artificiale che abbiamo visto e sul Machine Learning. Registatevi per accedervi!

La previsione per il mese a venire è che entro 5 giorni a partire dal 10 Agosto 2018 il bitcoin dovrebbe registrare una crescita dei prezzi di circa il 10% che dovrebbe poi ricadere di circa il doppio nei 20 giorni successivi. Staremo a vedere.

Stay Tuned!

Ti chiedo un piccolo piacere. Questo articolo è frutto di tanto impegno. Aiutami a condividerlo. Basta un click! Marcello Incarbone
Share on Facebook
Facebook
0Share on Google+
Google+
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Email this to someone
email

Lascia un commento

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.