La stratégie du double EMA Crossover Breakout génère des signaux d'achat et de vente basés sur le croisement des lignes EMA rapides et lentes, combinés à des signaux de rupture du volume de négociation, à des modèles de bougies et à des filtres de rupture des prix pour améliorer la fiabilité.
La logique de base de la stratégie du double EMA Crossover Breakout réside dans la théorie du croisement doré de deux EMA. La théorie croit que lorsque l'EMA à court terme franchit le niveau supérieur de l'EMA à long terme, cela indique une tendance haussière, donc des positions longues devraient être établies. Lorsque l'EMA à court terme franchit le niveau inférieur de l'EMA à long terme, cela indique une tendance à la baisse, donc des positions courtes devraient être établies.
En particulier, la stratégie calcule d'abord les EMA à 9 périodes et à 21 périodes. Lorsque la 9-EMA franchit le 21-EMA, un signal
Condition de volume - Le volume de la bougie récente devrait dépasser 85% du volume moyen des 5 bougies précédentes.
Condition de rupture du prix - Le prix doit franchir le seuil supérieur à 9-EMA pour confirmer son entrée.
Condition de modèle de chandelier - Identifier les modèles de renversement haussiers ou baissiers, en évitant les coups de fouet lors des marchés latéraux.
Pour les positions longues, les sorties sont déclenchées lorsque le prix dépasse 9-EMA.
En combinant des signaux provenant de plusieurs indicateurs techniques, la stratégie du double EMA Crossover Breakout permet d'identifier efficacement les tendances et d'améliorer le taux de gain.
L'utilisation de deux EMA pour déterminer la direction de la tendance principale est très fiable.
L'ajout d'un filtre de volume évite les mauvais signaux lorsque le volume est insuffisant.
L'ajout d'un filtre à motifs de chandeliers élimine le bruit des marchés à plage.
L'entrée après la rupture des prix confirme la tendance.
Le mécanisme de stop loss contrôle activement les risques.
Il y a encore des risques avec la stratégie:
L'EMA peut générer de faux signaux pendant les marchés instables, provoquant des pertes.
Les périodes d'EMA fixes peuvent ne pas s'adapter à l'évolution des marchés.
Il y a encore des risques d'identification erronée des modèles de bougies.
La stratégie peut manquer certains mouvements de prix et avoir un suivi de tendance imparfait.
Les principales orientations d'optimisation sont les suivantes:
Testez plus de combinaisons EMA pour trouver les paramètres optimaux.
Ajouter des EMA adaptatives basées sur l'évolution des conditions du marché.
Optimiser le dimensionnement des positions pour les différentes conditions du marché.
Incorporer plus d'indicateurs comme MACD, KDJ pour former des stratégies d'ensemble.
Introduire des modèles d'apprentissage automatique pour améliorer la robustesse.
La stratégie de rupture croisée double EMA identifie efficacement les tendances en utilisant une analyse directionnelle double EMA et ajoute plusieurs filtres volume / prix / modèle pour améliorer l'efficacité tout en contrôlant les risques.
/*backtest start: 2023-11-20 00:00:00 end: 2023-11-27 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //Author: Andrew Shubitowski strategy("Buy/Sell Strat", overlay = true) //Define EMAs & Crossovers (Feature 2) a = ta.ema(close, 9) b = ta.ema(close, 21) crossUp = ta.crossover(a, b) crossDown = ta.crossunder(a, b) //Define & calc volume averages (Feature 1) float volAvg = 0 for i = 1 to 5 volAvg := volAvg + volume[i] volAvg := volAvg / 5 //Define candlestick pattern recongition (Feature 4) bool reversalPatternUp = false bool reversalPatternDown = false if (close > close[1] and close[1] > close [2] and close[3] > close[2] and close > close[3]) reversalPatternUp := true if (close < close[1] and close[1] < close [2] and close[3] < close[2] and close < close[3]) reversalPatternDown := true //Execute trade (Feature 3 + 5) if (crossUp) strategy.entry("long", strategy.long, when = ((volume * 0.85) > volAvg and close > a and reversalPatternUp == true)) if (crossDown) strategy.entry("short", strategy.short, when = ((volume * 0.85) > volAvg and close < a and reversalPatternDown == true)) //Exit strategy (New Feature) close_condition_long = close < a close_condition_short = close > a if (close_condition_long) strategy.close("long") if (close_condition_short) strategy.close("short") //plot the EMAs plot(a, title = "Fast EMA", color = color.green) plot(b, title = "Slow EMA", color = color.blue) //Some visual validation parameters //plotchar(volAvg, "Volume", "", location.top, color.aqua) //*TEST* volume calc check //plotshape(reversalPatternUp, style = shape.arrowup, color = color.aqua) //*TEST* reversal check //plotshape(reversalPatternDown, style = shape.arrowup, location = location.belowbar, color = color.red) //*TEST* reversal check