Cette stratégie est un système de trading composite combinant le croisement de la moyenne mobile exponentielle (EMA) et le nuage Ichimoku. Le croisement EMA est principalement utilisé pour capturer les signaux d'initiation de tendance et confirmer les opportunités d'achat, tandis que le nuage Ichimoku est utilisé pour identifier les renversements du marché et déterminer les points de vente.
La stratégie fonctionne à travers deux composantes essentielles:
Cette stratégie construit un système de trading capable à la fois de suivre la tendance et de capturer l'inversion grâce à la combinaison organique de crossover EMA et Ichimoku Cloud. La conception de la stratégie est rationnelle avec un bon contrôle des risques, montrant une bonne valeur d'application pratique.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Buy + Ichimoku Cloud Sell Strategy", overlay=true) // Input Parameters for the EMAs shortEmaPeriod = input.int(9, title="Short EMA Period", minval=1) longEmaPeriod = input.int(21, title="Long EMA Period", minval=1) // Input Parameters for the Ichimoku Cloud tenkanPeriod = input.int(9, title="Tenkan-Sen Period", minval=1) kijunPeriod = input.int(26, title="Kijun-Sen Period", minval=1) senkouSpanBPeriod = input.int(52, title="Senkou Span B Period", minval=1) displacement = input.int(26, title="Displacement", minval=1) // Calculate the EMAs shortEma = ta.ema(close, shortEmaPeriod) longEma = ta.ema(close, longEmaPeriod) // Ichimoku Cloud Calculations tenkanSen = ta.sma(close, tenkanPeriod) kijunSen = ta.sma(close, kijunPeriod) senkouSpanA = ta.sma(tenkanSen + kijunSen, 2) senkouSpanB = ta.sma(close, senkouSpanBPeriod) chikouSpan = close[displacement] // Plot the EMAs on the chart plot(shortEma, color=color.green, title="Short EMA") plot(longEma, color=color.red, title="Long EMA") // Plot the Ichimoku Cloud plot(tenkanSen, color=color.blue, title="Tenkan-Sen") plot(kijunSen, color=color.red, title="Kijun-Sen") plot(senkouSpanA, color=color.green, title="Senkou Span A", offset=displacement) plot(senkouSpanB, color=color.purple, title="Senkou Span B", offset=displacement) plot(chikouSpan, color=color.orange, title="Chikou Span", offset=-displacement) // Buy Condition: Short EMA crosses above Long EMA buyCondition = ta.crossover(shortEma, longEma) // Sell Condition: Tenkan-Sen crosses below Kijun-Sen, and price is below the cloud sellCondition = ta.crossunder(tenkanSen, kijunSen) and close < senkouSpanA and close < senkouSpanB // Plot Buy and Sell signals plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Execute Buy and Sell Orders if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.entry("Sell", strategy.short) // Optional: Add Stop Loss and Take Profit (risk management) stopLossPercentage = input.float(1.5, title="Stop Loss Percentage", minval=0.1) / 100 takeProfitPercentage = input.float(3.0, title="Take Profit Percentage", minval=0.1) / 100 longStopLoss = close * (1 - stopLossPercentage) longTakeProfit = close * (1 + takeProfitPercentage) shortStopLoss = close * (1 + stopLossPercentage) shortTakeProfit = close * (1 - takeProfitPercentage) strategy.exit("Take Profit/Stop Loss", "Buy", stop=longStopLoss, limit=longTakeProfit) strategy.exit("Take Profit/Stop Loss", "Sell", stop=shortStopLoss, limit=shortTakeProfit)