Logo FR Trade For You FR Trade For You Contattaci
Tutorial Python

Visualizzare Dati Storici di Prezzo in Python

Importa, pulisci e crea grafici professionali dai dati di mercato con tecniche pratiche e codice riutilizzabile

Foglio di dati storici dei prezzi azionari con colonne di prezzi di apertura, chiusura e volumi

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.

Terminale Python con libreria yfinance che scarica dati storici di prezzo, mostra righe di dati con date e prezzi
Notebook Jupyter con DataFrame pandas mostrante dati di prezzo storici con colonne Clean, indici di data, righe di numeri

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.

Grafico candlestick su schermo con barre colorate rosse e verdi, media mobile blu, assi etichettati con date e prezzi

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.

Dashboard interattiva Plotly con grafici dinamici, slider temporale, bottoni per selezionare ticker azionari

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.

Cosa Provare Dopo

  • Scarica dati di 5 titoli diversi e crea un grafico per ciascuno
  • Aggiungi un indicatore tecnico come la media mobile esponenziale (EMA)
  • Crea una dashboard Plotly che permetta di selezionare il ticker da una lista
  • Esporta i dati puliti in un file CSV per ulteriori analisi

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.

Marco Rossini

Marco Rossini

Senior Data Visualization Specialist

Esperto di visualizzazione dati finanziari con Python, specializzato in matplotlib, plotly e dashboard interattive per i mercati italiani.