Python Finanzdaten abrufen

Um in Python quantitative Analysen durchzuführen, müssen Sie zunächst Finanzdaten beschaffen. Es gibt mehrere Bibliotheken in Python, mit denen Finanzmarktdaten abgerufen werden können.

Die für die Beispiele auf dieser Website verwendete Bibliothek istyfinance。

Installieren Sie wie folgt:

pip install yfinance

yfinanceVerwendung der Bibliothekyf.download()Die Funktion zum Herunterladen von Finanzdaten.

Das Folgende ist sein grundlegendes Syntaxformat:

yf.download(tickers, start=None, end=None, actions=False, threads=True)

Parameterbeschreibung:

tickers:

  • Beschreibung:Der Code des Finanzinstruments (Aktie, Index, Fonds usw.), für das Daten heruntergeladen werden sollen.
  • Typ:String (einzelner Code) oder Liste (mehrere Codes).
  • Beispiel: "AAPL", ["AAPL", "GOOGL"].

start:

  • Beschreibung:Das Startdatum für das Herunterladen von Daten.
  • Typ:String (Datumsformat: "YYYY-MM-DD").
  • Standardwert:None, was bedeutet, dass ab dem frühesten verfügbaren Datum begonnen wird.
  • Beispiel: "2020-01-01"。

end:

  • Beschreibung:Das Enddatum für das Herunterladen von Daten.
  • Typ:String (Datumsformat: "YYYY-MM-DD").
  • Standardwert:None, was bedeutet, dass mit dem spätesten verfügbaren Datum geendet wird.
  • Beispiel: "2022-01-01"。

actions:

  • Beschreibung:Ob Aktiendividenden, Splits und andere Informationen einbezogen werden.
  • Typ:Boolesch.
  • Standardwert: False.
  • Beispiel: actions=True。

threads:

  • Beschreibung:Ob Multithreading zum Herunterladen von Daten verwendet werden soll.
  • Typ:Boolesch.
  • Standardwert: True.
  • Beispiel: threads=False。

In yfinance müssen Aktiencodes für chinesische A-Aktien um das Börsensuffix ergänzt werden. Das Suffix für die Shanghai Stock Exchange (SSE) ist.SS, und das Suffix für die Shenzhen Stock Exchange (SZSE) ist.SZ。

Nachfolgend ein einfaches Beispiel, dasyfinanceverwendet, um Aktiendaten für Kweichow Moutai (600519.SS) abzurufen:

Beispiel

import yfinance as yf

# Shanghai Stock Exchange, Aktiencode des Unternehmens Moutai
symbol = "600519.SS"

# Oder, Shenzhen Stock Exchange, Aktiencode des Unternehmens Luzhou Laojiao
# luzhou_laojiao_szse = yf.Ticker('000568.SZ')

# Aktiendaten des Unternehmens Moutai abrufen
maotai_data = yf.download(symbol, start="2022-01-01", end="2023-11-01")

# Die ersten paar Zeilen der Daten ausgeben
print(maotai_data.head())

Im obigen Code haben wir die download-Funktion von yfinance verwendet, um Aktienkurse für Kweichow Moutai (600519.SS) zu erhalten, mit einem Zeitraum vom 1. Januar 2022 bis zum 1. November 2023. Die zurückgegebenen Daten sind ein Pandas DataFrame, der Informationen wie Date, Open, High, Low, Close, Volume und Adjusted Close (Adj Close) enthält.

Für Inhalte von Pandas DataFrame siehe bitte:Pandas-Datenstrukturen - DataFrame

Das Ausführen des obigen Codes erzeugt die folgende Ausgabe:

# python3 mt.py
[*********************100%%**********************]  1 of 1 completed
                  Open         High          Low        Close    Adj Close   Volume
Date                                                                               
2022-01-04  2055.00000  2068.949951  2014.000000  2051.229980  1973.508057  3384262
2022-01-05  2045.00000  2065.000000  2018.000000  2024.000000  1947.309937  2839551
2022-01-06  2022.01001  2036.000000  1938.510010  1982.219971  1907.112793  5179475
2022-01-07  1975.00000  1988.880005  1939.319946  1942.000000  1868.416870  2981669
2022-01-10  1928.01001  1977.000000  1917.550049  1966.000000  1891.507568  2962670

Ticker-Klasse

Die yfinance-Ticker-Klasse wird verwendet, um Informationen und Echtzeitdaten für ein bestimmtes Finanzinstrument abzurufen.

TickerKlassenkonstruktor:

  • Verwendung:yf.Ticker('AAPL')
  • Beschreibung: Erstellt einTickerObjekt, das eine bestimmte Aktie oder einen bestimmten finanziellen Vermögenswert darstellt. Übergeben Sie den Aktiencode in den Klammern (z. B. 'AAPL').

