Appunti di Machine Learning in ambito finanziario – I parte –

Appunti di Machine Learning in ambito finanziario – I parte –

Agosto 20, 2021 0 Di Ruggero Grando

In questa serie di articoli, tratti dai miei appunti, vedremo come realizzare alcuni algoritmi in ambito “Finance” di machine Learning scritti in linguaggio Python partendo da alcune nozioni elementari. Non si tratta di un corso vero e proprio, ma sicuramente vi potrà aiutare nella progettazione di un sistema di trading.

Breve intervallo di installazione dei requisiti per poter seguire correttamente gli appunti.

Per capire gli appunti e poter scrivere del codice, bisogna aver installato Python nel proprio sistema operativo.

Per Windows 10 ho trovato la seguente guida di installazione:

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwihi9CfrL_yAhVV3IUKHTtgBC0QtwJ6BAgDEAM&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dij1HTDpVTBI&usg=AOvVaw07rei0C57nPNbAFZPqTO0Z

Invece, per GNU/Linux e MAC OS ho trovato la seguente:

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwiB_pKbqr_yAhWnz4UKHenaC-IQtwJ6BAgDEAM&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DooC9sHXca6s&usg=AOvVaw03xZcjLT_yMuP9vtiaB7_Y

Dopo aver installato Python bisogna installare un ambiente di programmazione. In questo, e nei successivi articoli utilizzerò “Visual Studio Code” che potete scaricare dal seguente link: https://code.visualstudio.com/download
Una volta presenti sia Python che Visual Studio Code, potete iniziare a scrivere del codice.

Il primo passo: visualizzare l’andamento di una pair.

I miei appunti, partono direttamente con del codice in Python per poter visualizzare semplicemente l’andamento del prezzo di una pair presente nell’Exchange “Binance”. La pair di esempio che vedremo è “ETH/BTC”, ma per voi potrebbe essere qualsiasi altra. In questo caso stiamo lavorando sul mondo delle cryptovalute e quindi del Bitcoin in genere.

Ma, cos’è un Exchange?

L’Exchange è un luogo, uno strumento finanziario che ci permette di acquistare e vendere le cryptovalute. Di conseguenza la domanda successiva risulta assolutamente lecita. In rete trovate numerosi Exchange basta digitare nella ricerca di Google “Exchange crypto”

Ma, che cos’è una pair?

Come scritto poc’anzi la pair che utilizzo più spesso è la “ETH/BTC”, ma a cosa fa riferimento?
Nella pair, ETH indica l’asset, mentre BTC indica la currency. In questo caso, con la currency che io posseggo acquisto l’asset ETH per poi rivenderlo e ottenere un profitto in BTC. In pratica, l’asset rappresenta l’investimento su cui è possibile ottenere un profitto.

Per prima cosa riporto il codice seguente di importazione e “settaggio” delle varie librerie.

Le prime righe di codice per l'importazione delle varie librerie
Fig 1
(Prima parte del codice di importazione)

Nella prima e seconda riga vengono importati i moduli Numpy e Pandas. La terza riga è leggermente diversa ed è utilizzata per importare Matplotlib e alcune funzionalità relative ai fogli di stile. Nella quarta riga importiamo una libreria che ci servirà per scaricare i dati dai vari Exchange, Per quanto concerne tale libreria vi consiglio di dare un occhiata al sito: https://github.com/ccxt/ccxt.
La quinta riga fa riferimento ad una classe implementata da me per il reperimento dei dati del tempo e del prezzo che mi serviranno per la costruzione del primo grafico della pair. In questa prima parte, la quinta riga non verrà utilizzata e quindi non vi servirà. Con la sesta riga si importa il modulo calendar di python. Invece, nella settima riga si importa la libreria datetime. La nona riga è spiegata benissimo dal seguente articolo: https://www.sharpsightlabs.com/blog/numpy-random-seed/
Nella decima riga si imposta lo stile “seaborn” di Matplotlib. Nelle successive, si impostano i parametri di risoluzione in dpi uguale a 300 e la famiglia di font che in questo caso è “serif”. Vi suggerisco di leggere il seguente articolo per una spiegazione più dettagliata in merito alla configurazione dei parametri:
https://matplotlib.org/stable/tutorials/introductory/customizing.html

Nella seguente parte di codice verrà utilizzata la libreria ccxt per scaricare i dati che ci serviranno per rappresentare l’andamento della pair ‘ETH/BTC’ con matplotlib.

Il resto del codice ove si istanzia l'oggetto ccxt e si richiama il metodo binance
Fig 2.
(Codice relativo all’importazione dei dati OHLCV con l’utilizzo della libreria CCXT).

Iniziamo a leggere il codice presente in figura 2. La riga quattordici crea l’oggetto binance che servirà per comunicare direttamente con i metodi previsti di binance tramite la libreria ccxt.

Per maggiori informazioni su come utilizzare la libreria ccxt leggete il manuale presente al seguente indirizzo internet: https://ccxt.readthedocs.io/en/latest/manual.html

Con la seconda riga si definisce l’oggetto now come data sempre attuale in formato UTC. La diciasettesima riga imposta la variabile unixtime ottenuta dall’oggetto calendar attraverso i metodi timegm passando il valore now.
La diciottesima riga, calcola la data di inizio per il caricamento delle candlestick.
L’oggetto ohlcv (di tipo dataframe) della riga venti, contiene le candlestick della pair “ETH/BTC” , in un timeframe di 5m, e da l’intervallo di tempo definito dalla variabile da.

Il dataframe df1 definito nella riga ventidue, predispone le colonne Time, Open, High,’Low’,’Close’,’Volume’. Nella riga successiva, la colonna Time del dataframe df1 ….. Nella riga ventiquattro si definisce come indice del dataframe la colonne Time.

No votes yet.
Please wait...

Pagine: 1 2