Trendfolgestrategien

Finanzhandel mit Python

Chelsea Yang

Data Science Instructor

Zwei Arten von Handelsstrategien

Trendfolge

  • Setze darauf, dass der Preistrend in dieselbe Richtung weiterläuft
  • Nutze Trendindikatoren wie gleitende Durchschnitte, ADX usw., um Handelssignale zu erzeugen

Mean Reversion

  • Setze darauf, dass der Preis zum Mittelwert zurückkehrt
  • Nutze Indikatoren wie RSI, Bollinger-Bänder usw., um Handelssignale zu erzeugen
Finanzhandel mit Python

MA-Crossover-Strategie

The trend is your friend.

 

  • Zwei EMA-Crossovers:
    • Long-Signal: die kurzfristige EMA kreuzt über die langfristige EMA
    • Short-Signal: die kurzfristige EMA kreuzt unter die langfristige EMA
Finanzhandel mit Python

Indikatoren berechnen

import talib
# Calculate the indicators
EMA_short = talib.EMA(price_data['Close'],
                      timeperiod=10).to_frame()
EMA_long = talib.EMA(price_data['Close'], 
                     timeperiod=40).to_frame()
Finanzhandel mit Python

Signal konstruieren

# Create the signal DataFrame
signal = EMA_long.copy()
signal[EMA_long.isnull()] = 0

# Construct the signal signal[EMA_short > EMA_long] = 1
signal[EMA_short < EMA_long] = -1
Finanzhandel mit Python

Signal plotten

# Plot the signal, price and MAs
combined_df = bt.merge(signal, price_data, EMA_short, EMA_long)
combined_df.columns = ['Signal', 'Price', 'EMA_short', 'EMA_long']

combined_df.plot(secondary_y=['Signal'])

EMA-Crossover-Signalplot

Finanzhandel mit Python

Strategie mit dem Signal definieren

# Define the strategy
bt_strategy = bt.Strategy('EMA_crossover',

[bt.algos.WeighTarget(signal), bt.algos.Rebalance()])
Finanzhandel mit Python

Signalbasierte Strategie backtesten

# Create the backtest and run it
bt_backtest = bt.Backtest(bt_strategy, price_data)
bt_result = bt.run(bt_backtest)
Finanzhandel mit Python

Backtest-Ergebnisse plotten

# Plot the backtest result
bt_result.plot(title='Backtest result')

MA-Crossover-Backtest-Ergebnis

Finanzhandel mit Python

Lass uns üben!

Finanzhandel mit Python

Preparing Video For Download...