Stratégie de négociation croisée à double EMA

Auteur:ChaoZhang est là., Date: 2023-10-16 à 16h24
Les étiquettes:

img

Résumé

La stratégie de rupture double EMA est une stratégie de suivi de tendance qui utilise deux moyennes EMA de deux cycles différents pour juger des signaux de vente. Cette stratégie est également combinée à des indicateurs EMA supplémentaires pour filtrer les signaux de négociation afin d'obtenir de meilleurs moments d'entrée dans un marché tendance.

Le principe

La stratégie utilise l'EMA à 9 cycles et l'EMA à 21 cycles pour déterminer le moment où acheter et vendre. Elle génère un signal d'achat lorsque la ligne lente passe sur la ligne rapide et un signal de vente lorsque la ligne lente passe sous la ligne rapide. Pour filtrer les signaux de faux-fuyant, la stratégie introduit également une EMA auxiliaire à 5 cycles et deux EMA supplémentaires à 1, 4 cycles.

Lorsque le signal de négociation est déclenché, la stratégie met en place des niveaux de stop-loss et de stop-loss en fonction de la valeur de l'ATR. TP1 est 6 fois plus élevé que l'ATR et est utilisé pour obtenir une partie des bénéfices d'une vitesse plus rapide. Si le prix ne déclenche pas le TP1, le TP2 est déclenché lorsque l'EMA rapide franchit à nouveau l'EMA auxiliaire.

Les avantages

  • Utilisation d'une combinaison de doubles EMA pour filtrer les faux signaux afin d'améliorer la qualité des signaux de trading
  • Les indicateurs EMA auxiliaires permettent de vérifier davantage la direction de la tendance et de réduire les risques d'opération inverse
  • La conception à deux arrêts permet de réaliser des bénéfices rapides et durables en suivant les tendances.
  • Le frein à stop-loss dynamique ATR peut être ajusté en fonction de la volatilité du marché pour réduire les risques

Risque et optimisation

  • Les indicateurs EMA sont plus susceptibles d'entraîner une correction de la courbe et les signaux de négociation peuvent être retardés.
  • Une combinaison d'EMA à court cycle pourrait générer plus de signaux de trading de bruit
  • Les opérations à courte portée sont plus vulnérables aux événements d'urgence et plus à risque de rupture.

L'optimisation:

  • Testez plusieurs combinaisons de paramètres EMA pour trouver les paramètres optimaux
  • Ajouter des vérifications pour d'autres indicateurs, tels que le volume des transactions, la volatilité, etc.
  • Réduire la probabilité de déclenchement des pertes par une réduction appropriée de la portée des pertes
  • Optimiser le ratio de mise en place des deux-stop pour équilibrer la vitesse de profit et l'efficacité de l'utilisation des fonds

Résumé

La stratégie de rupture de la double EMA utilise deux EMAs croisés pour faire des jugements de tendance, accompagnés de plusieurs filtres EMA et d'ATR pour suivre efficacement les gains de la tendance. Cependant, des problèmes tels que l'ajustement de la courbe EMA, le risque de rupture nécessitent une attention particulière. Des mesures telles que l'optimisation des paramètres et la gestion des risques permettent d'obtenir des performances de trading plus stables.

Résumé

La double stratégie de négociation EMA utilise deux lignes EMA de périodes différentes pour générer des signaux d'achat et de vente en identifiant la direction de la tendance.

Principaux

La stratégie utilise une ligne EMA rapide (9 périodes) et une ligne EMA lente (21 périodes) pour déterminer les entrées. Une croix d'or où l'EMA rapide traverse au-dessus de l'EMA lente génère un signal d'achat, tandis qu'une croix de mort avec l'EMA rapide traversant au-dessous de l'EMA lente produit un signal de vente. Pour filtrer les faux signaux, la stratégie utilise également une EMA auxiliaire (5 périodes) et deux EMA supplémentaires (1 période, 4 périodes).

Une fois qu'un signal de trading est déclenché, la stratégie utilise les valeurs ATR pour définir les niveaux d'arrêt des pertes et de prise de profit.

Les avantages

  • La double EMA filtre les faux signaux et améliore la qualité du signal
  • L'EMA auxiliaire ajoute la vérification de la direction de la tendance, réduisant les risques commerciaux inversés
  • La double prise de profit permet un profit rapide et une tendance soutenue
  • L'exposition au risque est calculée sur la base de l'exposition au risque.

Risques et améliorations

  • Les EMA peuvent retarder les prix et générer des signaux tardifs
  • Les combinaisons plus courtes de la MMA peuvent produire plus de bruit
  • Les arrêts plus serrés présentent des risques d'événements soudains plus élevés

Directions d'amélioration:

  • Tester plusieurs combinaisons EMA pour obtenir de meilleurs paramètres
  • Ajouter d'autres indicateurs de confirmation tels que le volume, la volatilité, etc.
  • Élargir le stop loss pour réduire les cotes de stop out
  • Optimiser les ratios de prise de profit pour l'efficacité des bénéfices par rapport au capital

Conclusion

