Grafici finanziari con Python

Python, le sue caratteristiche, l'utilizzo nel High Frequency Trading e la costruzione di grafici finanziari in 5 Step attraverso yfinance e Matplotlib

Condividi questo post

Condividi su linkedin
Condividi su facebook
Condividi su email
Condividi su twitter
Condividi su whatsapp
Condividi su telegram

Python è un linguaggio di programmazione ad alto livello con strutture di dati combinate con la digitazione e associazione dinamica.

Questo lo rende utile per lo sviluppo rapido di applicazioni, di linguaggi di script e per collegare componenti di scrittura già preesistenti.

Si rivolge sia a sviluppatori esperti che a sviluppatori “occasionali”.

Grazie alla sua sintassi semplice e i costi di manutenzione bassi ne aumentano la facilità d’uso.

L’utilizzo di pacchetti enfatizza poi il riutilizzo del suo codice anche grazie alla presenza delle librerie gratuite disponibili.

Le caratteristiche principali di Python possono essere riassunte in questi punti:

  • Open source, fornito senza licenza;
  • Interpretato, si serve di un software chiamato interprete che interpreta il codice e lo esegue successivamente, legge ed esegue il codice sorgente del programma senza creare un file oggetto eseguibile.
  • Multiparadigma, supporta diversi paradigmi di programmazione come quella imperativa, funzionale e procedurale;
  • Multiuso, può essere utilizzato per la scrittura di codice semplice ed immediato o per applicazioni di grandi dimensioni;
  • Multipiattaforma, disponibile per tutti i sistemi operativi.

Quindi l’ecosistema Python mette a disposizione un gran numero di librerie che generalmente devono essere importate o avviate come processo di sistema separato (ad esempio con l’ambiente di sviluppo Python).

Ma sono presenti diverse librerie già di default.

Python nel trading algoritmico e nel High Frequency Trading

Negli ultimi decenni sempre più istituzioni finanziarie come banche ed hedge funds si sono evolute in istituzioni tecnologiche, spinte dall’innovazione e dalla regolamentazione, traendone grossi vantaggi in merito.

Dal 2020 infatti le istituzioni finanziarie spenderanno circa, ogni anno, 500 miliardi di dollari per lo sviluppo, l’aggiornamento e l’implementazione delle loro reti e dell’ambiente tecnologico in cui operano.

Come risultato questo porterà ad aumento della velocità, della frequenza e dei volumi di dati in ingresso che verranno costantemente sottoposti ad analisi per effettuare previsioni e correlazioni economiche.

Elaborazione di dati, velocità di analisi e fondamenti teorici (basate appunto sulle “vecchie” teorie economiche) verranno sempre aggiornate con lo sviluppo degli ambienti di scrittura informatici.

In questo Python giocherà un ruolo fondamentale.

Anche perché grazie ad esso è possibile analizzare i dati in tempo reale, cosa non possibile fino a qualche decennio fa.

Disegnare un grafico in 5 step

Per disegnare un grafico su Python prenderemo in esempio nuovamente il titolo di Starbucks (SBUX), come fatto nello scorso articolo del blog.

Successivamente utilizzeremo un API finanziaria, come Yahoo Finance, per importare i dati giornalieri dell’azione come i prezzi e i volumi.

I passaggi sono i seguenti:


Installo, importo ed elaboro la libreria di yfinance e Matplotlib

pip install yfinance
pip install matplotlib
import yfinance as yf
import matplotlib.pyplot as plt

Scarico i dati di SBUX Starbucks prendendo in esame il periodo dal 01 gennaio 2020 ad oggi

datiFinanziariStarbucks = yf.download('SBUX','2020-01-01','2021-09-16')

Stampo di dati di Starbucks necessari per andare poi successivamente a creare il grafico con Matplotlib

datiFinanziariStarbucks

Andiamo ora a disegnare il grafico tenendo conto delle adjusted close, ovvero le chiusure giornaliere ponderate per i dividendi, frazionamenti e nuove emissioni di azioni.

datiFinanziariStarbucks['Adj Close'].plot()

Ora un esempio più avanzato. Stampiamo sul grafico tutti i valori assieme (apertura, chiusura, massimo e minimo), inserendo il “figsize” di input 20 e 16, ovvero rispettivamente larghezza ed altezza espressa in pollici.

Le 4 linee disegnate ci permettono di tracciare ognuna singolarmente l’input che gli abbiamo inserito, differenziandole per colore. Abbiamo adottato un periodo di tempo di riferimento relativamente breve (dal 01/01/2020) in modo tale che le linee fossero ben distinte fra di loro.

La linea gialla rappresenta i prezzi di apertura giornalieri, la linea blu i prezzi di massimo, la linea verde i prezzi minimi e la liea rossa i prezzi di chiusura.

plt.figure(figsize=(20, 16))
plt.plot(datiFinanziariStarbucks['Open'], color='yellow', label="Prezzo apertura")
plt.plot(datiFinanziariStarbucks['High'], color='blue', label="Prezzo massimo")
plt.plot(datiFinanziariStarbucks['Low'], color='green', label="Prezzo minimo")
plt.plot(datiFinanziariStarbucks['Close'], color='red', label="Prezzo chiusura")

Iscriviti alla nostra newsletter per rimanere sempre aggiornato/a e per ricevere il PDF con la lista dei data feed.

Iscriviti alla nostra newsletter gratuita

Rimani aggiornato e impara sempre 😀

Altri articoli che potresti trovare interessanti

Fintech

La Modern Portfolio Theory

La Modern Portfolio Theory, una delle teorie di asset allocation di portafoglio più famose.
La relazione tra rischio e rendimento.

Fintech

Correlazione e backtesting

L’importanza della correlazione nello sviluppo di trading system e nella fase di backtesting di strategie, attraverso i dati in sample e out of sample.

Scopri la nostra academy

Diventa un Quant Trader e crea i tuoi trading system automatici