top of page
Nicola Matarese

Machine Learning per il trading



Introduzione al Machine Learning per il Trading


Negli ultimi anni analisi tecnica e analisi fondamentale hanno visto crescere a loro fianco una terza metodologia di trading basata su algoritmi d'intelligenza artificiale. La capacità di elaborare previsioni sulla base di metodologie quantitative applicate ai Big Data, risorsa abbondante nei mercati finanziari, e’ stata anche favorita dall’aumento della potenza di calcolo dei nostri computer e la diffusione di linguaggi di programmazione come Python e R.



Machine Learning per il Trading e le resistenze del forno di trattamento


Cio’ che mi avvicino’ qualche anno fà all’intelligenza artificiale fu’ la mia irrefrenabile curiosità al modo delle previsioni, quella tentazione innata di provare a conoscere il futuro. L’oracolo Delphi, l’interpretazione dei sogni che ha guidato molteplici generali e antichi eserciti, storie di presage raccontate da scrittori di ogni epoca, gli studi di Doc del film Ritorno al Futuro, sono solo lontani tra loro esempi di come importante e accattivante era, é stato, é e sarà il problema.


Agli inizi della mia carriera all’interno di realtà industriali avevo il progetto d'implementare un sistema di manutenzione preventiva su un forno lungo 30 metri all’interno del quale scorrevano su un rullo a maglie metalliche, componenti meccanici che dovevano subire un trattamento termico. All’interno del forno a lungo tutta la sua lunghezza erano posizionate 54 resistenze elettriche della lunghezza di 2 metri che lo attraversavano trasversalmente. Il prezzo di ognuna di queste resistenze elettriche era di circa 1000€ e la frequenza dei guasti su queste resistenze creava continue interruzioni della linea di produzione, nonché notevoli costi di sostituzione.


Il mio compito era studiare la frequenza dei guasti ed implementare un sistema di previsione delle operazioni di sostituzione di quelle resistenze per cui si prevedeva un imminente guasto.

Allo stesso tempo bisognava garantire un minimo stock per garantire la funzionalità continua della Lina di produzione. Era il 2003 e i nostri metodi di previsione erano basati sull’osservazione e sulla semplice registrazione dei dati di guasto, interpretazioni soggettive e decisioni prese in riunione fatte a pie’ di macchina. Ecco, quello era un esempio di un nostro tentativo di predire il futuro senza il supporto di una metodologia scientifica che ci avrebbe permesso d'individuare oggettivamente le resistenze prossime ai guasti con un basso errore di previsione.


Chi avrebbe mai immaginato che solo qualche anno sarebbero esplosi in rete le varie apps di traduttori simultanei, riconoscimenti vocali e facciali. Chi avrebbe mai immaginato una cosi grande salto avanti nei sistemi a guida autonoma o nei sistemi a supporto dei processi decisionali. Ebbene questi ultimi sopra citati sono tutti sistemi basati su algoritmi previsionali. Non aspettatevi nulla di magico, qui si parla di statistica, di logica e di programmazione.





Machine Learning per il Trading : La Regressione


Facciamo un passo indietro, e cerchiamo di capire cosa significa analiticamente fare una previsione.


Ogni equazione fa una previsione.
Ogni formula di fisica classica fà una previsione.

Usando la prima legge della dinamica F=MxA sappiamo che se applichiamo una forza F a una massa M prevediamo che questa subirà una certa accelerazione.


La previsione in questo caso avrà un errore nullo per cui la previsione e’ anche certezza.

In molto altri campi, dove formule fisiche non sono ancora state trovate dovremmo accontentarci sempre di una previsione e di un errore a esso associato. Prendiamo un grafico a due variabili che riporti la relazione tre esse in diversi casi (F1).

F1 - Machine Learning per il trading
F1 - Machine Learning per il trading

Avremo uno scatter plot che mostrerà un certa tendenza, data per esempio dall’unione dei punti o dall’approssimazione della tendenza dei punti con semplici rappresentazioni geometriche.


Tale approssimazione può essere perfetta, nel caso la relazione delle due variabili segue una legge ben definita (una retta (F2) o un polinomio (F3)), l’approssimazione ha un errore nullo e la previsione della relazione tra altre due variabili del campione per quel fenomeno specifico e’ esatta. Ove l’approssimazione non e’ perfetta, dobbiamo accontentarci di una previsione con errore (F4).



F2 - Machine Learning per il trading
F2 - Machine Learning per il trading

F3 - Machine Learning per il trading
F3 - Machine Learning per il trading

F4 - Machine Learning per il trading
F4 - Machine Learning per il trading


Trovai in rete un indovinello per cui bisognava risolvere un problema logico del tipo :

  • 9 = 90

  • 8 = 72

  • 7 = 56

  • 6 = 42

  • 3 = ?


