Di tutto un pò su GNU/Linux & sul mondo del Trading 'Crypto'
Di tutto un pò su GNU/Linux & sul mondo del Trading 'Crypto'

Appunti di Machine Learning in ambito finanziario – III parte –

Un breve calcolo del prezzo della pair ETH/BTC nei quindici minuti futuri.

Partendo dall’immagine otto e dai valori calcolati dalla funzioni di terzo, quinto e settimo grado, tentiamo, per quanto sia un azzardato, il calcolo del valore futuro del prezzo del valore ETH rispetto al valore della currency BTC, o meglio, il prezzo della pair ETH/BTC.

Per prima cosa dobbiamo determinare e aggiungere il valore (standardizzato) all’asse delle X (quella dei tempi). Per far ciò, dobbiamo determinare il valore assoluto della lunghezza dell’asse X. In questo caso l’asse x standardizzato contiene i valori dal valore -2 al valore +2, e quindi complessivamente il valore è 4. Le istanze presenti nel vettore f sono 100. Ogni istanza, rappresenta un valore di tempo di un intervallo di quindici minuti del prezzo della pair ETH/BTC come già descritto precedentemente. Quindi, per calcolare, il valore standardizzato di X di un istanza basta fare la seguente operazione:

c = 2*2 / f.size

Dove c rappresenta il valore di incremento dell’asse X per rappresentare i quindici minuti nel futuro. Ho indicato il valore 2*2 e quindi 4 come la lunghezza dell’asse X standardizzato in termini di valore, e infine, f.size rappresenta il numero di istanze presenti nel vettore f.

Ora che abbiamo il valore c, per capire quale sarà il valore da aggiungere all’asse X standardizzato basterà eseguire la seguente operazione:

d = 2+c

Dove d è il valore dell’asse X nei quindici minuti successivi, il valore 2 rappresenta il valore più grande dell’asse X standardizzato attuale e c l’incremento che abbiamo calcolato precedentemente.

Adesso, il valore d lo possiamo aggiungere al vettore f in ultima posizione, o meglio, il vettore f1 conterrà i valori del vettore f più in ultima posizione il valore d. Dovremmo aggiungere al vettore l un altro valore corrispondente a quello precedentemente aggiunto nell’asse X. Non avendo, ancora calcolato il valore nei quindici minuti futuri, inseriamo come valore futuro l’ultimo valore del vettore l. Tutte queste operazioni sono espresse nell’immagine seguente. Il vettore l1 conterrà i valori di l più l’ultimo valore del vettore l.

Aggiunta del valore futuro all'asse X standardizzato e all'asse Y standardizzato
Fig. 9
(Aggiunta del valore futuro all’asse X standardizzato e all’asse Y standardizzato).

A questo punto, calcoliamo i valori predetti in un intervallo futuro di quindici minuti come indicato dall’immagine seguente.

Calcolo dei valori futuri per le funzioni di terzo, quinto e settimo grado
Fig 10
(Calcolo dei valori futuri per le funzioni di terzo, quinto e settimo grado)

I valori predetto3grado, predetto5grado e predetto7grado non sono altro che i valori delle funzioni di terzo, quinto e settimo grado a cui sono stati passati i coefficienti reg, reg1, reg2 e l’ultimo valore dell’asse X corrispondente ai quindici minuti nel futuro. E’ il momento di aggiungere questi tre valori ai valori delle funzioni di terzo, quinto, e settimo grado così da poterli visualizzare in un grafico.

Ecco come aggiungere i valori futuri ai valori delle funzioni di approssimazione
Fig. 11
(Aggiungi i valori futuri ai valori delle funzioni di terzo, quinto e settimo grado)

Utilizzando il metodo append della classe Numpy si riesce a aggiungere al vettore p1, p2, e p il valore predetto3grado, predetto5grado e predetto7grado in ultima posizione così come descritto dal codice nella figura 11. Come potete vedere i nuovi vettori p1p, p2p, pp contengono i valori predetti oltre ai valori approssimati.

Finalmente, possiamo visualizzare quanto fatto finora. Nell’immagine seguente il codice per visualizzare i valori delle funzioni con il valore “calcolato” nei quindici minuti futuri.

Codice per visualizzare i nuovi valori previsti nei quindici minuti futuri
Fig 12.
(Codice per visualizzare i nuovi valori previsti nei quindici minuti futuri).

Il risultato del plt.show() è quello di mostrare l’andamento delle funzioni più il valore “predetto” per i quindici minuti successivi.

Visualizzazione nel grafico del valore previsto per i 5 minuti successivi.
Fig.13
(Visualizzazione nel grafico del valore previsto per i 5 minuti successivi).

Come potete vedere, l’immagine tredici rappresenta il risultato di tutto il lavoro svolto fino a questo momento. I valore delle funzioni di terzo, quinto e settimo grado oltre il valore 2 dell’asse X sono quelli previsti nei quindici minuti successivi. Come si vede, la funzione di terzo grado prevede un valore più basso di quello attuale, mentre le funzioni di settimo e di quinto grado si approssimano di più al valore attuale, ma sempre in modo negativo. Tutto ciò è rafforzato dal fatto che l’andamento della pair ha appena cambiato verso, ora il prezzo sta iniziando a salire. Nello stesso grafico potete vedere come per “assunto” il valore reale attuale sia stato “trasportato” nella posizione futura (di quindici minuti) con lo stesso valore.

Ora, non resta che trasformare il valore standardizzato in valore normale, ossia ricavare il prezzo non standardizzato. Per fare ciò dobbiamo applicare la seguente formula:

Formula che m i permette di calcolare il valore normale dal valore standardizzato
Fig. 14
(Dal valore standardizzato al valore normale)

La formula nella figura quattordici sostanzialmente dice che il valore normale risulta uguale al valore standardizzato per la deviazione standard dei valori normali sommando il valore della media dei valori normali. Il codice che ho scritto per questo tipo di operazione è mostrato nell’immagine seguente.

Dal valore standardizzato al valore normale. Parte del codice.
Fig. 15
(Dal valore standardizzato al valore normale).

La riga 131 definisce come cl il vettore dei valori normali dei prezzi della pair ETH/BTC. Nelle righe 122,123,124 avviene l’assegnazione alle variabili price3grado, price5grado e price7grado del valore ottenuto dal calcolo della formula mostrata in figura quattordici. Le righe 129,130,131 visualizzano il valore normale del prezzo della pair ETH/BTC nei prossimi quindici minuti.

No votes yet.
Please wait...

Lascia un commento

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

quattordici + diciotto =

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