Strategi ini adalah sistem perdagangan komprehensif yang menggabungkan rata-rata bergerak, indeks kekuatan relatif, dan indikator kekuatan tren. Melalui koordinasi beberapa indikator teknis, ia mencapai penangkapan yang tepat dari tren pasar dan pengendalian risiko yang efektif. Sistem ini mengadopsi mekanisme stop-loss dan take-profit yang dinamis, memastikan rasio risiko-manfaat yang menguntungkan sambil beradaptasi dengan kondisi pasar yang berbeda melalui penyesuaian parameter yang fleksibel.
Strategi ini terutama didasarkan pada tiga indikator inti: rata-rata bergerak eksponensial cepat dan lambat (EMA), indeks kekuatan relatif (RSI), dan indeks arah rata-rata (ADX). Ketika EMA cepat melintasi di atas EMA lambat, sistem memeriksa apakah RSI berada di wilayah yang tidak terlalu banyak dibeli (di bawah 60) sambil mengkonfirmasi kekuatan tren yang cukup dengan ADX (di atas 15).
Strategi ini menetapkan sistem perdagangan yang relatif lengkap melalui penggunaan komprehensif dari beberapa indikator teknis. Keuntungannya utama terletak pada peningkatan keandalan sinyal perdagangan melalui koordinasi indikator sambil memastikan keamanan perdagangan melalui mekanisme kontrol risiko dinamis. Meskipun beberapa keterbatasan inheren ada, strategi ini memiliki ruang yang signifikan untuk perbaikan melalui arah optimasi yang disarankan. Secara keseluruhan, ini adalah kerangka strategi perdagangan praktis yang cocok untuk optimasi lebih lanjut dan aplikasi dunia nyata.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-23 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Enhanced EMA + RSI + ADX Strategy (Focused on 70% Win Rate)", overlay=true) // Input parameters lenFast = input.int(9, title="Fast EMA Length", minval=1) lenSlow = input.int(21, title="Slow EMA Length", minval=1) rsiPeriod = input.int(14, title="RSI Period") adxPeriod = input.int(14, title="ADX Period") adxSmoothing = input.int(1, title="ADX Smoothing") adxThreshold = input.int(15, title="ADX Threshold") riskRewardRatio = input.float(1.5, title="Risk/Reward Ratio") rsiOverbought = input.int(60, title="RSI Overbought Level") // Adjusted for flexibility rsiOversold = input.int(40, title="RSI Oversold Level") // EMA Calculations fastEMA = ta.ema(close, lenFast) slowEMA = ta.ema(close, lenSlow) // RSI Calculation rsiValue = ta.rsi(close, rsiPeriod) // ADX Calculation [plusDI, minusDI, adxValue] = ta.dmi(adxPeriod, adxSmoothing) // Entry Conditions with Confirmation buyCondition = ta.crossover(fastEMA, slowEMA) and rsiValue < rsiOverbought and adxValue > adxThreshold sellCondition = ta.crossunder(fastEMA, slowEMA) and rsiValue > rsiOversold and adxValue > adxThreshold // Dynamic Exit Conditions takeProfit = strategy.position_avg_price + (close - strategy.position_avg_price) * riskRewardRatio stopLoss = strategy.position_avg_price - (close - strategy.position_avg_price) // Entry logic if (buyCondition) strategy.entry("Buy", strategy.long) strategy.exit("Sell", from_entry="Buy", limit=takeProfit, stop=stopLoss) if (sellCondition) strategy.close("Buy") // Plotting EMAs plot(fastEMA, color=color.new(color.green, 0), title="Fast EMA", linewidth=1) plot(slowEMA, color=color.new(color.red, 0), title="Slow EMA", linewidth=1) // Entry and exit markers plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.normal, title="Buy Signal") plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.normal, title="Sell Signal") // Alerts alertcondition(buyCondition, title="Buy Alert", message="Buy signal triggered") alertcondition(sellCondition, title="Sell Alert", message="Sell signal triggered")