Il s'agit d'une stratégie de suivi de tendance basée sur les croisements de la moyenne mobile exponentielle (EMA) et la confirmation de l'indice de force relative (RSI). La stratégie combine les signaux des croisements de la EMA à court et à long terme avec la confirmation de l'élan du RSI, tout en incorporant un mécanisme de stop-loss basé sur le pourcentage. Elle vise à capturer des renversements significatifs de la tendance du marché tout en maintenant le contrôle des risques grâce à l'effet synergique des indicateurs techniques.
La stratégie utilise un double mécanisme de filtrage d'indicateurs techniques: d'abord, elle identifie les points de renversement de tendance potentiels grâce au croisement de l'EMA à court terme (9 périodes) et de l'EMA à long terme (21 périodes). Les signaux d'achat sont générés lorsque l'EMA à court terme dépasse l'EMA à long terme et que la valeur du RSI est supérieure au niveau spécifié. Les signaux de vente se produisent lorsque l'EMA à court terme dépasse l'EMA à long terme et que la valeur du RSI est inférieure au niveau spécifié. En outre, la stratégie intègre un mécanisme de stop-loss basé sur le pourcentage, établissant des niveaux de stop-loss dynamiques pour chaque transaction afin de contrôler efficacement le risque à la baisse.
Cette stratégie construit un système de trading complet suivant les tendances grâce à la combinaison de moyennes mobiles et d'indicateurs de dynamique. Ses principaux avantages résident dans son mécanisme de confirmation de signal fiable et son système de contrôle des risques complet. Bien qu'il existe certaines limitations inhérentes, les performances globales de la stratégie peuvent être encore améliorées grâce aux directions d'optimisation proposées. Il s'agit d'un cadre de stratégie robuste adapté aux traders de tendance à moyen et long terme.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Simple Trend Following Strategy", overlay=true) // Inputs shortEMA = input.int(9, title="Short EMA Length", minval=1) longEMA = input.int(21, title="Long EMA Length", minval=1) confirmationRSI = input.int(50, title="RSI Confirmation Level", minval=1, maxval=100) stopLossPercent = input.float(2, title="Stop Loss Percentage", minval=0.1) // Stop Loss percentage // Calculations emaShort = ta.ema(close, shortEMA) emaLong = ta.ema(close, longEMA) rsiValue = ta.rsi(close, 14) // Buy and Sell Conditions buySignal = ta.crossover(emaShort, emaLong) and rsiValue > confirmationRSI sellSignal = ta.crossunder(emaShort, emaLong) and rsiValue < confirmationRSI // Plotting Signals plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Plotting EMAs plot(emaShort, title="Short EMA", color=color.yellow) plot(emaLong, title="Long EMA", color=color.purple) // Strategy logic strategy.entry("Buy", strategy.long, when=buySignal) strategy.entry("Sell", strategy.short, when=sellSignal) // Calculate stop loss price based on stopLossPercent longStopLossPrice = strategy.position_avg_price * (1 - stopLossPercent / 100) shortStopLossPrice = strategy.position_avg_price * (1 + stopLossPercent / 100) // Draw stop loss line for long positions if (strategy.position_size > 0) // For long positions line.new(x1=bar_index, y1=longStopLossPrice, x2=bar_index + 1, y2=longStopLossPrice, color=color.red, width=2, style=line.style_dashed) // Draw stop loss line for short positions if (strategy.position_size < 0) // For short positions line.new(x1=bar_index, y1=shortStopLossPrice, x2=bar_index + 1, y2=shortStopLossPrice, color=color.green, width=2, style=line.style_dashed)