Strategi ini menggabungkan tingkat dukungan/resistensi dinamis dan indikator indeks kekuatan relatif (RSI). Ini menetapkan ambang overbought/oversold untuk RSI dan menghasilkan sinyal beli/jual ketika harga melanggar level support/resistance dinamis sementara RSI tidak berada di area overbought/oversold.
1. Dukungan/Resistensi Dinamis
Gunakan fungsi keamanan untuk mendapatkan harga penutupan sebagai level support/resistance dinamis.
2. Indikator RSI
Menghitung keuntungan rata-rata dan kerugian rata-rata selama periode tertentu untuk menghasilkan nilai RSI dan menentukan apakah RSI mencapai area overbought/oversold.
3. Sinyal Trading
Ketika harga menembus level dinamis, jika RSI tidak berada di area overbought/oversold, sinyal beli/jual dihasilkan.
4. Sinyal Keluar
Tutup posisi ketika harga kembali ke level dinamis, atau ketika RSI kembali ke kisaran normal.
Gunakan dukungan / resistensi dinamis untuk menentukan arah tren untuk tingkat kemenangan yang lebih tinggi.
RSI menyaring keluar kebocoran palsu dan menghindari entri palsu.
Menggabungkan tren dan indikator membuat strategi dapat disesuaikan dengan kondisi pasar yang berbeda.
Aturan yang sederhana dan jelas membuatnya mudah diterapkan.
Beberapa tes tingkat dinamis dapat menghasilkan sinyal palsu.
Solo RSI dapat menyebabkan penilaian yang salah. Tambahkan indikator lain untuk combo filter.
Perdagangan yang sering di pasar yang terikat rentang mengarah pada biaya yang lebih tinggi.
Pengaturan parameter yang tidak benar menyebabkan sinyal hilang atau salah.
Gunakan pembelajaran mesin untuk mengoptimalkan parameter RSI secara otomatis.
Tambahkan strategi stop loss / profit taking untuk mengunci keuntungan dan mengurangi kerugian.
Masukkan lebih banyak indikator untuk penyaringan kombinasi untuk meningkatkan stabilitas.
Tambahkan indikator volatilitas ke ukuran posisi yang lebih rendah ketika volatilitas rendah.
Mengoptimalkan algoritma ukuran posisi untuk menyesuaikan posisi secara dinamis untuk lingkungan pasar yang berbeda.
Strategi ini menggabungkan penilaian tren dan penyaringan indikator untuk secara efektif mengidentifikasi pembalikan tren di sekitar tingkat kunci sambil mengendalikan risiko. Optimasi lebih lanjut pada penyesuaian parameter, stop loss / profit taking, lebih banyak indikator dll dapat meningkatkan stabilitas dan kemampuan beradaptasi untuk menghasilkan keuntungan yang stabil di berbagai pasar.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Levels+RSI Strategy v1.0", shorttitle = "Levels+RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") tf = input('W', title = "timeframe 1") src = input(ohlc4, "Source") ap = input(true, defval = true, title = "antipila") cf = input(true, defval = true, title = "color filter") rsiperiod = input(7, defval = 7, minval = 2, maxval = 100, title = "RSI Period") rsilimit = input(30, defval = 30, minval = 1, maxval = 50, title = "RSI Limit") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Level level = request.security(syminfo.tickerid, tf, src[1]) plot(level, linewidth = 3, color = silver) //RSI uprsi = rma(max(change(close), 0), rsiperiod) dnrsi = rma(-min(change(close), 0), rsiperiod) rsi = dnrsi == 0 ? 100 : uprsi == 0 ? 0 : 100 - (100 / (1 + uprsi / dnrsi)) //Level Signals ls = close > level and ap == false ? true : low > level ? true : false up1 = strategy.position_size == 0 and ls and (close < open or cf == false) exit1 = close < level and ap == false ? true : high < level ? true : false //RSI Signal up2 = rsi < rsilimit and (close < open or cf == false) exit2 = rsi > rsilimit and ls == false //Trading lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if up1 or up2 strategy.entry("Long", strategy.long, needlong == false ? 0 : lot) if (exit1 and rsi > rsilimit) or exit2 strategy.close_all()