Cette stratégie détermine les entrées et les sorties basées sur les situations de croisement de la ligne EMA rapide (3), de la ligne EMA lente (11) et de la ligne EMA plus lente (18), combinées aux croisements de la ligne zéro du MACD.
La stratégie repose principalement sur deux indicateurs d'analyse technique:
EMA Crossover: il utilise le croisement de l'EMA rapide (3), de l'EMA lente (11) et de l'EMA plus lente (18) pour déterminer la tendance et comme signaux d'entrée et de sortie.
L'indicateur MACD et son croisement de ligne zéro. Le MACD se compose de DIFF et de DEA. DIFF est construit par EMA rapide (3) moins EMA lente (11).
Selon la combinaison du croisement EMA et du croisement MACD de la ligne zéro, il existe 3 possibilités d'entrée et 2 possibilités de sortie:
En résumé, cette stratégie tire pleinement parti des avantages du double système de croisement EMA et de l'indicateur MACD. En ajustant dynamiquement les paramètres des moyennes mobiles et du MACD, elle peut améliorer la rentabilité de la stratégie.
Il utilise les atouts de l'indicateur EMA crossover et de l'indicateur MACD, améliorant la précision grâce à la confirmation à double indicateur.
Il y a 3 opportunités d'entrée à long terme et 2 opportunités de sortie, ce qui augmente la fréquence des transactions et le potentiel de profit.
La longueur de l'EMA rapide, l'EMA lente, l'EMA à ligne zéro et le MACD peuvent tous être optimisés.
La logique claire facilite le débogage et l'optimisation.
L'indicateur EMA crossover et l'indicateur MACD présentent tous deux des signaux erronés qui peuvent entraîner des pertes inutiles.
Une fréquence de négociation élevée avec une petite taille de stop loss dans chaque transaction, de sorte que les pertes pourraient s'accumuler.
Difficulté d'optimisation des paramètres. Une optimisation inappropriée peut entraîner un surajustement.
L'impact des coûts commerciaux doit être pleinement considéré.
Pour atténuer les risques:
Définir un stop-loss approprié pour limiter les pertes lors de transactions uniques.
Ajustez les paramètres de manière appropriée pour éviter un surajustement.
Considérez l'impact des coûts de négociation, comme la réduction de la fréquence des transactions.
Des alternatives de test telles que les bandes de Bollinger, KDJ, etc.
Optimiser les paramètres de croisement de l'EMA: modifier la longueur de l'EMA rapide et lente.
Optimiser les paramètres MACD: modifier les longueurs EMA de calcul du DIFF et du DEA.
Ajouter des stratégies de stop-loss: nombre d'arrêts de transactions, arrêt de temps, arrêt de trailing, etc.
Ajustez la fréquence d'entrée en tenant compte des coûts de négociation.
Cette stratégie combine le double système de croisement EMA et l'indicateur MACD pour construire une stratégie de paramètres dynamiques avec une fréquence de négociation élevée et une forte rentabilité. En outre, la logique claire le rend facile à comprendre et à optimiser.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-05 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MACD+EMA crossovers Strategy custom",initial_capital=10000,max_bars_back=150,commission_type=strategy.commission.percent , commission_value=0.1, shorttitle="MACD+EMAcross",pyramiding = 10,default_qty_type=strategy.percent_of_equity,default_qty_value=33,overlay=false) short = ema(close,3) long = ema(close, 11) long2 = ema(close, 18) //plot(short, color = red, linewidth = 4) //plot(long, color = blue, linewidth = 4) //plot(long2, color = green, linewidth = 4) isCross1 = crossover(short, long) isCross2 = crossover(short, long2) isCrossSell = crossunder(short, long) //isCross3 = crossover(long, long2) //plotshape(isCross1 and not isCross2, color=lime, style=shape.arrowup, text="1st in",size = size.tiny, location = location.belowbar) //plotshape(isCross2 , color=lime, style=shape.arrowup, text="2nd in",size = size.tiny, location = location.belowbar) //plotshape(isCross3 , color=lime, style=shape.arrowdown, text="All in",size = size.normal, location = location.abovebar) //plotshape(isCrossSell , color=red, style=shape.arrowdown, text="SELL",size = size.small, location = location.abovebar) fastLength = input(3) slowlength = input(11) MACDLength = input(27) MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) //signal delta = MACD - aMACD // histograma strategy.entry("MacdLE 1st in", strategy.long, comment="MacdLE 1st in",when=crossover(delta, 0)) strategy.entry("2nd in", strategy.long, comment="2nd in",when=isCross1) strategy.entry("all in", strategy.long, comment="all in",when=isCross2) strategy.close("2nd in",when=isCrossSell) strategy.close("all in",when=isCrossSell) //strategy.close("2nd in",when=crossunder(delta, 0)) //strategy.close("all in",when=crossunder(delta, 0)) strategy.close("MacdLE 1st in",when=crossunder(delta, 0)) histColour = (delta > 0) ? green : (delta < 0) ? red : #4169E1 plot(MACD,color=red,linewidth=2) plot(aMACD,color=blue,linewidth=2) plot(delta,style=histogram, color=histColour, linewidth=10) plot(0,color=white)