Python ist in den letzten Jahren zur bevorzugten Programmiersprache für Finanzanalysten und Datenwissenschaftler geworden. Mit einer Vielzahl von Bibliotheken und Frameworks, die für Datenanalyse und Visualisierung zur Verfügung stehen, können Anwender komplexe Aktienanalysen mit wenigen Zeilen Code durchführen. In diesem Artikel werden wir untersuchen, wie Python für die Aktienanalyse verwendet werden kann, und uns auf die wichtigsten Tools und Techniken konzentrieren.

Warum Python für Aktienanalyse?

Python bietet mehrere Vorteile gegenüber anderen Programmiersprachen:

  • Einfachheit und Lesbarkeit: Python-Code ist leicht zu lesen und zu schreiben, was die Entwicklung beschleunigt.
  • Bibliotheks-Ökosystem: Es gibt zahlreiche Bibliotheken für Datenanalyse, Finanzmodelle und Visualisierung.
  • Community-Unterstützung: Eine große Community von Entwicklern und Analysten, die bereit sind, ihr Wissen zu teilen und zu helfen.
  • Integration: Python lässt sich leicht mit anderen Systemen und Datenbanken integrieren.

Wichtige Python-Bibliotheken für Aktienanalyse

Pandas

Pandas ist eine leistungsstarke Datenanalyse-Bibliothek, die speziell für strukturierte Daten entwickelt wurde. Mit DataFrame als Hauptstruktur ermöglicht Pandas das einfache Manipulieren und Analysieren von Daten.

Numpy

Numpy ist eine Bibliothek, die numerische Operationen auf Arrays unterstützt. Für Finanzdaten kann es zur Berechnung von Statistiken oder anderen mathematischen Operationen verwendet werden.

Mathplotlib und Deaborn

Beide sind Visualisierungsbibliotheken, die es ermöglichen, Daten auf intuitive und informative Weise darzustellen.

yfinance

yfinance ermöglicht es Benutzern, Aktiendaten direkt von Yahoo Finance herunterzuladen.

statsmodels

Diese Bibliothek ist für statistische Modelle und Tests unerlässlich.

Aktienanalyse mit Python: Ein einfacher Workflow

(1) Datenbeschaffung

Es gibt sehr viele Pakete, die genutzt werden können um Daten aus dem Internet für die Finanzanalyse zu beziehen. Hier ein Auszug der, die ich bis dato verwendet habe:

  1. yfinance: Ermöglicht den schnellen Zugriff auf historische Marktdaten von Yahoo Finance.
  2. yahoofinancials: Eine Python-Bibliothek, die den Zugriff auf Finanzdaten von Yahoo Finance in einem strukturierten Format ermöglicht.
  3. pytickersymbols: Ein Tool, um Aktiensymbole aus verschiedenen Börsenindizes abzurufen.
  4. alpha_vantage: Ermöglicht den Zugriff auf Echtzeit- und historische Marktdaten von Alpha Vantage.
  5. quandl: Erlaubt den Zugriff auf eine Vielzahl von Finanz- und Wirtschaftsdaten über Quandl.
  6. iexfinance: Bietet Zugriff auf Echtzeit-Finanzdaten von der IEX Cloud-Plattform.
  7. pandas_datareader: Erlaubt das Abrufen von Finanzdaten von verschiedenen Internetquellen direkt in einen Pandas DataFrame.
  8. finnhub-python: Ein Client, um Daten von der Finnhub API zu beziehen, die verschiedene Arten von Finanzdaten bietet.
  9. fastquant: Ermöglicht das schnelle Abrufen von Finanzdaten und die Umsetzung von quantitativen Strategien.
  10. WorldTradingData: Ein Paket zum Abrufen von Echtzeit- und historischen Aktiendaten von World Trading Data.
  11. twelvedata: Ein Client für den Zugriff auf Finanzdaten über die Twelve Data API.
  12. eodhistoricaldata-api: Ermöglicht den Zugriff auf EOD Historical Data, einschließlich Aktien, ETFs und Mutual Funds.
  13. stooq: Ein einfacher Client, um Daten von Stooq zu beziehen, einer Website, die historische Daten für eine Vielzahl von Finanzinstrumenten bietet.
  14. fmpcloud: Bietet Zugriff auf eine Vielzahl von Finanzmarktdaten über die Financial Modeling Prep API.
  15. fredapi: Ein Tool, um Daten vom Federal Reserve Economic Database (FRED) abzurufen.
  16. pysec: Ermöglicht den Zugriff auf Daten aus Einreichungen beim US Securities and Exchange Commission (SEC).
  17. nsetools: Ein Python-Utility-Paket, das Daten von der National Stock Exchange (NSE) von Indien extrahiert.
  18. NSEpy: Eine Bibliothek, um historische und Echtzeitdaten von der NSE (National Stock Exchange) zu beziehen.
  19. pyNSE: Ein weiteres Tool zum Extrahieren von Daten aus der National Stock Exchange von Indien.
  20. investpy: Ermöglicht den Zugriff auf Finanzdaten von Investing.com, einschließlich Aktien, ETFs, Indizes, Währungen und Kryptowährungen.