Senza fare grandi calcoli avevo ipotizzato per il 3 due risposte :

  • a)12

  • b)18


Intuitivamente le due risposte avevano una loro assunzione di base, inconfutabile, per cui entrambe le risposte erano corrette con un errore del 50%.


Provai allora a trovare la soluzione matematicamente che era semplicemente una previsione assumendo che la migliore legge di rappresentazione di quei numeri fosse una retta di regressione. Avevo in quel periodo cominciato a studiare la programmazione in Python e mi ritrovai a risolvere il gioco facendo girare quelle relazioni su un sistema di reti neurali.


Ovviamente era come sparare alla mosca col cannone, ma mi aiuto’ a interiorizzare il concetto di previsione con Intelligenza Artificiale che era tanto in voga in quel periodo.


Per chi fosse curioso riporto il codice che avevo lanciato:


Come dicevo concetti fondamentali di previsione sono la Regressione e Classificazione.


Entrambe sono operazioni che servono a determinare (a prevedere) specifici output (valori numerici in regressione e valori discreti o binary in classificazione) vincolati ad una certa serie di inputs.


Guardiamo un esempio di Classificazione.

Quando parliamo di previsioni sulla base di un set di dati abbiamo uno schema del tipo:

Machine Learning per il trading
Machine Learning per il trading

I dati che vanno sotto gli Attributi sono variabili indipendenti.
I dati che vanno sotto l’Etichetta sono chiamati variabili dipendenti.

A partire da una serie di casi n con attributi n di n ed etichetta nota, la previsione consiste nel trovare l’etichetta di un nuovo caso x con una certa serie di attributi di x, sulla base dei principi della serie di dati (1, 2, 3, n) in cui l’etichetta era nota. Prendiamo per esempio un sistema che voglia classificare o prevedere l’appartenenza ad una classe di frutti a partire da determinate caratteristiche:


Machine Learning per il trading
Machine Learning per il trading

In questa limitata quantità di dati possiamo facilmente prevedere che sulla base dei dati esistenti il frutto che dobbiamo classificare e’ sicuramente un Limone.


Ora facciamo la previsione per un altro caso, cambiando una delle variabili indipendenti:

Machine Learning per il trading
Machine Learning per il trading

In questa limitata quantità di dati possiamo facilmente prevedere che sulla base dei dati esistenti il frutto che dobbiamo classificare e’ sicuramente un Ribes o una Ciliegia o Uva .


Il Sistema farà una previsione con un errore del 33.33%. Scalando il problema a migliaia di casi e migliaia di attributi e’ chiaro che la computazione umana qui mostrerebbe I suoi limiti. La macchina funziona in questo caso molto meglio.


Per la Regressione, come nell’esempio dell’indovinello in rete o della prima legge della dinamica, l’etichetta (o se vogliamo la previsione) e’ un numero.




Python e Machine Learning per il Trading


Python e’ un linguaggio di programmazione molto diffuso che ha delle vaste librerie e una grande community di supporto. Per un approccio ludico,si puo’ pensare di cominciare a programmare in Python trovando gli innumerevoli esempi disponibili in rete, adattarli alle proprie necessità e accumulare esperienza. Non e’ necessario avere grandi conoscenze informatiche per cominciare ma ovviamente lo sviluppo a livello professionale in questo campo richiede uno studio importante. Anche per chi comunque non è uno sviluppatore di codici, la ricerca di linee di codice e l’adattamento al nostro problema e’ in ogni caso interessante e puo’ regalare buone soddisfazioni. Python e’ open source, scaricabile gratuitamente e lo troverete spesso in combinazione con l’ambiente di programmazione Jupiter Notebook.




Machine Learning applicato al Trading


Con Python e’ possibile ad esempio recuperare direttamente dal web le quotazioni di strumenti finanziari e ricavare con semplici istruzioni grafici andamento prezzi, medie mobili, incroci ed individuare molto semplicemente informazioni per un trading basato sull’analisi tecnica. Non siamo ancora in ambito machine learning perche’ in questo caso il codice viene usato per una semplice elaborazione dati, senza previsioni, solo rappresentazioni.


Quando parliamo di Machine Learning, parliamo invece di una forma di intelligenza artificiale, che si basa su algoritmi che prevedono una fase di apprendimento del fenomeno descritto da dati esistenti (I casi e gli attributi nel problema di classificazione dei frutti) e elaborare una previsione per nuovi casi con specifici attributi.


Considero parte integrante del Machine Learning alcune altre discipline che hanno a loro volta una loro ben precisa trattazione : il Natural Language Processing e il Deep Learning (F5).


F5 - Machine Learning per il trading
F5 - Machine Learning per il trading



La programmazione di un sistema previsionale


