Strategi perdagangan otomatis panjang dan pendek berdasarkan indikator RSI


Tanggal Pembuatan: 2024-02-29 14:14:01 Akhirnya memodifikasi: 2024-02-29 14:14:01
menyalin: 25 Jumlah klik: 686
1
fokus pada
1617
Pengikut

Strategi perdagangan otomatis panjang dan pendek berdasarkan indikator RSI

Ringkasan

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.

Prinsip Strategi

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.

Analisis Keunggulan

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.

Analisis risiko

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.

Arah optimasi

Strategi ini masih bisa dioptimalkan lebih jauh:

  1. 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.

  2. Mengoptimalkan parameter RSI, mencari parameter panjang RSI yang lebih sesuai, membuat penilaian overbought dan oversold lebih akurat.

  3. Optimalkan pengaturan Stop Loss Line untuk menghindari kerugian maksimal, tetapi juga untuk memastikan bahwa Stop Loss Line tidak terlalu sensitif.

Meringkaskan

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.

Kode Sumber Strategi
/*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="")