Strategie trend-following

Trading finanziario con Python

Chelsea Yang

Data Science Instructor

Due tipi di strategie di trading

Trend-following

  • Scommetti che il trend dei prezzi continui nella stessa direzione
  • Usa indicatori di trend come medie mobili, ADX, ecc. per costruire segnali operativi

Mean reversion

  • Scommetti che il prezzo torni verso la media
  • Usa indicatori come RSI, Bande di Bollinger, ecc. per costruire segnali operativi
Trading finanziario con Python

Strategia di incrocio delle MA

The trend is your friend.

 

  • Incrocio di due EMA:
    • Segnale long: la EMA di breve incrocia al rialzo la EMA di lungo
    • Segnale short: la EMA di breve incrocia al ribasso la EMA di lungo
Trading finanziario con Python

Calcolare gli indicatori

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()
Trading finanziario con Python

Costruire il segnale

# 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
Trading finanziario con Python

Rappresentare il segnale

# 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'])

Grafico segnale incrocio EMA

Trading finanziario con Python

Definire la strategia con il segnale

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

[bt.algos.WeighTarget(signal), bt.algos.Rebalance()])
Trading finanziario con Python

Backtest della strategia basata sul segnale

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

Rappresentare i risultati del backtest

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

Risultato backtest incrocio MA

Trading finanziario con Python

Esercitiamoci!

Trading finanziario con Python

Preparing Video For Download...