Stratégie de trading quantitatif de suivi des tendances à moyenne mobile triple et de fusion de momentum

EMA TEMA MACD SMA
Date de création: 2024-11-27 16:08:16 Dernière modification: 2024-11-27 16:08:16
Copier: 2 Nombre de clics: 439
1
Suivre
1617
Abonnés

Stratégie de trading quantitatif de suivi des tendances à moyenne mobile triple et de fusion de momentum

Aperçu

Il s’agit d’une stratégie de trading quantitative basée sur la combinaison du suivi des tendances et de l’analyse de la dynamique. Cette stratégie utilise les moyennes mobiles à trois indices (TEMA), les croisements de moyennes mobiles multiples et les variations MACD pour identifier les tendances du marché et les moments d’entrée. La stratégie utilise un mécanisme de contrôle des risques rigoureux, comprenant des arrêts de perte et de profit fixes et des objectifs de suivi des arrêts de perte, afin d’obtenir un équilibre optimal entre les risques et les gains.

Principe de stratégie

La stratégie est principalement basée sur trois systèmes d’indicateurs techniques clés pour déterminer les signaux de transaction:

  1. Le système des moyennes mobiles à triple indice (TEMA) est utilisé pour confirmer la direction de la tendance globale. L’intensité de la tendance est déterminée en calculant les trois niveaux d’EMA et en combinant leurs variations dynamiques.
  2. Les EMA à 9 et 15 cycles sont utilisés pour capturer les points de basculement des tendances intermédiaires.
  3. Le croisement des prix avec l’EMA de 5 cycles sert de signal de confirmation final pour une saisie précise de l’heure d’entrée.

Le déclenchement d’un signal de transaction nécessite que les conditions suivantes soient réunies:

  • L’indicateur MACD forme un croisement doré avec sa ligne de signal et TEMA tend vers le haut
  • EMA à court terme sur une EMA à long terme
  • Les prix ont subi une EMA de 5 cycles

Avantages stratégiques

  1. Le mécanisme de confirmation multiple réduit considérablement l’impact des faux signaux et améliore la précision des transactions.
  2. La combinaison de l’observation des tendances et de l’analyse de la dynamique permet de saisir les grandes tendances et de ne pas rater les opportunités à court terme.
  3. Un mécanisme d’arrêt complet est utilisé, comprenant des points d’arrêt fixes et des points d’arrêt suivis dynamiquement, afin de contrôler efficacement les risques.
  4. Les paramètres de la stratégie sont très flexibles et peuvent s’adapter à différents environnements de marché.
  5. La logique d’entrée est claire, facile à comprendre et à exécuter.

Risque stratégique

  1. Les mécanismes de confirmation multiple peuvent entraîner des admissions plus lentes et des opportunités manquées dans un contexte de rapidité.
  2. Les points de rupture fixes doivent être ajustés en fonction des fluctuations du marché, sinon ils peuvent être arrêtés prématurément.
  3. Les faux signaux peuvent apparaître fréquemment dans les marchés à basse volatilité.
  4. Le suivi des arrêts de perte peut entraîner une sortie prématurée d’une tendance de qualité lors d’une forte volatilité du marché.

Orientation de l’optimisation de la stratégie

  1. L’introduction d’indicateurs de volatilité pour ajuster dynamiquement les objectifs de stop loss et de profit, afin de les rendre plus conformes aux conditions du marché.
  2. Ajoutez des indicateurs de volume comme confirmation auxiliaire pour améliorer la fiabilité du signal.
  3. Adhésion à un mécanisme d’identification des environnements de marché, utilisant différentes combinaisons de paramètres dans différents états de marché.
  4. Développer des mécanismes d’accroissement de la réserve en cas de reprise, en construisant modérément des réserves pour augmenter les bénéfices.
  5. Optimiser les algorithmes de suivi des pertes afin de mieux s’adapter aux fluctuations du marché.

Résumer

La stratégie a été construite en intégrant plusieurs systèmes d’indicateurs techniques pour construire un système de négociation robuste. Son avantage central réside dans le mécanisme de confirmation multiple et le système de contrôle des risques. Bien qu’il existe un certain risque de retard, la stratégie a encore beaucoup de place pour l’amélioration grâce à l’optimisation des paramètres et à l’extension des fonctions.

Code source de la stratégie
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ITG Scalper Strategy", shorttitle="lokesh_ITG_Scalper_Strategy", overlay=true)

// General inputs
len = input(14, title="TEMA period")
FfastLength = input.int(13, title="Filter fast length")
FslowLength = input.int(18, title="Filter slow length")
FsignalLength = input.int(14, title="Filter signal length")
sl_points = 7 // 5 points stop loss
tp_points = 100 // 100 points target profit
trail_points = 15 // Trailing stop loss every 10 points

// Validate input
if FfastLength < 1
    FfastLength := 1
if FslowLength < 1
    FslowLength := 1
if FsignalLength < 1
    FsignalLength := 1

// Get real close price
realC = close

// Triple EMA definition
ema1 = ta.ema(realC, len)
ema2 = ta.ema(ema1, len)
ema3 = ta.ema(ema2, len)

// Triple EMA trend calculation
avg = 3 * (ema1 - ema2) + ema3

// Filter formula
Fsource = close
FfastMA = ta.ema(Fsource, FfastLength)
FslowMA = ta.ema(Fsource, FslowLength)
Fmacd = FfastMA - FslowMA
Fsignal = ta.sma(Fmacd, FsignalLength)

// Plot EMAs for visual reference
shortema = ta.ema(close, 9)
longema = ta.ema(close, 15)
yma = ta.ema(close, 5)
plot(shortema, color=color.green)
plot(longema, color=color.red)
plot(yma, color=#e9f72c)

// Entry conditions
firstCrossover = ta.crossover(Fmacd, Fsignal) and avg > avg[1]
secondCrossover = ta.crossover(shortema, longema)  // Assuming you meant to cross shortema with longema
thirdCrossover = ta.crossover(close, yma)

var bool entryConditionMet = false

if (firstCrossover)
    entryConditionMet := true

longSignal = entryConditionMet and secondCrossover and thirdCrossover

// Strategy execution
if (longSignal)
    strategy.entry("Long", strategy.long)
    entryConditionMet := false  // Reset the entry condition after taking a trade

// Calculate stop loss and take profit prices
var float long_sl = na
var float long_tp = na

if strategy.position_size > 0  // Long position
    long_sl := close - sl_points
    long_tp := close + tp_points
    
    // Adjust stop loss with trailing logic
    if (close - long_sl > trail_points)
        long_sl := close - trail_points
        
    strategy.exit("Exit Long", "Long", stop=long_sl, limit=long_tp)

// Plotting Buy signals
plotshape(series=longSignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")

// Alerts
alertcondition(longSignal, title="Buy Signal", message="Buy Signal")