Strategi ini adalah sistem perdagangan pembalikan trend yang menggabungkan Exponential Moving Averages (EMA) dan Relative Strength Index (RSI). Ia mengenal pasti titik pembalikan trend melalui isyarat silang EMA 9 tempoh dan 21 tempoh, yang disahkan oleh kejayaan RSI pada tahap 50. Sistem ini termasuk mekanisme pengurusan risiko yang komprehensif dengan nisbah risiko-balasan tetap untuk mengawal penarikan secara berkesan.
Logik terasnya adalah berdasarkan persilangan antara EMA Cepat (9-periode) dan EMA Perlahan (21-periode), dengan pengesahan momentum dari RSI. Sistem ini menghasilkan isyarat beli apabila EMA Cepat melintasi di atas EMA Perlahan sementara RSI di atas 50, dan isyarat jual apabila EMA Cepat melintasi di bawah EMA Perlahan sementara RSI di bawah 50.
Strategi ini membina sistem trend yang kukuh dengan menggabungkan persimpangan EMA dan pengesahan momentum RSI. Mekanisme kawalan risiko yang komprehensif dan antara muka visualisasi yang jelas menjadikannya sangat praktikal. Walaupun prestasi mungkin kurang optimum di pasaran sampingan, arah pengoptimuman yang dicadangkan menawarkan potensi untuk penambahbaikan lebih lanjut. Pedagang dinasihatkan untuk menjalankan pengujian balik yang menyeluruh dan menyesuaikan parameter mengikut ciri instrumen perdagangan tertentu sebelum pelaksanaan langsung.
/*backtest start: 2024-11-26 00:00:00 end: 2024-12-25 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover with RSI Confirmation and Buy/Sell Signals", overlay=true) // Input for EMAs and RSI fastLength = input.int(9, title="Fast EMA Length") slowLength = input.int(21, title="Slow EMA Length") rsiLength = input.int(14, title="RSI Length") rsiLevel = input.int(50, title="RSI Level", minval=0, maxval=100) // Calculate the EMAs and RSI fastEMA = ta.ema(close, fastLength) slowEMA = ta.ema(close, slowLength) rsi = ta.rsi(close, rsiLength) // Plot the EMAs on the chart plot(fastEMA, color=color.green, linewidth=2, title="Fast EMA (9)") plot(slowEMA, color=color.red, linewidth=2, title="Slow EMA (21)") // Plot the RSI on a separate pane (below the chart) hline(rsiLevel, "RSI Level", color=color.gray) plot(rsi, color=color.blue, linewidth=2, title="RSI") // Buy condition: Fast EMA crosses above Slow EMA and RSI crosses above 50 buyCondition = ta.crossover(fastEMA, slowEMA) and rsi > rsiLevel // Sell condition: Fast EMA crosses below Slow EMA and RSI crosses below 50 sellCondition = ta.crossunder(fastEMA, slowEMA) and rsi < rsiLevel // Execute trades based on conditions if (buyCondition) strategy.entry("Buy", strategy.long) label.new(bar_index, low, "Buy", color=color.green, textcolor=color.white, style=label.style_label_up, size=size.small) if (sellCondition) strategy.close("Buy") label.new(bar_index, high, "Sell", color=color.red, textcolor=color.white, style=label.style_label_down, size=size.small) // Strategy exit (optional): Fixed risk-to-reward ratio (take profit and stop loss) takeProfit = input.int(2, title="Take Profit (Risk-Reward)", minval=1) stopLoss = input.int(1, title="Stop Loss (Risk-Reward)", minval=1) strategy.exit("Exit Buy", "Buy", stop=close * (1 - stopLoss / 100), limit=close * (1 + takeProfit / 100)) // Plot buy/sell arrows for visualization plotarrow(buyCondition ? 1 : na, offset=-1, colorup=color.green, maxheight=30, title="Buy Signal Arrow") plotarrow(sellCondition ? -1 : na, offset=-1, colordown=color.red, maxheight=30, title="Sell Signal Arrow")