Algo-Trading Teil 1 So empfängt man Kursdaten

Aktualisiert 18. Juni 2021

Eine der wichtigen Herausforderungen beim Algo-Trading ist es, 1000 und mehr Aktien zu scannen und mit den Kursdaten etwas Spannendes anzufangen. Aber wie kommt man an die Kursdaten?

Wie bekommt man die Kursdaten?

Es gibt unzählige Projekte auf GitHub, um Kursdaten zu beziehen, und mein Favorit ist yfinance.

Das folgende Beispiel zeigt, wie man die Aktienkurse von Microsoft abrufen kann:

import yfinance as yf
msft = yf.Ticker("MSFT")
# get stock info
msft.info
# get historical market data
hist = msft.history(period="max")

Die Bibliothek benötigt ein Ticker-Symbol, um historische Marktdaten herunterzuladen. Daher brauchen wir eine Datenbank mit allen wichtigen Aktiensymbolen.

Wie bekommt man die Aktiensymbole?

Für dieses Problem habe ich selbst eine Bibliothek geschrieben. Sie heißt pytickersymbols und ist für jeden frei zugänglich.

Die Syntax ist denkbar einfach:

import yfinance as yf
from pytickersymbols import PyTickerSymbols

stock_data = PyTickerSymbols()

sp100_yahoo = stock_data.get_sp_100_nyc_yahoo_tickers()
sp500_google = stock_data.get_sp_500_nyc_yahoo_tickers()
dow_yahoo = stock_data.get_dow_jones_nyc_yahoo_tickers()

us_stocks = sp100_yahoo + sp500_google + dow_yahoo

for us_stock in us_stocks:
   stock_data = yf.Ticker(us_stock)
   data = stock_data.history(period="max")
   # save data for analysis purposes
   data.to_csv(f'{us_stock}.csv', sep='\t', encoding='utf-8')
   # do magic stuff wit price data
   data['SMA(5)'] = data.open.rolling(5).mean()
   data['SMA(15)'] = data.open.rolling(15).mean()
   df['Buy'] = df['SMA(5)'].ge(df['SMA(15)'])
   data.to_csv(f'{us_stock}.csv', sep='\t', encoding='utf-8')

Mit dem obigen Skript können wir Kursdaten von 640 verschiedenen Aktien herunterladen und mit dem einfachen SMA-Algorithmus Kaufsignale generieren. Wow :D