Handelssignaler

Finansiell handel i Python

Chelsea Yang

Data Science Instructor

Vad är handelssignaler?

  • Triggers för långa eller korta positioner i finansiella tillgångar baserat på fördefinierade kriterier
  • Kan konstrueras med:

    • En teknisk indikator
    • Flera tekniska indikatorer
    • En kombination av marknadsdata och indikatorer
  • Används ofta inom algoritmisk handel

Finansiell handel i Python

Ett signalexempel

  • Signal: Pris > SMA (lång position när priset stiger över SMA)

Ett diagram över en signal som indikerar handelsingångar.

Finansiell handel i Python

Implementera signaler i bt

  1. Hämta data och beräkna indikatorer
  2. Definiera den signalbaserade strategin
    • bt.algos.SelectWhere()
    • bt.algos.WeighTarget()
  3. Skapa och kör ett backtest
  4. Granska backtestresultatet
Finansiell handel i Python

Konstruera signalen

# Get price data by the stock ticker
price_data = bt.get('aapl', start='2019-11-1', end='2020-12-1')
# Calculate SMA
sma = price_data.rolling(20).mean()

Alternativt kan du använda talib för att beräkna indikatorn:

# Calculate SMA
import talib
sma =  talib.SMA(price_data['Close'], timeperiod=20)
Finansiell handel i Python

Definiera en signalbaserad strategi

# Define the signal-based strategy
bt_strategy = bt.Strategy('AboveEMA',
                          [bt.algos.SelectWhere(price_data > sma),
                           bt.algos.WeighEqually(),
                           bt.algos.Rebalance()])
  • Vi antar för enkelhetens skull:
    • Handel med en tillgång i taget
    • Ingen slippage eller courtage
      • Slippage: skillnaden mellan förväntat pris och faktiskt genomfört pris
      • Courtage: avgifter som mäklare tar ut vid handel
Finansiell handel i Python

Backtest av den signalbaserade strategin

# Create the backtest and run it
bt_backtest = bt.Backtest(bt_strategy, price_data)
bt_result = bt.run(bt_backtest)
Finansiell handel i Python

Visualisera backtestresultatet

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

Diagram över backtestresultatet

Finansiell handel i Python

Nu kör vi en övning!

Finansiell handel i Python

Preparing Video For Download...