Strategi ini adalah sistem perdagangan komprehensif yang menggabungkan purata bergerak, indeks kekuatan relatif, dan penunjuk kekuatan trend. Melalui penyelarasan pelbagai penunjuk teknikal, ia mencapai tangkapan yang tepat terhadap trend pasaran dan kawalan risiko yang berkesan. Sistem ini mengamalkan mekanisme stop-loss dan take-profit yang dinamik, memastikan nisbah risiko-balasan yang baik sambil menyesuaikan diri dengan keadaan pasaran yang berbeza melalui penyesuaian parameter yang fleksibel.
Strategi ini terutamanya berdasarkan tiga penunjuk teras: purata bergerak eksponen pantas dan perlahan (EMA), indeks kekuatan relatif (RSI), dan indeks arah purata (ADX). Apabila EMA pantas melintasi di atas EMA perlahan, sistem memeriksa sama ada RSI berada di wilayah yang tidak terlalu banyak dibeli (di bawah 60) sambil mengesahkan kekuatan trend yang mencukupi dengan ADX (di atas 15). Keadaan ini mencetuskan isyarat masuk panjang apabila dipenuhi. Keadaan bertentangan mencetuskan isyarat keluar. Sistem ini juga melaksanakan titik mengambil keuntungan dan stop-loss dinamik berdasarkan nisbah risiko-balasan, mencapai kawalan yang tepat terhadap risiko perdagangan melalui parameterisasi.
Strategi ini mewujudkan sistem perdagangan yang agak lengkap melalui penggunaan komprehensif pelbagai penunjuk teknikal. Kelebihannya utama terletak pada peningkatan kebolehpercayaan isyarat perdagangan melalui penyelarasan penunjuk sambil memastikan keselamatan perdagangan melalui mekanisme kawalan risiko dinamik. Walaupun terdapat beberapa batasan yang melekat, strategi ini mempunyai ruang yang signifikan untuk peningkatan melalui arah pengoptimuman yang dicadangkan. Secara keseluruhan, ini adalah kerangka strategi perdagangan praktikal yang sesuai untuk pengoptimuman 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")