
Strategi ini didesain berdasarkan indikator RSI untuk sistem perdagangan otomatis over-the-counter. Sistem ini dapat melakukan over-the-counter secara otomatis saat RSI oversold, dan secara aktif menghentikan kerugian saat kondisi tertentu terjadi.
Strategi ini menggunakan indikator RSI untuk menilai fenomena overbought dan oversold di pasar. Secara khusus, ketika indikator RSI berada di bawah garis overbought yang ditetapkan, masuk lebih banyak; ketika indikator RSI berada di atas garis overbought yang ditetapkan, masuk lebih sedikit.
Selain itu, strategi ini juga menetapkan kondisi keluar. Jika indikator RSI naik lagi melewati garis overbought, maka akan memicu stop loss multiple; Begitu juga, jika indikator RSI turun lagi melewati garis oversold, maka akan memicu stop loss kosong.
Keuntungan terbesar dari strategi ini adalah menggunakan indikator RSI untuk menilai fenomena overbought dan oversold di pasar, yang merupakan metode analisis teknis yang lebih matang dan andal dalam perdagangan kuantitatif. Strategi ini dapat menangkap titik-titik perubahan pasar dengan lebih akurat dibandingkan dengan strategi rata-rata bergerak sederhana, sehingga meningkatkan ruang keuntungan sistem perdagangan.
Selain itu, strategi ini menetapkan kondisi keluar dari lapangan yang dapat secara efektif mengendalikan risiko kerugian yang ditimbulkan dalam situasi satu arah besar. Ini kontras dengan strategi mengikuti tren tradisional yang dapat mencegah terjadinya pegangan posisi.
Risiko terbesar dari strategi ini adalah bahwa sinyal perdagangan yang dikeluarkan oleh indikator RSI dapat disalahartikan. Tidak ada indikator teknis yang dapat 100 persen menentukan pergerakan pasar, dan indikator RSI tidak terkecuali. Strategi ini menghasilkan entri yang salah ketika RSI disalahartikan sebagai sinyal overbought dan oversold.
Untuk mengurangi risiko ini, strategi ini menetapkan batas stop loss. Namun, dalam situasi sepihak, kemungkinan besar batas stop loss akan dipicu. Saat ini, intervensi manual diperlukan untuk menutup posisi yang salah secara manual.
Strategi ini masih bisa dioptimalkan lebih jauh:
Kombinasi beberapa indikator untuk mengkonfirmasi sinyal masuk, menghindari salah masuk yang disebabkan oleh penilaian indikator RSI secara terpisah. Misalnya, indikator rata-rata bergerak dapat ditambahkan, dll.
Mengoptimalkan parameter RSI, mencari parameter panjang RSI yang lebih sesuai, membuat penilaian overbought dan oversold lebih akurat.
Optimalkan pengaturan Stop Loss Line untuk menghindari kerugian maksimal, tetapi juga untuk memastikan bahwa Stop Loss Line tidak terlalu sensitif.
Secara keseluruhan, strategi perdagangan otomatis berbasis RSI ini memiliki keunggulan untuk secara efektif mengidentifikasi kondisi pasar yang overbought dan oversold. Dengan memasuki posisi overhead dan overhead selama tingkat RSI yang ekstrem, ini bertujuan untuk mendapatkan keuntungan dari pembalikan pasar.
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Soran Strategy 2 - LONG SIGNALS", pyramiding=1, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false)
// ----------------- Inputs ----------------- //
reso = input(title="Resolution", type=input.resolution, defval="")
length = input(20, title="RSI Length", type=input.integer)
ovrsld = input(30, "RSI Oversold level", type=input.float)
ovrbgt = input(85, "RSI Overbought level", type=input.float)
lateleave = input(28, "Number of candles", type=input.integer)
// lateleave : numbers of bars in overbought/oversold zones where the position is closed. The position is closed when this number is reached or when the zone is left (the first condition).
// best parameters BTCUSDTPERP M15 : 20 / 30 / 85 / 28
stratbull = input(title="Enter longs ?", type = input.bool, defval=true)
stratbear = input(title="Enter shorts ?", type = input.bool, defval=true)
stratyear = input(2020, title = "Strategy Start Year")
stratmonth = input(1, title = "Strategy Start Month")
stratday = input(1, title = "Strategy Start Day")
stratstart = timestamp(stratyear,stratmonth,stratday,0,0)
// --------------- Laguerre ----------------- //
laguerre = input(title="Use Laguerre on RSI ?", type=input.bool, defval=false)
gamma = input(0.06, title="Laguerre Gamma")
laguerre_cal(s,g) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - g)*s+g*nz(l0[1])
l1 := -g*l0+nz(l0[1])+g*nz(l1[1])
l2 := -g*l1+nz(l1[1])+g*nz(l2[1])
l3 := -g*l2+nz(l2[1])+g*nz(l3[1])
(l0 + 2*l1 + 2*l2 + l3)/6
// ---------------- Rsi VWAP ---------------- //
rsiV = security(syminfo.tickerid, reso, rsi(vwap(close), length))
rsiVWAP = laguerre ? laguerre_cal(rsiV,gamma) : rsiV
// ------------------ Plots ----------------- //
prsi = plot(rsiVWAP, color = rsiVWAP>ovrbgt ? color.red : rsiVWAP<ovrsld ? color.green : color.white, title="RSI on VWAP", linewidth=1, style=plot.style_line)
hline = plot(ovrbgt, color = color.gray, style=plot.style_line)
lline = plot(ovrsld, color = color.gray, style=plot.style_line)
fill(prsi,hline, color = rsiVWAP > ovrbgt ? color.red : na, transp = 30)
fill(prsi,lline, color = rsiVWAP < ovrsld ? color.green : na, transp = 30)
// ---------------- Positions: only shows Buy and close Buy positions --------------- //
timebull = stratbull
timebear = stratbear
strategy.entry("Long", true, when = timebull and crossover(rsiVWAP, ovrsld), comment="")
strategy.close("Long", when = timebull and crossover(rsiVWAP, ovrbgt)[lateleave] or crossunder(rsiVWAP, ovrbgt), comment="")