La generica struttura concettuale di un sistema di Machine learning si compone dei seguenti passi fondamentali :

  1. Importazione dati

  2. Elaborazione e organizzazione dati

  3. Definizione del modello da utilizzare

  4. Addestramento del modello

  5. Valutazione dell’affidabilità del modello

  6. Previsioni


Nei prossimi giorni e settimane usciranno nuovi articoli dove vedremo come costruire con Python un Sistema Previsionale basato sul Machine Learning per il trading.


NON PERDERTI I PROSSIMI ARTICOLI



 

Nicola Matarese classe 1973, ha conseguito una laurea magistrale in ingegneria meccanica ed ha ricoperto ruoli manageriali all’interno di realtà industriali in ambito aerospazio e difesa.

E’ appassionato di trading e opera sui mercati dal 2001. Da qualche anno lavora a sistemi di trading supportati da teorie sui Big Data e Intelligenza Artificiale.



 

7 Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
Guest
Jul 02, 2022

tempo fa avevo letto degli articoli in inglese su come creare sistemi predittivi per i mercati azionari, però ho lasciato perdere dopo veramente poco. Ho riniziato da poco a interessarmi a questo campo, ma con un grande dubbio : è davvero possibile avere dei piccoli rendimenti sui mercati semplicemente utilizzando dati, potenza di calcolo e modelli statistici ?

Like

Software Hub
Software Hub
Jul 01, 2022

Fighissimo, complimenti davvero una lettura interessante e che mi ha preso fino alla fine. Trovo geniale risolvere quel tipo di quiz con delle reti neurali STUPENDO. Però ho un due dubbi, il primo è perché 12 ? Come ci sei arrivato ? e il secondo è che avendo provato il codice mi esce 20 e qualcosa, questo conferma la tesi del 18 ? Ho anche provato ad aumentare di molto le epoch di allenamento ma sono iniziati a uscire numeri negativi LOL. Grazie in caso di una risposta.

Like
Nicola Matarese
Nicola Matarese
Jul 01, 2022
Replying to

Ciao, grazie per il commento.

Il 12 viene da 3*4 seguendo la logica per cui 90 viene da 9*10 , 72 da 8*9 e cosi via …. [n*(n+1)=x]

dove

n=numero „noto„


Per la seconda domanda, e’ un po‘ piu’ difficile.


Con le reti neurali bisogna considerare che :

  1. non sono del tutto chiare neanche ai super data scientists

  2. sono soggette a instabilita‘

  3. come in tutti i problemi di ML c‘e‘ il rischio di overfitting

Like

Guest
Jul 01, 2022

Buona introduzione a questo mondo, farete un articolo dove spiegate come creare una rete neurale o un modello statistico con python su dati finanziari ?

Like
Guest
Jul 02, 2022
Replying to

Non vedo l'ora !! Spiegherete anche come valutare le performance di una rete neurale sui vari titoli o indici ? Credo vivamente che il machine learning e il deep learning siano il futuro del trading.

Like

Martina Giasi
Martina Giasi
Jul 01, 2022

Articolo veramente interessante, utilissimo il file audio tipo podcast!! Perchè non lo mettete a tutti gli articoli? Comunque non vedo l'ora che esca il prossimo articolo della serie.

Tempo fa avevo partecipato a degli interventi in questo forum https://www.intelligenzaartificialeitalia.net/forum/deep-learning/previsioni-prezzo-azioni-con-deep-learning

Like
PCR (5).gif
PCR (4).gif
PCR.gif
PCR.gif
PCR.gif
PCR.gif
PCR (5).gif
3.gif
Vediamo se riesci a cliccarmi ! Nascondo una Sorpresa... (2).png

Ciao 

🤗 Articoli consigliati dalla nostra
Intelligenza Artificiale in base ai tuoi interessi

Correlazione Alta

Correlazione Media

Correlazione Bassa

Iscriviti

VUOI DIVENTARE UN MEMBRO DI INTELLIGENZA ARTIFICIALE ITALIA GRATUITAMENTE E TRARNE I SEGUENTI BENEFICI?

Corsi Gratis

più di 150 lezioni online

Dataset Gratis

più di 150o dataset

Ebook Gratis

più di 10 libri da leggere

Editor Gratis

un editor python online

Progetti Gratis

più di 25 progetti python

App Gratis

4 servizi web con I.A.

Unisciti Ora a oltre
1.000.000
di lettori e appassionanti d'I.A.

Tutto ciò che riguarda l'intelligenza Artificiale, in unico posto, in italiano e gratis.

MEGLIO DI COSI' NON SI PUO' FARE

Dopo l'iscrizione riceverai diversi Regali

VUOI SCRIVERE ARTICOLI INSIEME A NOI.

Grazie

bottom of page