Stratégie de l'EMA avec ATR Stop Loss

Auteur:ChaoZhang est là., Date: 2023-12-11 à 16h09
Les étiquettes:

img

Résumé

Cette stratégie utilise la croix d'or de l'EMA pour générer des signaux de trading, c'est-à-dire qu'un signal d'achat est généré lorsque la ligne EMA rapide traverse au-dessus de la ligne EMA lente, et un signal de vente est généré lorsque la ligne EMA rapide traverse en dessous de la ligne EMA lente.

Principe de stratégie

  1. Définir la période EMA rapide comme 13 et la période EMA lente comme 48.
  2. Lorsque la ligne EMA rapide traverse au-dessus de la ligne EMA lente, un signal d'achat est généré; lorsque la ligne EMA rapide traverse au-dessous de la ligne EMA lente, un signal de vente est généré.
  3. Utilisez les fonctions ta.crossover et ta.crossunder pour déterminer la croix dorée et la croix morte des moyennes mobiles.
  4. Utilisez l'indicateur ATR pour calculer le stop loss dynamique, qui est 1,5 fois l'ATR à distance de la fermeture.
  5. Afficher intuitivement les signaux de trading et les niveaux de stop loss à travers des changements de couleur, des marques d'achat/vente et des lignes de stop loss.

Analyse des avantages

  1. Les signaux sont générés sur la base de la croix dorée et de la croix de la mort de l'EMA, ce qui évite de manquer les principales tendances du marché et les rendements sont considérables.
  2. L'ATR trailing stop loss garantit des bénéfices adéquats en fonction de la tendance tout en contrôlant les retraits, ce qui permet d'obtenir un rapport risque/rendement équilibré.
  3. Affichage du signal intuitif et affichage de la perte d'arrêt, facile à utiliser, adapté à la plupart des gens.
  4. Peu de paramètres réglables, faciles à saisir et à optimiser.

Analyse des risques

  1. Les accidents éclair peuvent déclencher l'arrêt de perte.
  2. Des signaux invalides fréquents peuvent se produire sur les marchés à fourchette.
  3. Les paramètres incorrects peuvent entraîner une entrée excessivement agressive ou un stop loss trop faible.
  4. Les paramètres EMA et ATR doivent être correctement optimisés.

Les solutions:

  1. Détacher le multiplicateur ATR de manière appropriée pour laisser un peu de tampon sur les hauts récents.
  2. Considérez des mécanismes de confirmation après l'apparition du signal, tels que la rupture du prix au sommet précédent, etc.
  3. L'optimisation des paramètres devrait tenir compte des différentes conditions du marché.

Directions d'optimisation

  1. Testez différentes combinaisons de paramètres pour trouver les paramètres optimaux.
  2. Il convient d'envisager d'ajouter d'autres indicateurs de filtrage du signal, tels que des indicateurs de volume, de volatilité, etc., pour améliorer la qualité du signal.
  3. Ajuster les paramètres de l'EMA en fonction des principales tendances afin de mieux détecter les principales tendances.
  4. Considérez la possibilité d'ajuster dynamiquement le multiplicateur d'arrêt de perte ATR pour élargir la plage d'arrêt pendant les marchés tendance.
  5. Incorporer des algorithmes d'apprentissage automatique pour une optimisation adaptative des paramètres.

Conclusion

La stratégie est relativement simple et facile à utiliser. Elle génère des signaux basés sur des croisements EMA, suit la tendance et utilise l'ATR trailing stop loss pour contrôler efficacement les risques. Bien qu'il puisse y avoir quelques faux signaux, elle a de fortes capacités pour capturer les principales tendances et les rendements sont relativement stables. Elle convient comme stratégie de trading quantitative de base.


/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © byee322

/// This strategy uses the EMA to generate buy and sell signals with a 1.5x ATR stop loss
//@version=5
strategy("EMA Strategy with ATR Stop Loss", overlay=true)

// Define the EMA lengths as input parameters
emaLength1 = input(13, "EMA Length 1")
emaLength2 = input(48, "EMA Length 2")

// Define the moving averages
ema1 = ta.ema(close, emaLength1)
ema2 = ta.ema(close, emaLength2)

// Buy signal: EMA 1 crosses above EMA 2
buy = ta.crossover(ema1, ema2)

// Sell signal: EMA 1 crosses below EMA 2
sell = ta.crossunder(ema1, ema2)

// Define the state variable
state = 0
state := buy ? 1 : sell ? -1 : nz(state[1])

// Change the color of the candles
color = state == 1 ? color.green : state == -1 ? color.red : na

// Plot the colored candles
plotcandle(open, high, low, close, color=color)

// Plot the signals on the chart with text labels
plotshape(buy, style=shape.triangleup, color=color.new(color.green, 50), location=location.belowbar, text="Buy")
plotshape(sell, style=shape.triangledown, color=color.new(color.red, 50), location=location.abovebar, text="Sell")

// Calculate the ATR
atrVal = ta.atr(14)

// Calculate the stop loss level for buy
stopLossBuy = buy ? close[1] - 1.5 * atrVal : na

// Calculate the stop loss level for sell
stopLossSell = sell ? close[1] + 1.5 * atrVal : na

// Plot the stop loss level for buy
plot(stopLossBuy,  color=color.new(color.green, 50), linewidth=3)

// Plot the stop loss level for sell
plot(stopLossSell, color=color.new(color.red, 50), linewidth=3)

if buy
    strategy.entry("Enter Long", strategy.long)
else if sell
    strategy.entry("Enter Short", strategy.short)

Plus de