RSI Strategi perdagangan otomatis jangka pendek panjang

Penulis:ChaoZhang, Tanggal: 2023-10-30 17:13:24
Tag:

img

Gambaran umum

Strategi ini merancang sistem perdagangan otomatis untuk panjang dan pendek berdasarkan indikator Relative Strength Index (RSI).

Logika Strategi

Strategi ini menghitung nilai RSI dalam kisaran 0-100 berdasarkan kenaikan dan penurunan harga dalam periode tertentu. Ketika RSI di bawah 30, itu adalah status oversold. Ketika RSI di atas 70, itu adalah status overbought. Menurut aturan ini, strategi secara otomatis pergi panjang ketika RSI mencapai zona oversold dan pergi pendek ketika RSI mencapai zona overbought.

Secara khusus, strategi pertama menghitung RSI 15 periode. Ketika RSI turun di bawah 20, dianggap oversold. Pada saat ini, ketika harga melanggar di atas rata-rata bergerak 200 hari, posisi panjang dibuka. Ketika RSI naik di atas 80, dianggap overbought. Pada saat ini, posisi pendek dibuka. Setelah pergi panjang atau pendek, mengambil keuntungan dan stop loss diatur untuk keluar posisi.

Selain itu, strategi menggambar garis landmark dan label yang sesuai ketika sinyal harga terjadi untuk membuat sinyal perdagangan lebih intuitif.

Keuntungan dari Strategi

  • Ide strategi jelas dan mudah dipahami dan diterapkan
  • Berdasarkan indikator RSI, penilaian overbought dan oversold akurat
  • Perdagangan sepenuhnya otomatis tanpa intervensi manual
  • Mengambil keuntungan dan stop loss diatur untuk mengontrol risiko secara efektif
  • Sinyal perdagangan intuitif dan mudah dipantau

Risiko dari Strategi

  • Indikator RSI memiliki beberapa keterlambatan, dapat menyebabkan penilaian yang salah
  • Ambang batas overbought dan oversold tetap tidak cocok untuk semua produk
  • Pengaturan stop loss yang tidak benar dapat menyebabkan kerugian yang lebih besar
  • Perdagangan dengan tren utama di pasar tren dapat menyebabkan kerugian

Langkah-langkah pengendalian risiko meliputi: mengoptimalkan parameter RSI, menyesuaikan ambang overbought dan oversold agar sesuai dengan produk yang berbeda, menetapkan stop loss secara wajar, menggabungkan dengan indikator tren untuk menghindari perdagangan melawan tren.

Arahan untuk Optimasi Strategi

  • Mengoptimalkan parameter RSI untuk meningkatkan akurasi menilai overbought dan oversold
  • Mengkonfirmasi sinyal perdagangan dengan indikator lain seperti KDJ, MACD dll.
  • Mengoptimalkan pengaturan stop loss sesuai dengan kondisi pasar
  • Tambahkan penilaian tren untuk menghindari operasi terbalik
  • Set equity curve tracking stop loss
  • Mengembangkan modul kontrol risiko untuk mengendalikan risiko tunggal dan keseluruhan

Ringkasan

Secara keseluruhan ini adalah strategi perdagangan otomatis yang menggunakan indikator RSI untuk menilai kondisi overbought dan oversold. Ini menghasilkan sinyal perdagangan ketika RSI mencapai tingkat overbought atau oversold yang ekstrim, dan dapat secara otomatis melakukan perdagangan panjang dan pendek. Ide strategi sederhana dan jelas, mudah diterapkan, dan cocok sebagai strategi perdagangan otomatis dasar. Tetapi indikator RSI memiliki beberapa keterlambatan, sehingga disarankan untuk mengoptimalkannya dengan indikator lain untuk meningkatkan akurasi sinyal. Selain itu, perhatian harus diberikan pada pengendalian risiko, mengoptimalkan mekanisme stop loss, mengembangkan modul pengendalian risiko untuk mengurangi risiko perdagangan. Jika dioptimalkan dan diverifikasi dalam perdagangan langsung, strategi dapat menjadi sistem otomatis yang efektif untuk perdagangan panjang dan pendek.


/*backtest
start: 2023-10-22 00:00:00
end: 2023-10-29 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI Improved strategy", overlay=true)
higherTF1 = input.timeframe('15' , "Resolution", options = ['5', '15', '1H', 'D', 'W', 'M'])
dailyopen = request.security(syminfo.tickerid, higherTF1, close)

Reward = input(1600)
Risk = input(1600)

length = input( 5 )
overSold = input( 30 )
overBought = input( 70 )
EMA = input(200)
price = close

vrsi = ta.rsi(price, length)

RSIlowest =  vrsi[1] > vrsi ? true : false
RSIhighest = vrsi[1] < vrsi ? true : false

//ro = ta.crossunder(vrsi, 20)
//ru = ta.crossover(vrsi, 80)

co = ta.crossunder(vrsi, overSold)
cu = ta.crossunder(vrsi, overBought)

plot(ta.ema(close, EMA))
plot(ta.ema(close, 50), color = color.orange)

UponEMA = close > ta.ema(close, EMA) ? true : false
belowEMA = close < ta.ema(close, EMA) ? true : false
//transfer 'float' to 'int' to 'string'
r = int(vrsi)
value = str.tostring(r)

m = int(strategy.openprofit)
money = str.tostring(m)
if (not na(vrsi))
	//when price stand up on 200ema and rsi is at oversold area, open long position 
//	if (co and UponEMA)
  //      strategy.order("Rsi long", strategy.long, 1 , comment = "Rsi long")
        
    if(vrsi < 20 and RSIlowest)
        // line1 = line.new(x1=bar_index, y1=dailyopen, x2=bar_index+1, y2=dailyopen, xloc=xloc.bar_index, style=line.style_solid,extend=extend.right, color=color.aqua, width = 2)
        // line.delete(line1[1])  // remove the previous line when new bar appears
        // label1 = label.new(x=bar_index, y=dailyopen,yloc=yloc.belowbar, text = value,textcolor = color.white, color = color.green, style = label.style_label_up)
        // label.delete(label1[1])
        strategy.order("Rsi long", strategy.long, 1 , comment = "Rsi long")
        strategy.exit("exit", "Rsi long", profit = Reward, loss = Risk, comment = "Rsi long exit")
//strategy.close("Rsi short", comment = "Rsi close")

	
	

	if(vrsi > 80 and RSIhighest)
        // line2 = line.new(x1=bar_index, y1=dailyopen, x2=bar_index+1, y2=dailyopen, xloc=xloc.bar_index, style=line.style_solid,extend=extend.right, color = #e65100, width = 2)
        // line.delete(line2[1])  // remove the previous line when new bar appears
        // label2 = label.new(x=bar_index, y=dailyopen,yloc=yloc.abovebar, text = value, textcolor = color.white, color = color.red)            
        // label.delete(label2[1])
        strategy.order("Rsi short",strategy.short, 1,  comment = "Rsi short ")
        strategy.exit("exit", "Rsi short", profit = Reward,loss = Risk, comment = "Rsi short exit")
//	if(UponEMA)
//        strategy.close("Rsi short", comment = "Rsi short close")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_cross)
//plotshape(confirmPH, title="Label",offset = 1,text="Bull",style=shape.labeldown,location=location.abovebar,color=color.green,textcolor=color.green)




//when Rsi reaches overbought, draw a Horizontal Ray to close prices, similarly when it comes to oversold.(accomplished)
//detects when there is more lower/higher RSI values, adjust horizontal Ray and label to new posistion.(accomplished)

Lebih banyak