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
# 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 ein
TickerObjekt, 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
# 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
# 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
# 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