Cette stratégie utilise de manière exhaustive l'indicateur EMA, l'indicateur Bollinger Bands et l'indicateur MACD. Sur la base de la croix d'or et de la croix de la mort de l'EMA de 9 jours et de l'EMA de 30 jours, elle détermine le moment de l'achat et de la vente en combinaison avec la fourchette de distribution des prix et les indicateurs de dynamique.
Calculer l'EMA à 3 jours, à 9 jours et à 30 jours.
Calculer l'écart type dans les 20 jours suivant le prix et tracer les bandes de Bollinger avec 1 et 2 fois l'écart type.
Calculer la ligne de signal MACD de 12 jours, 26 jours et 9 jours.
Lorsque l'EMA à 9 jours dépasse l'EMA à 30 jours et que le prix dépasse la limite supérieure des bandes de Bollinger à 1x d'écart type, un signal d'achat est émis.
Lorsque l'EMA de 30 jours tombe en dessous de l'EMA de 9 jours et que le prix est inférieur à la limite inférieure des bandes de Bollinger à 1x d'écart type, un signal de vente est émis.
En combinant des indicateurs de moyenne mobile et des indicateurs de dynamique, cette stratégie permet de mieux saisir les tendances et le calendrier du marché, avec les avantages suivants:
L'indicateur EMA peut réagir rapidement aux variations de prix pour déterminer les tendances du marché; l'indicateur MACD évalue la dynamique pour prévenir de fausses ruptures.
La combinaison des indicateurs d'écart type des bandes de Bollinger et des EMA permet de déterminer plus précisément le moment des achats et des ventes.
La combinaison de multiples indicateurs peut se compléter, des indicateurs différents peuvent vérifier le jugement en une seule percée.
Cette stratégie comporte également certains risques.
La combinaison des moyennes mobiles EMA peut être ajustée et optimisée.
Les paramètres des bandes de Bollinger peuvent être optimisés en modifiant la multiplication des écarts types pour filtrer les faux signaux.
Les paramètres et la combinaison de l'indicateur MACD peuvent être optimisés pour améliorer l'effet de l'évaluation de la dynamique.
Cette stratégie intègre l'indicateur EMA pour déterminer la tendance majeure, complété par l'indicateur Bollinger Bands qui peut saisir avec précision les points d'achat et de vente lorsque la dynamique est relativement importante; l'indicateur MACD complète la confirmation de la tendance et peut filtrer efficacement les faux signaux.
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("emabb_collab", shorttitle="emabb", overlay=true) // Input parameters ema3 = input(3, title="3 EMA") ema9 = input(9, title="9 EMA") ema30 = input(30, title="30 EMA") macdShort = input(12, title="MACD Short") macdLong = input(26, title="MACD Long") macdSignal = input(9, title="MACD Signal") length = input.int(20, minval=1) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") basis = ta.sma(src, length) dev1 = mult * ta.stdev(src, length) upper1 = basis + dev1 lower1 = basis - dev1 dev2 = mult * 2 * ta.stdev(src, length) upper2 = basis + dev2 lower2 = basis - dev2 plot(basis, "Basis", color=#FF6D00) p1 = plot(upper1, "Upper1", color=#2962FF) p2 = plot(lower1, "Lower1", color=#2962FF) fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95)) plot(basis, "Basis", color=#FF6D00) p3 = plot(upper2, "Upper2", color=#00FF8C) p4 = plot(lower2, "Lower2", color=#00FF8C) fill(p3, p4, title = "Background", color=color.rgb(0, 153, 140, 95)) // Calculate EMAs ema3Value = ta.ema(close, ema3) ema9Value = ta.ema(close, ema9) ema30Value = ta.ema(close, ema30) // Calculate MACD [macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal) // Conditions for buy signal buyCondition = ta.crossover(ema9Value, ema30Value) and ta.stdev(close, 20) > ta.stdev(close, 20)[1] //Conditions for sell signal sellCondition = ta.crossover(ema30Value, ema9Value) and ta.stdev(close, 20) < ta.stdev(close, 20)[1] // Plot signals on the chart plotshape(buyCondition, title='Buy Label', style=shape.triangleup, location=location.belowbar, size=size.normal, text='Buy', textcolor=color.new(color.white, 0), color=color.new(color.green, 0)) plotshape(sellCondition, title='sell Label', style=shape.triangledown, location=location.abovebar, size=size.normal, text='sell', textcolor=color.new(color.white, 0), color=color.new(color.red, 0)) // Plot EMAs plot(ema3Value, title="3 EMA", color=color.orange) plot(ema9Value, title="9 EMA", color=color.purple) plot(ema30Value, title="30 EMA", color=color.red) if buyCondition strategy.entry('Long', strategy.long) if sellCondition strategy.entry('Short', strategy.short)