Visualizzare Dati Storici di Prezzo in Python
Importa, pulisci e crea grafici professionali dai dati di mercato con tecniche pratiche e codice riutilizzabile
Perché Visualizzare i Dati Storici di Prezzo?
Quando lavori con i mercati finanziari, i numeri da soli non raccontano la storia. Una tabella di mille righe di prezzi? Non serve a nulla. Ma un grafico ben fatto? Quello ti mostra tendenze, pattern e anomalie in pochi secondi.
Con Python puoi importare dati storici da Yahoo Finance, Alpha Vantage o altre API, pulirli in pochi passaggi, e creare grafici che sembrano professionali. Non serve essere un esperto di design — con matplotlib e plotly otterrai risultati solidi senza troppo codice.
Importare Dati
Connessione diretta a Yahoo Finance e altre fonti, con gestione automatica dei dati mancanti
Pulire i Dati
Rimuovi duplicati, valori errati e gestisci le date in formato coerente con pandas
Visualizzare
Crea grafici candlestick, linee di tendenza e medie mobili in poche righe di codice
Importare i Dati da Yahoo Finance
La libreria
yfinance
è il modo più semplice per ottenere dati storici. Non devi registrarti a nessun servizio, non ci sono chiavi API complicate. Installa il pacchetto con pip e sei pronto.
Specifica il ticker del titolo (come "AAPL" per Apple), la data di inizio e la data di fine. Yahoo Finance ti restituisce un DataFrame con prezzi di apertura, chiusura, massimi, minimi e volumi. I dati sono generalmente puliti già al primo download, ma è sempre buona pratica verificare.
import yfinance as yf
import pandas as pd
data = yf.download('AAPL', start='2024-01-01', end='2026-04-23')
print(data.head())
print(data.info())
Questo codice scarica i dati di Apple dal 2024 a oggi. Il DataFrame avrà colonne: Open, High, Low, Close, Volume e Adj Close. L'indice sarà la data — questo semplifica molto quando crei i grafici perché matplotlib riconosce automaticamente le date.
Pulire e Preparare i Dati
Anche con dati affidabili come Yahoo Finance, devi controllare. Verifiche rapide: hai buchi nelle date? Ci sono valori NaN? I prezzi sono in ordine cronologico?
Con pandas è veloce. Riempi i buchi con
fillna()
, riordina per data se necessario, e rimuovi le righe con dati incompleti. La maggior parte dei dati di prezzo è già ordinato, ma meglio controllare. Circa il 95% delle volte non serve fare nulla di complicato — due righe di codice e sei fatto.
data = data.dropna() data = data.sort_index() data['MA20'] = data['Close'].rolling(window=20).mean()
Questo codice rimuove le righe vuote, ordina per data (se necessario), e aggiunge una colonna con la media mobile a 20 giorni. La media mobile è utile nei grafici per vedere la tendenza generale oltre alle fluttuazioni giornaliere.
Creare Grafici OHLC con Matplotlib
I grafici OHLC (Open, High, Low, Close) sono lo standard nei mercati finanziari. Mostrano il prezzo di apertura, il massimo, il minimo e la chiusura di ogni giorno in una singola barra. È il modo più informativo per visualizzare i movimenti di prezzo.
Con matplotlib non è banale, ma ci sono trucchi. Usa un ciclo per disegnare ogni candela, colora in verde se il prezzo è salito durante il giorno, in rosso se è sceso. Aggiungi la media mobile come linea sopra per vedere la tendenza generale.
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
fig, ax = plt.subplots(figsize=(12, 6))
for i in range(len(data)):
row = data.iloc[i]
color = 'green' if row['Close'] >= row['Open'] else 'red'
ax.plot([i, i], [row['Low'], row['High']], color=color, linewidth=1)
rect = mpatches.Rectangle((i-0.3, min(row['Open'], row['Close'])),
0.6, abs(row['Close']-row['Open']),
facecolor=color, edgecolor=color)
ax.add_patch(rect)
ax.plot(data.index, data['MA20'], color='blue', linewidth=2, label='MA20')
ax.legend()
plt.show()
Questo crea una candela per ogni giorno. Non è il più elegante dei grafici, ma è funzionale. Per grafici ancora più belli, considera di usare plotly che ha già funzioni dedicate ai grafici candlestick.
Nota Importante
Questo articolo è a scopo educativo e informativo. La visualizzazione di dati storici di prezzo non costituisce consiglio finanziario o investimento. I dati passati non garantiscono risultati futuri. Prima di prendere decisioni finanziarie, consulta un professionista qualificato. Python e le librerie descritte sono strumenti neutrali — il loro utilizzo dipende dalle tue responsabilità e dalle normative del tuo paese.
Grafici Interattivi con Plotly
Se vuoi qualcosa di più interattivo, plotly è la risposta. Con plotly, i tuoi grafici hanno zoom, pan, hover che mostra i valori esatti. L'utente può selezionare un intervallo di date con il mouse — molto più fluido di matplotlib.
Plotly ha una funzione
graph_objects.Candlestick
fatta apposta per i grafici OHLC. Metti i dati e ottieni un grafico professionale in una riga. Aggiungi medie mobili, bande di Bollinger, o quello che vuoi — plotly lo disegna perfettamente.
import plotly.graph_objects as go
fig = go.Figure(data=[go.Candlestick(x=data.index,
open=data['Open'],
high=data['High'],
low=data['Low'],
close=data['Close'])])
fig.add_trace(go.Scatter(x=data.index, y=data['MA20'],
name='MA20', line=dict(color='blue')))
fig.update_layout(title='Prezzo Storico AAPL',
xaxis_title='Data',
yaxis_title='Prezzo ($)',
template='plotly_dark')
fig.show()
Plotly genera automaticamente grafici che funzionano bene su mobile e desktop. Puoi salvare il grafico come HTML e condividerlo — chiunque lo apra nel browser vedrà la versione interattiva completa. Non c'è bisogno di Python installato sul loro computer.
Riepilogo e Prossimi Passi
Hai visto come importare dati da Yahoo Finance, pulirli con pandas, e creare grafici con matplotlib e plotly. Non è complicato. Tre passaggi semplici e hai un grafico che mostra i dati in modo chiaro.
Da qui puoi aggiungere indicatori tecnici — RSI, MACD, Bande di Bollinger. Puoi creare dashboard interattive per confrontare più titoli. Puoi esportare i grafici in PDF per presentazioni. Le possibilità sono molte, ma la base è sempre la stessa: scarica, pulisci, visualizza.
Leggi la guida completa su matplotlib per scoprire come customizzare ogni aspetto dei tuoi grafici, oppure tuffati nelle dashboard interattive con Plotly. La comunità Python per la finanza è grande — troverai sempre risposte alle tue domande.