historyMethoden:

  • Verwendung:ticker.history(period='1d', interval='1m')
  • Beschreibung: Ruft historische Kursdaten ab.periodDer Parameter gibt die Zeitspanne an, die Folgendes sein kann:'1d'(ein Tag),'1mo'(ein Monat),'1y'(ein Jahr), usw.;intervalDer Parameter gibt das Zeitintervall an, das sein kann'1m'(eine Minute),'1d'(ein Tag),'1wk'(eine Woche), usw.

infoAttribute:

  • Verwendung:ticker.info
  • Beschreibung: Ruft grundlegende Informationen über die Aktie ab, wie Firmenname, Branche, Marktkapitalisierung usw.

dividendsAttribute:

  • Verwendung:ticker.dividends
  • Beschreibung: Ruft Dividenden-Daten ab und gibt einen DataFrame zurück, der Datumswerte und Dividendenbeträge enthält.

splitsAttribute:

  • Verwendung:ticker.splits
  • Beschreibung: Ruft Aktiensplit-Daten ab und gibt einen DataFrame zurück, der Datumswerte und Split-Verhältnisse enthält.

recommendationsAttribute:

  • Verwendung:ticker.recommendations
  • Beschreibung: Ruft Aktienempfehlungen ab und gibt einen DataFrame zurück, der Datumswerte und Empfehlungsinformationen enthält.

major_holdersAttribute:

  • Verwendung:ticker.major_holders
  • Beschreibung: Ruft Informationen zu den Großaktionären der Aktie ab und gibt einen DataFrame zurück, der Großaktionäre und ihre Eigentumsanteile enthält.

sustainabilityAttribute:

  • Verwendung:ticker.sustainability
  • Beschreibung: Ruft Nachhaltigkeitsinformationen für die Aktie ab und gibt einen DataFrame zurück, der Umwelt-, Sozial- und Governance-Kennzahlen (ESG) enthält.

actionsAttribute:

  • Verwendung:ticker.actions
  • Beschreibung: Ruft Daten zu Unternehmensmaßnahmen für die Aktie ab, einschließlich Splits, Dividenden usw.

calendarAttribute:

  • Verwendung:ticker.calendar
  • Beschreibung: Ruft die Finanzkalenderinformationen des Unternehmens ab, wie Termine für die Veröffentlichung von Quartalszahlen usw.

Der folgende Code verwendet die Klasse Ticker aus der yfinance-Bibliothek, um Aktieninformationen für die Microsoft Corporation (Aktiencode: MSFT) abzurufen, einschließlich grundlegender Informationen, historischer Marktdaten, Dividenden, Aktiensplits, Finanzberichte usw.:

Beispiel

import yfinance as yf

# Erstelle ein Ticker-Objekt, das Operationen auf Microsoft-Aktiendaten repräsentiert
msft = yf.Ticker("MSFT")

# Alle Aktieninformationen abrufen
msft.info

# Historische Marktdaten abrufen, hier sind die Daten für den letzten Monat
hist = msft.history(period="1mo")

# Metadaten der historischen Daten anzeigen (erfordert zuerst den Aufruf der Funktion history())
msft.history_metadata

# Informationen zu Unternehmensaktionen anzeigen (Dividenden, Splits, Kapitalgewinne)
msft.actions
msft.dividends
msft.splits
msft.capital_gains  # Nur anwendbar auf Investmentfonds und börsengehandelte Fonds (ETFs)

# Ausstehende Aktien anzeigen
msft.get_shares_full(start="2022-01-01", end=None)

# Finanzberichte anzeigen:
# - Gewinn- und Verlustrechnung
msft.income_stmt
msft.quarterly_income_stmt
# - Bilanz
msft.balance_sheet
msft.quarterly_balance_sheet
# - Kapitalflussrechnung
msft.cashflow
msft.quarterly_cashflow
# Für weitere Optionen siehe `Ticker.get_income_stmt()`

# Aktionärsinformationen anzeigen
msft.major_holders
msft.institutional_holders
msft.mutualfund_holders

# Zukünftige und historische Termine für Gewinnveröffentlichungen anzeigen; standardmäßig werden Daten für bis zu 4 zukünftige Quartale und 8 vergangene Quartale zurückgegeben.
# Hinweis: Wenn weitere Informationen benötigt werden, können Sie msft.get_earnings_dates(limit=XX) verwenden, wobei XX ein erhöhter Grenzwertparameter ist.
msft.earnings_dates

# International Securities Identification Number (ISIN) anzeigen – *experimentelles Feature*
# ISIN = International Securities Identification Number
msft.isin

# Verfallsdaten von Optionen anzeigen
msft.options

# Nachrichten anzeigen
msft.news

