Crea un set di dati finanziari con Yahoo Finance Python

Contenuti

introduzione

L'articolo mira a consentirti di creare i tuoi progetti imparando come creare il tuo frame di dati e raccogliere dati sul mercato azionario e sul mercato crittografico di Internet e quindi basare il tuo codice su di esso.. Ciò ti consentirà di creare i tuoi modelli ML e sperimentare con i dati del mondo reale..

In questo articolo, Dimostrerò due metodi ed entrambi utilizzeranno Yahoo Finance come fonte di dati, in quanto è gratuito e non è richiesta la registrazione. Puoi utilizzare qualsiasi altra fonte di dati come Quandi, Tiingo, IEX Cloud e altro.

29422stock_cover-5219197

Prepararsi

Nel primo approccio, considereremo il modulo finanziario in Python ed è un modulo molto facile con cui lavorare. L'altro modulo di cui parleremo è yahoofinancials, che richiede uno sforzo extra, ma restituisce molte informazioni aggiuntive in cambio. Ne parleremo più avanti e ora inizieremo importando i moduli richiesti nel nostro codice..

Configurazione iniziale:

Abbiamo bisogno di caricare le seguenti librerie:

importa panda come pd importa yfinance come yf da yahoofinancials importa YahooFinancials

Se non si dispone di queste librerie, puoi installarli tramite pip.

!pip install yfinance
!pip installare yahoofinancials

Primo metodo: come usare yfinance

In precedenza era noto come "fix_yahoo_finance", ma poi è stato trasformato in un modulo a sé stante, ma Yahoo non è ufficiale. Il modulo 'yfinance’ ora è una libreria molto popolare che è altamente compatibile con Python e può essere usata come patch per pandas_datareader o come libreria autonoma da sola. Ha molti usi potenziali e molte persone lo usano per scaricare i prezzi delle azioni e anche i prezzi delle criptovalute. Senza ulteriori indugi, eseguiamo il seguente codice. Inizieremo scaricando il prezzo delle azioni di "Apple"’

Codice:

aapl_df = yf.download('AAPL', 
                      inizio="2019-01-01", 
                      fine='2021-06-12', 
                      progresso=Falso,
)
aapl_df.head()

Produzione :

40276img1_aapl_details-1016683

L'intervallo di dati è impostato su 1 giorno, ma l'inner può essere specificato esternamente con valori come 1 m, 5 m, 15 m, 30 m, 60 m, 1h, 1D, 1 settimana, 1 mese e altro. Il comando sopra per scaricare i dati mostra una data di inizio e di fine, ma puoi anche semplicemente scaricare i dati con il codice indicato di seguito:

Codice:

aapl_df = yf.download('AAPL')

Produzione :

21991img1_aapl_details_max-2677150

Ci sono molti parametri della funzione di download che puoi trovare nella documentazione e l'inizio e la fine sono alcuni dei più comuni da usare. Dato che i dati erano piccoli, la barra di avanzamento è stata impostata su false e mostra che non ha senso e dovrebbe essere utilizzata per grandi volumi o dati.

Possiamo anche scaricare più quotazioni azionarie di più di un asset contemporaneamente. Fornire un elenco di nomi di società in formato elenco (P. Non. ['FB','MSFT','AAPL'] ) come l'argomento dei ticker. Possiamo anche fornire un argomento aggiuntivo che è autotuning = True, in modo che tutti i prezzi correnti siano adeguati per eventuali operazioni societarie come divisioni.

Oltre alla funzione yf.download, possiamo anche usare il modulo ticker e puoi eseguire il seguente codice per scaricare l'ultimo 5 anni di quotazioni delle azioni Apple.

Codice:

ticker = yf.Ticker('AAPL')
aapl_df = ticker.history(periodo="5e")
aapl_df['Chiudere'].complotto(titolo="Prezzo delle azioni di APPLE")

Produzione :

41502apple_stock_5yrs-6051609

L'unico vantaggio dell'utilizzo di un modulo ticker è che puoi sfruttare i molteplici metodi ad esso collegati.. I metodi disponibili che possiamo usare sono:

  • Informazioni – Questo metodo stampa un output dal formattatore JSON che contiene molte informazioni sull'azienda, iniziando con il nome completo dell'azienda, il riassunto, l'industria, gli scambi elencati con il paese e il fuso orario, e altro ancora. Inoltre è dotato di beta coefficiente.

  • consigli – Questo metodo contiene un elenco storico di raccomandazioni fatte da diversi analisti per quanto riguarda il titolo e se acquistare., vendere o dare suggerimenti al riguardo.

