Realizato da

Pubblicato il

python

pandas

stock

azioni


guida in italiano come ottenere prezzi di azioni o stock usando Python

Ciao a tutti e benvenuti in questa guida dove vi mostro come ottenere dati su azioni finanziarie come: Prezzo di una azione (apertura e chiusura) usando la libreria Python Pandas e una API chiamata Alpha Vantage

Alpha Vantage offre API gratuite in formato JSON e CSV per dati storici e azionari in tempo reale, forex, criptovaluta e oltre 50 indicatori tecnici. Ma la miglior cosa è che possiamo usare semplicemente pandas-datareader per ottenere questi dati e possiamo farlo in modo completamente Gratuito. L'unica cosa che dobbiamo fare è ottenere una API key per usare la AV API. Questo processo è molto semplice e richiede circa 30 secondi. 

Per ora la registrazione per la API richiede solamente la vostra e-mail e non vi è bisogno di email di conferma.

Vediamo come ottenere una chiave API con Alpha Vantage.

Come ottenere chiave API Alpha Vantage

Come primo passo navighiamo al sito di Alpha Vantage per ottenere una API key.

Potete fare richiesta usando questo link: https://www.alphavantage.co/support/

Quando aprite questa pagina web, vedrete una form come quella mostrata in basso:

come ottenere prezzi di stock o azioni con python gratis

Completate la form, inserendo la vostra professione, e-mail e azienda per cui lavorate. Una volta completata la form basta semplicemente cliccare su "GET FREE API KEY" per ottenere la vostra key.


Una volta ottenuta la API key, possiamo procedere al prossimo passo: Il codice Python.

Come ottenere prezzo di uno stock con Python

Prima di tutto un disclaimer. Questo metodo gratuito funziona, ma ovviamente essendo gratuito ha i suoi limiti. Prima di tuto non è possibile ottenere risultati in tempo reale. Questo è dato la fatto che la API di Alpha Vantage non ha questo end point. Per una lista completa dei vari data reader disponibili con pandas-datareader potete vedere qui: https://pandas-datareader.readthedocs.io/en/latest/readers/index.html

Un'altro limite della Alpha Vantage API è dato dal fatto che non vi sono presenti azioni italiane. La API fornisce informazioni solamente relative ad azioni Americane e qualche azione del Regno Unito.

Come ottenere prezzo di una azione in un intervallo di date 

Detto questo vediamo come ottenere il prezzo di una azione. prendiamo come esempio lo stock Apple:

import os
from datetime import date
from datetime import timedelta
import pandas_datareader.data as web
azione="AAPL"
n_giorni = 2
inizio = date.today()-timedelta(days=n_giorni)
fine = date.today()
df = web.DataReader(azione, "av-daily",start=inizio, end=fine, api_key="LA_TUA_API_KEY")
print(df)

Il codice Python mostrato in alto funziona nel seguente modo: Prima di tutto importiamo le varie librerie che ci occorrono per eseguire il pull dei dati (in particolare pandas-datareader) Poi andiamo a creare due variabili: Una per la data iniziale dell'intervallo ed una per la data finale. Poi usando il metodo DataReader andiamo a passare il nome della azione, il nome dell'end-point della API (in questo caso av-daily), e la nostra API key ottenuta nel passo precedente.  Se eseguiamo questo codice, vedremo in output un DataFrame pandas contenente per ogni giorno dell'intervallo il prezzo di apertura e chiusura insieme al prezzo massimo e minimo della giornata. 

Come ottenere prezzo minuto per minuto di una azione con Python

Esistono vari end point all'interno della API di Alpha Vantage. In basso viene mostrata una lista:

av-intraday
Intraday Time Series (Minuto per minuto)
av-daily
Daily Time Series (Giorno per giorno)
av-daily-adjusted
Daily Time Series (Adjusted) 
av-weekly 
Weekly Time Series (Settimanale)
av-weekly-adjusted
Weekly Time Series (Adjusted)
av-monthly
Monthly Time Series (Mensile)
av-monthly-adjusted 
Monthly Time Series (Adjusted)
av-forex-daily
Daily Time Series
Potete sostituire nel codice Python l'end-point che volete per ottenere il risultato desiderato. Per esempio per ottenere il prezzo minuto per minuto di una azione Apple, possiamo semplicemente fare:

import os
from datetime import date
from datetime import timedelta
import pandas_datareader.data as web
azione="AAPL"
n_giorni = 1
inizio = date.today()-timedelta(days=n_giorni)
fine = date.today()
df = web.DataReader(azione, "av-intraday",start=inizio, end=fine, api_key="LA_TUA_API_KEY")
print(df)

Come potete vedere dal codice in alto abbiamo semplicemente sostituito l'end point av-daily con av-intraday. Per ulteriori informazioni su come usare la API di Alpha Vantage con pandas-datareader potete consultare la documentazione.
Ci siamo abbiamo visto come ottenere il prezzo di una azione usando codice Python!

Se hai una domanda puoi chiedere qualsiasi cosa nei commenti in basso

Grazie per aver letto questa guida su Devnews.it

Spero ti sia stata utile in qualche modo. Ti prego di supportare questa pagina mettendo mi piace alle nostre pagine social cliccando un basso, dove pubblichiamo regolermente notizie, tutorial e fatti curiosi sull'informatica. Grazie e ci vediamo alla prossima :)