# Optionskette für ein bestimmtes Verfallsdatum abrufen
opt = msft.option_chain('YYYY-MM-DD')
# Auf die Daten kann über opt.calls, opt.puts zugegriffen werden

Mehrere Aktiendaten abrufen

Der folgende Code verwendet die yfinance-Bibliothek, um ein Tickers-Objekt zu initialisieren, das mehrere Aktiencodes enthält, und verwendet dieses Objekt, um auf Informationen, historische Daten und Unternehmensaktionen für verschiedene Aktien zuzugreifen:

Beispiel

import yfinance as yf

# Ein Tickers-Objekt initialisieren, das mehrere Aktiencodes enthält
tickers = yf.Tickers('msft aapl goog')

# Verwendungsbeispiel: Zugriff auf Informationen für jede Aktie
tickers.tickers['MSFT'].info  # Grundlegende Informationen zu Microsoft (MSFT) abrufen
tickers.tickers['AAPL'].history(period="1mo")  # Historische Daten für Apple (AAPL) für den vergangenen Monat abrufen
tickers.tickers['GOOG'].actions  # Informationen zu Unternehmensaktionen für Google (GOOG) abrufen (Dividenden, Splits usw.)

Historische Daten herunterladen

Der folgende Code verwendet dieyfinanceBibliothek, um historische Marktdaten für den S&P 500 ETF (SPY) und Apple (AAPL) für den vergangenen Monat herunterzuladen:

Beispiel

import yfinance as yf

# Mit yfinance historische Marktdaten für den S&P 500 ETF (SPY) und Apple (AAPL) herunterladen
data = yf.download("SPY AAPL", period="1mo")

period="1mo"Der Parameter gibt an, dass der Downloadzeitraum der vergangene Monat ist.


Weitere Finanzbibliotheken

Hier sind einige Bibliotheken, die hauptsächlich zum Abrufen von Finanzdaten verwendet werden:

yfinance

  • Offizielle Website: yfinance
  • Einführung:yfinance ist eine Bibliothek zum Abrufen von Yahoo Finance-Daten. Sie bietet eine einfache API, mit der Benutzer Finanzdaten wie Aktien, Indizes usw. abrufen können.
  • Installation: pip install yfinance

Tushare

  • Offizielle Website: Tushare
  • Einführung:Tushare ist eine offene Finanzdatenplattform, die Schnittstellen für umfangreiche Finanzmarktdaten wie Aktien, Futures, Fonds usw. bereitstellt. Sie unterstützt Python und bietet eine benutzerfreundliche API.
  • Installation: pip install tushare

pandas-datareader

  • Offizielle Website: pandas-datareader
  • Einführung:pandas-datareader ist eine Bibliothek, die Finanzdaten aus mehreren Online-Datenquellen (wie Yahoo Finance, Google Finance usw.) abruft.
  • Installation: pip install pandas-datareader
  • Offizielle Website: baostock

baostock

  • Offizielle Website: baostock
  • Einführung:baostock ist eine Bibliothek, die kostenlos Finanzdaten wie A-Aktien, Hongkong-Aktien, Optionen usw. bereitstellt. Sie bietet eine Python-Schnittstelle, mit der Benutzer bequem Daten abrufen können.
  • Installation: pip install baostock

alpha_vantage

  • Offizielle Website: alpha_vantage
  • Einführung:alpha_vantage stellt eine einfache API bereit, mit der Finanzdaten wie Aktien, Devisen usw. abgerufen werden können. Außerdem unterstützt es die Berechnung einiger technischer Indikatoren.
  • Installation: pip install alpha_vantage

quandl

  • Offizielle Website: Quandl
  • Einführung:Quandl bietet finanzielle und wirtschaftliche Daten aus verschiedenen Quellen. Es bietet eine Python-Bibliothek, mit der Benutzer bequem Daten abrufen können.
  • Installation: pip install quandl

ccxt

  • Offizielle Website: ccxt
  • Einführung:ccxt ist eine Open-Source-Bibliothek für den Handel und das Abrufen von Finanzdaten und unterstützt den Datenabruf von mehreren Börsen.
  • Installation: pip install ccxt

AKShare

  • Offizielle Website: AKShare
  • Einführung:AKShare ist eine Python-basierte Bibliothek für Finanzdaten-Schnittstellen. Sie zielt darauf ab, eine Reihe von Werkzeugen für Finanzprodukte wie Aktien, Futures, Optionen, Fonds, Devisen, Anleihen, Indizes und Kryptowährungen bereitzustellen, die Fundamentaldaten, Echtzeit- und historische Marktdaten sowie abgeleitete Daten abdecken, von der Datenerfassung über die Datenbereinigung bis zur Datenspeicherung. Sie wird hauptsächlich für akademische Forschungszwecke verwendet.
  • Installation: pip install akshare
Weitere Erweiterungen