25965apple_recommendations-2840358
28787apple_actions-5543446
98419apple_major_holders-9920072
77712apple_institutional_holders-6820212
  • calendario – Questa funzione mostra tutti gli eventi in arrivo, come guadagni, e puoi anche aggiungerlo al tuo calendario di Google tramite codice. Fondamentalmente, mostra importanti date di dividendo per una società.

38920apple_calender-7687991

Se vuoi ancora esplorare di più su come funzionano le funzioni, puoi controllare questo GitHub yfinance repository.

Secondo metodo: Come usare yahoofinancials?

Il secondo metodo è utilizzare il modulo yahoofinancials, con cui è un po' più difficile lavorare, ma fornisce molte più informazioni di yfinance. Inizieremo scaricando i prezzi delle azioni Apple.

Per fare questo, passeremo prima un oggetto YahooFinancials ignorando il nome del ticker Apply e quindi utilizzeremo una serie di informazioni importanti per ottenere i dati richiesti. Qui, i dati restituiti sono in formato JSON e, così, facciamo un po' di abbellimento in modo che possano essere trasformati in un DataFrame per visualizzarli correttamente.

Codice:

yahoo_financials = YahooFinancials('AAPL')
data = yahoo_financials.get_historical_price_data(start_date="2019-01-01", 
                                                  end_date="2019-12-31", 
                                                  time_interval="settimanalmente")
aapl_df = pd.DataFrame(dati['AAPL']['prezzi'])
aapl_df = aapl_df.drop('Data', asse=1).set_index('data_formattata')
aapl_df.head()

Produzione :

27858apple_yahoo_finance-9755190

A livello tecnico, il processo per ottenere un prezzo storico delle azioni è un po' più lungo rispetto al caso di yfinance, ma ciò è dovuto principalmente all'enorme volume di dati. Passiamo ora ad alcune delle importanti funzioni di yahoofinancials.

  • get_stock_quote_type_data () – Questo metodo restituisce molte informazioni generiche su un'azione simile alla funzione yfinance info (). L'output è qualcosa del genere.

  • get_summary_data () – Questo metodo restituisce un riepilogo dell'intera azienda insieme a dati utili come il valore beta, prezzo per valore di libro e altro.

  • get_stock_earnings_data () – Questo metodo restituisce informazioni sui guadagni trimestrali e annuali della società insieme alla data successiva in cui la società riporterà i suoi guadagni..

  • get_financial_stmts () – Questo è un altro metodo utile per recuperare il bilancio di una società utile per l'analisi di un titolo..

  • get_historical_price_data () – Questo è un metodo simile alla funzione di download () o Ticker () per ottenere i prezzi delle azioni con start_date, end_date e intervalli di intervallo.

Il modulo sopra può essere utilizzato anche per scaricare i dati aziendali in una volta, come i dati di yfinance e criptovaluta possono anche essere scaricati come mostrato di seguito.

Codice:

yahoo_financials = YahooFinancials('BTC-USD')
data=yahoo_financials.get_historical_price_data("2019-07-10", "2021-05-30", "mensile")
btc_df = pd.DataFrame(dati['BTC-USD']['prezzi'])
btc_df = btc_df.drop('Data', asse=1).set_index('data_formattata')
btc_df.head()

Produzione :

31235btc_yahoo_finance-3124513

Per maggiori dettagli sul modulo, puoi controllare il tuo GitHub Repository.

Note finali

Le informazioni complete sono infine ottenute da Yahoo Finanza e ora sai come importare qualsiasi set di informazioni su azioni o criptovalute e dati sui prezzi nel tuo codice e iniziare a esplorarlo e sperimentarlo. Buona fortuna con le tue avventure e sentiti libero di condividere il tuo codice con me su LinkedIn oppure non esitare a contattarmi in caso di dubbi o errori.

Grazie per aver letto fino alla fine. Spero che tu stia bene e che tu stia al sicuro e che ti faccia vaccinare presto o che lo sei già.

Circa l'autore :

Arnab Mondal

Data Engineer e sviluppatore Python | Scrittore tecnico freelance

Link ad altri miei articoli

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.