La double stratégie de croisement EMA exploite les croisements EMA pour la direction de la tendance, ainsi que le filtrage multiple EMA et le stop loss / profit dynamique ATR. Cela permet de suivre efficacement la tendance et de récolter des bénéfices. Cependant, les limitations d'ajustement EMA et les risques de stop loss nécessitent des précautions. Une optimisation appropriée, une gestion des risques, etc. peuvent conduire à une performance plus robuste.

Je ne sais pas.


/*backtest
start: 2022-10-09 00:00:00
end: 2023-04-13 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/
// @author ADHDCRYPT0

//@version=4
strategy(title = "EMA double crossover", shorttitle = "(TEST) double cross over", overlay = true, default_qty_value = 100, initial_capital = 1000,default_qty_type=strategy.percent_of_equity, pyramiding=0, process_orders_on_close=true)


// Variables
ema_len1 = input(9 , title="Fast EMA")
ema_len2 = input(21, title="Slow EMA")
ema_len3 = input(5, title="Exit EMA")
ema_len4 = input(1, title="FastConf EMA")
ema_len5 = input(4, title="SlowConf EMA")

fastEMA = ema(open, ema_len1)
slowEMA = ema(open, ema_len2)
exitEMA = ema(open, ema_len3)
conf1EMA = ema(open, ema_len4)
conf2EMA = ema(open, ema_len5)
plot(fastEMA, title='fastEMA', transp=0, color=color.green)
plot(slowEMA, title='slowEMA', transp=0, color=color.red  )
plot(exitEMA, title='exitEMA', transp=0, color=color.orange)
plot(conf1EMA, title='conf1EMA', transp=0, color=color.blue)
plot(conf2EMA, title='conf2EMA', transp=0, color=color.black)

vol = volume 
volma = sma(volume,7)
vol_cond = vol>volma

atr = atr(5)


// Entry Conditions and vol_cond
long = crossover(fastEMA, slowEMA) and (conf1EMA > conf2EMA) and (fastEMA < exitEMA)
short= crossunder(fastEMA, slowEMA) and (conf1EMA < conf2EMA) and (fastEMA > exitEMA)

tradeType = input("BOTH", title="What trades should be taken : ", options=["LONG", "SHORT", "BOTH", "NONE"])

pos = 0.0

if tradeType=="BOTH"
    pos:= long? 1 : short? -1 : pos[1]
if tradeType=="LONG"
    pos:= long? 1 : pos[1]
if tradeType=="SHORT"
    pos:=short? -1 : pos[1]

longCond  = long  and (pos[1]!= 1 or na(pos[1]))
shortCond = short and (pos[1]!=-1 or na(pos[1]))

// EXIT FUNCTIONS //
sl  = input(1, title="Stop Loss (ATR)", minval=0)
tp  = input(6, title="Take Profit 1 (ATR)", minval=0)

// Simple Stop Loss + 2 Take Profits
sl_long   =  valuewhen(longCond , low - atr * sl, 0)
sl_short  =  valuewhen(shortCond, high+ atr * sl, 0)

tp_long  = valuewhen(longCond , high + atr * tp, 0)
tp_short = valuewhen(shortCond, low  - atr * tp, 0)


long_exit = crossover(fastEMA, exitEMA) and pos[1]==1
short_exit= crossover(exitEMA, fastEMA) and pos[1]==-1

if long_exit or short_exit
	pos:=0


// Position Adjustment
long_sl  = low <sl_long [1] and pos[1]==1
short_sl = high>sl_short[1] and pos[1]==-1

if long_sl or short_sl
    pos:=0
    
//  Strategy Backtest Limiting Algorithm
i_startTime = input(defval = timestamp("01 Sep 2002 13:30 +0000"), title = "Backtesting Start Time", type = input.time)
i_endTime = input(defval = timestamp("30 Sep 2099 19:30 +0000"), title = "Backtesting End Time", type = input.time)
timeCond = true


// Make sure we are within the bar range, Set up entries and exit conditions
if strategy.equity >0
    strategy.entry("long" , strategy.long , when=longCond  and timeCond and tradeType!="SHORT" , alert_message="INSERT MESSAGE HERE")
    strategy.entry("short", strategy.short, when=shortCond and timeCond and tradeType!="LONG" , alert_message="INSERT MESSAGE HERE")
    
    strategy.exit("SL/TP1", from_entry = "long" , stop=sl_long , limit=tp_long , alert_message="INSERT MESSAGE HERE")
    strategy.exit("SL/TP1", from_entry = "short", stop=sl_short, limit=tp_short, alert_message="INSERT MESSAGE HERE")

    strategy.exit("SL", from_entry = "long" , stop=sl_long, alert_message="INSERT MESSAGE HERE")
    strategy.exit("SL", from_entry = "short", stop=sl_short, alert_message="INSERT MESSAGE HERE")
    
    strategy.close("long", when=long_exit , comment="TP2", alert_message="INSERT MESSAGE HERE")
    strategy.close("short", when=short_exit, comment="TP2", alert_message="INSERT MESSAGE HERE")


Plus de