Trading-Signale

Finanzhandel mit Python

Chelsea Yang

Data Science Instructor

Was sind Trading-Signale?

  • Auslöser für Long- oder Short-Positionen basierend auf vordefinierten Kriterien
  • Können aufgebaut werden mit:

    • Einem technischen Indikator
    • Mehreren technischen Indikatoren
    • Einer Kombination aus Marktdaten und Indikatoren
  • Häufig im algorithmischen Handel verwendet

Finanzhandel mit Python

Ein Signalbeispiel

  • Signal: Preis > SMA (long, wenn der Preis über die SMA steigt)

Ein Diagramm eines Signals, das Handels­einstiege nahelegt.

Finanzhandel mit Python

So setzt du Signale in bt um

  1. Daten laden und Indikatoren berechnen
  2. Die signalbasierte Strategie definieren
    • bt.algos.SelectWhere()
    • bt.algos.WeighTarget()
  3. Einen Backtest erstellen und ausführen
  4. Das Backtest-Ergebnis prüfen
Finanzhandel mit Python

Das Signal konstruieren

# Preisdaten per Ticker abrufen
price_data = bt.get('aapl', start='2019-11-1', end='2020-12-1')
# SMA berechnen
sma = price_data.rolling(20).mean()

Alternativ kannst du talib für die Berechnung verwenden:

# SMA berechnen
import talib
sma =  talib.SMA(price_data['Close'], timeperiod=20)
Finanzhandel mit Python

Eine signalbasierte Strategie definieren

# Die signalbasierte Strategie definieren
bt_strategy = bt.Strategy('AboveEMA',
                          [bt.algos.SelectWhere(price_data > sma),
                           bt.algos.WeighEqually(),
                           bt.algos.Rebalance()])
  • Zur Vereinfachung nehmen wir an:
    • Handel mit einem Asset zurzeit
    • Kein Slippage und keine Kommissionen
      • Slippage: Differenz zwischen erwartetem Preis und Ausführungspreis eines Trades
      • Kommission: Gebühren, die Broker bei der Ausführung erheben
Finanzhandel mit Python

Die signalbasierte Strategie backtesten

# Backtest erstellen und ausführen
bt_backtest = bt.Backtest(bt_strategy, price_data)
bt_result = bt.run(bt_backtest)
Finanzhandel mit Python

Das Backtest-Ergebnis plotten

# Backtest-Ergebnis plotten
bt_result.plot(title='Backtest result')

Diagramm des Backtest-Ergebnisses

Finanzhandel mit Python

Lass uns üben!

Finanzhandel mit Python

Preparing Video For Download...