Strategi ini adalah sistem perdagangan trend yang menggabungkan Indeks Kekuatan Relatif (RSI), Purata Bergerak Bertimbang (WMA), dan Purata Bergerak Eksponensial (EMA). Dengan menggunakan beberapa penunjuk teknikal, strategi ini menangkap perubahan momentum pasaran pada titik pembalikan trend untuk menghasilkan isyarat perdagangan. Sistem ini menggunakan persilangan WMA dan EMA untuk mengesahkan arah trend sambil menggabungkan RSI untuk menapis keadaan pasaran untuk peningkatan ketepatan perdagangan.
Logik teras strategi ini adalah berdasarkan unsur-unsur utama berikut: 1. Pengiraan RSI menggunakan tetapan 14 tempoh untuk mengukur keadaan overbought / oversold pasaran 2. WMA 45 tempoh dan EMA 89 tempoh silang mengesahkan peralihan trend Syarat kemasukan: - Isyarat panjang: WMA melintasi di atas EMA dan RSI<50 - Isyarat pendek: WMA melintasi di bawah EMA dan RSI>50 4. Sistem memvisualisasikan keadaan pasaran melalui perubahan warna RSI, menunjukkan hijau apabila RSI> 70 dan merah apabila RSI < 30 5. Latar belakang biru ditetapkan dalam julat RSI 30-70 untuk membantu mengenal pasti zon neutral
Ini adalah strategi trend berikut berdasarkan pelbagai penunjuk teknikal, menggabungkan RSI, WMA, dan EMA untuk menangkap titik pembalikan trend pasaran sambil mengekalkan kestabilan perdagangan.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy(title="RSI + WMA + EMA Strategy", shorttitle="RSI Strategy", overlay=true) // RSI Settings rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings") rsiSourceInput = input.source(close, "Source", group="RSI Settings") // WMA and EMA Settings wmaLengthInput = input.int(45, minval=1, title="WMA Length", group="WMA Settings") wmaColorInput = input.color(color.blue, title="WMA Color", group="WMA Settings") emaLengthInput = input.int(89, minval=1, title="EMA Length", group="EMA Settings") emaColorInput = input.color(color.purple, title="EMA Color", group="EMA Settings") // RSI Calculation change = ta.change(rsiSourceInput) up = ta.rma(math.max(change, 0), rsiLengthInput) down = ta.rma(-math.min(change, 0), rsiLengthInput) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) // WMA and EMA Calculation wma = ta.wma(rsi, wmaLengthInput) ema = ta.ema(rsi, emaLengthInput) // RSI Color Logic rsiColor = rsi > 70 ? color.new(color.green, 100 - math.round(rsi)) : rsi < 30 ? color.new(color.red, math.round(rsi)) : color.new(color.blue, 50) // Plot RSI, WMA, and EMA plot(rsi, "RSI", color=rsiColor) plot(wma, title="WMA", color=wmaColorInput, linewidth=2) plot(ema, title="EMA", color=emaColorInput, linewidth=2) // Highlight RSI Area between 30 and 70 bgcolor(rsi >= 30 and rsi <= 70 ? color.new(color.blue, 90) : na) // Entry and Exit Conditions longCondition = ta.crossover(wma, ema) and rsi < 50 shortCondition = ta.crossunder(wma, ema) and rsi > 50 if (longCondition) strategy.entry("Long", strategy.long) alert("Buy Signal: WMA crossed above EMA, RSI < 50", alert.freq_once_per_bar) if (shortCondition) strategy.entry("Short", strategy.short) alert("Sell Signal: WMA crossed below EMA, RSI > 50", alert.freq_once_per_bar) // Optional: Plot Buy/Sell Signals on Chart plotshape(series=longCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=shortCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")