Strategi ini adalah sistem perdagangan komposit yang menggabungkan crossover Exponential Moving Average (EMA) dan Ichimoku Cloud. EMA crossover terutama digunakan untuk menangkap sinyal inisiasi tren dan mengkonfirmasi peluang pembelian, sementara Ichimoku Cloud digunakan untuk mengidentifikasi pembalikan pasar dan menentukan titik jual. Melalui koordinasi indikator teknis multidimensi, strategi dapat secara efektif menangkap tren sambil menghindari risiko tepat waktu.
Strategi ini beroperasi melalui dua komponen inti:
Strategi ini membangun sistem perdagangan yang mampu mengikuti tren dan menangkap pembalikan melalui kombinasi organik EMA crossover dan Ichimoku Cloud. Desain strategi rasional dengan kontrol risiko yang tepat, menunjukkan nilai aplikasi praktis yang baik. Melalui arah optimasi yang disarankan, ada ruang untuk perbaikan lebih lanjut. Untuk perdagangan langsung, disarankan untuk terlebih dahulu menentukan kombinasi parameter yang sesuai melalui backtesting dan melakukan penyesuaian dinamis berdasarkan kondisi pasar yang sebenarnya.
/*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)