(2) Datenexploration und -reinigung

(3) statistische Analyse

(4) Visualisierung

(5) Vorhersagemodelle

Fortgeschrittene Analyse-Techniken

Technische Indikatoren

Mithilfe von Pandas und TA-Lib können technische Indikatoren wie Moving Averages, RSI und MACD berechnet werden.

Maschinelles Lernen

Modelle wie Random Forest, Gradient Boosting oder tiefe neuronale Netze können zur Vorhersage von Aktienpreisen eingesetzt werden.

Risikoanalyse

Das Value at Risk (VaR) ist ein beliebtes Maß, um das Marktrisiko zu quantifizieren.

QuantRocket

QuantRocket ist eine Plattform, die speziell für quantitative Handelsstrategien und -forschung entwickelt wurde. Sie bietet eine Suite von Tools und Diensten, die es Händlern ermöglichen, Daten zu sammeln, Strategien zu entwickeln, Backtests durchzuführen und Trades zu platzieren.

Einige Hauptmerkmale von QuantRocket sind:

  1. Datenbeschaffung: QuantRocket bietet integrierten Zugriff auf eine Vielzahl von Finanzdatenquellen. Dies schließt historische Kursdaten, fundamentale Daten, Futures, Forex und mehr ein.
  2. Entwicklung von Strategien: Die Plattform unterstützt sowohl Python als auch MoonScript (eine Domain-spezifische Sprache für algorithmischen Handel) für die Strategieentwicklung.
  3. Backtesting: QuantRocket bietet Tools für das Backtesting von Strategien, um ihre Performance anhand historischer Daten zu bewerten.
  4. Scheduling: Mit QuantRocket können Sie den Handel zu bestimmten Zeiten planen, was nützlich ist, um Strategien automatisch zu bestimmten Marktszenarien zu handeln.
  5. Integration mit Brokern: QuantRocket unterstützt die Integration mit mehreren Brokern, was es Benutzern ermöglicht, Trades direkt über die Plattform auszuführen.
  6. Datenbankunterstützung: QuantRocket verwendet intern mehrere Datenbanken (z. B. SQLite und Redis), um Daten zu speichern und Operationen zu optimieren.

FinancialModelingPrep

FinancialModelingPrep ist eine Online-Plattform, die Echtzeit- und historische Aktienmarkt-Daten bietet. Sie ermöglicht Investoren und Entwicklern den Zugriff auf eine Vielzahl von Finanzdaten, einschließlich Unternehmensprofilen, Bilanzen, Einkommensberichten und historischen Kursdaten. Durch ihre API bietet FinancialModelingPrep eine einfache Integration in Anwendungen und Systeme und wird so zu einem wertvollen Werkzeug für quantitative Analysen und algorithmischen Handel.

(a) Kommunikation mittels API

FinancialModelingPrep (FMP) bietet eine API, mit der Sie auf eine Vielzahl von Finanzdaten zugreifen können. Um mit dieser API in Python zu kommunizieren, können Sie das Paket requests verwenden, um HTTP-Anfragen zu senden und die zurückgegebenen Daten zu erhalten.

(b) Kommuniktion mittels Python-Paket

Es gibt auch fertige Python-Pakete, die speziell entwickelt wurden, um mit der FinancialModelingPrep-API zu interagieren. Ein solches Paket, das zum Zeitpunkt meines letzten Trainings (bis Januar 2022) existiert, ist financialmodelingprep.

Fertige Skripte

Das Jupiter Notebook zur meiner Vorlesung zum Thema „Grundlagen der Aktienanalyse in Python“.
Als Ergänzung dazu noch eine kurze Beschreibung der wichtigsten Merkmale, die man über Ticker.info zu einem Wertpapier erhält.

Piotroski F-Score

In einem anderen Blog-Artikel habe ich schrittweise erklärt, wie der Piotroski F-Score errechnet wird. Wer das manuell durchführt, wird schnelle feststellen, dass das eine Menge Arbeit ist. Was liegt also näher als die Berechnung zu automatisieren, sodass der Score schnell für unterschiedliche Unternehmen berechnet werden kann. Es gibt/gab zwar (zum Zeitpunkt der Erstellung des Blog-Eintrags) einige Versuche den Piotroski F-Score in Python umzusetzen, diese hatten jedoch in meinen Augen einige Schwächen.

weiterführende Links