Signaux de trading

Trading financier en Python

Chelsea Yang

Data Science Instructor

Qu'est-ce qu'un signal de trading ?

  • Déclencheurs pour acheter (long) ou vendre à découvert selon des critères prédéfinis
  • Peuvent être construits avec :

    • Un indicateur technique
    • Plusieurs indicateurs techniques
    • Un mélange de données de marché et d'indicateurs
  • Courants en trading algorithmique

Trading financier en Python

Exemple de signal

  • Signal : Price > SMA (long lorsque le prix dépasse la SMA)

Un graphique d'un signal suggérant des entrées de trade.

Trading financier en Python

Comment implémenter des signaux avec bt

  1. Obtenir les données et calculer les indicateurs
  2. Définir la stratégie basée sur un signal
    • bt.algos.SelectWhere()
    • bt.algos.WeighTarget()
  3. Créer et exécuter un backtest
  4. Analyser le résultat du backtest
Trading financier en Python

Construire le signal

# 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()

Alternatively, use talib to calculate the indicator:

# Calculate SMA
import talib
sma =  talib.SMA(price_data['Close'], timeperiod=20)
Trading financier en Python

Définir une stratégie basée sur un signal

# Define the signal-based strategy
bt_strategy = bt.Strategy('AboveEMA',
                          [bt.algos.SelectWhere(price_data > sma),
                           bt.algos.WeighEqually(),
                           bt.algos.Rebalance()])
  • Par simplicité, on suppose :
    • Trader un seul actif à la fois
    • Pas de slippage ni de commissions
      • Slippage : écart entre le prix attendu et le prix d'exécution
      • Commission : frais facturés par les courtiers à l'exécution
Trading financier en Python

Backtester la stratégie fondée sur un signal

# Create the backtest and run it
bt_backtest = bt.Backtest(bt_strategy, price_data)
bt_result = bt.run(bt_backtest)
Trading financier en Python

Tracer le résultat du backtest

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

Graphique du résultat du backtest

Trading financier en Python

Passons à la pratique !

Trading financier en Python

Preparing Video For Download...