Trend RSI Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2023-10-26 15:44:15
Tag:

img

Gambaran umum

Strategi ini mendesain sistem perdagangan sederhana berdasarkan indikator RSI, yang dapat menentukan arah tren pasar melalui RSI dan menerapkan posisi panjang dan pendek otomatis dalam kisaran tanggal tertentu.

Logika Strategi

Strategi ini menggunakan indikator RSI untuk menentukan tren pasar, dan Bollinger Bands untuk mengkonfirmasi zona overbought dan oversold.

Pertama, nilai RSI dihitung. Band atas dan bawah Bollinger Band dihitung berdasarkan rata-rata bergerak dan standar deviasi RSI. RSI berfluktuasi antara 0-1, dan Bollinger Band mengidentifikasi zona overbought dan oversold melalui standar deviasi. Ketika RSI lebih tinggi dari band atas, itu adalah zona overbought, dan ketika lebih rendah dari band bawah, itu adalah zona oversold.

Ketika RSI menembus dari band bawah ke band atas, sinyal beli dihasilkan. Ketika RSI menembus dari band atas ke band bawah, sinyal jual dihasilkan, untuk mengikuti tren. Setelah memasuki pasar, tidak ada stop loss atau take profit yang ditetapkan sampai posisi ditutup di akhir kisaran tanggal yang ditentukan.

Strategi ini menggunakan RSI secara sederhana dan efektif untuk menentukan arah tren, dan Bollinger Bands untuk mengidentifikasi peluang perdagangan tertentu.

Analisis Keuntungan

  • Menggunakan RSI untuk menentukan arah tren sederhana dan efektif
  • Menggabungkan Bollinger Bands untuk mengkonfirmasi sinyal perdagangan menghindari breakout palsu
  • Mendefinisikan rentang tanggal perdagangan membantu menghindari risiko pasar
  • Tidak ada stop loss atau mengambil keuntungan, memaksimalkan tren berikut
  • Pengaturan parameter yang fleksibel, beradaptasi dengan berbagai lingkungan pasar

Risiko dan Optimalisasi

  • Pasar dapat mengalami perubahan besar-besaran, menyebabkan kerugian
  • Tidak ada stop loss atau take profit gagal untuk mengontrol risiko secara efektif
  • Pengaturan parameter yang tidak benar dapat menyebabkan overtrading atau kehilangan peluang

Arahan Optimasi:

  • Tambahkan stop loss dan take profit untuk mengendalikan risiko
  • Mengoptimalkan pengaturan parameter untuk meningkatkan tingkat menang
  • Tambahkan indikator lain untuk menyaring sinyal dan menghindari pecah palsu
  • Sesuaikan ukuran posisi secara dinamis

Ringkasan

Secara singkat, ini adalah strategi trend following yang sangat sederhana dan langsung. Menggunakan RSI untuk menentukan tren, Bollinger Bands untuk menyaring sinyal, dan mendefinisikan rentang tanggal perdagangan, dapat secara efektif mengikuti tren dan mengendalikan risiko. Tetapi strategi dapat lebih dioptimalkan. Sementara tetap sederhana dan efektif, metode seperti stop loss, optimasi parameter dan penyaring sinyal dapat ditambahkan untuk membuatnya lebih cocok untuk perdagangan langsung.


/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Gidra
//2018

//@version=2
strategy(title = "Gidra's RSI or MFI Strategy v0.1", shorttitle = "Gidra's RSI or MFI v0.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 1)

//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 = "Lot, %")
src = input(close, title="source")
lengthRSI = input(14, title="RSI or MFI length")
// RSI %B
useRSI = input(true, title="use RSI or MFI")
fromyear = input(2018, defval = 2018, 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")

//MFI
upper = sum(volume * (change(src) <= 0 ? 0 : src), lengthRSI)
lower = sum(volume * (change(src) >= 0 ? 0 : src), lengthRSI)
mf = rsi(upper, lower)

//RSI
rsi = useRSI?rsi(src, lengthRSI): mf

// %B
length = input(50, minval=1, title="BB length")
mult = input(1.618, minval=0.001, maxval=50)
basis = sma(rsi, length)
dev = mult * stdev(rsi, length)
upperr = basis + dev
lowerr = basis - dev
bbr = (rsi - lowerr)/(upperr - lowerr)

plot(bbr, color=black, transp=0, linewidth=2)
// band1 = hline(1, color=white, linestyle=dashed)
// band0 = hline(0, color=white, linestyle=dashed)
// fill(band1, band0, color=teal)
hline(0.5, color=white)

//Signals
up = bbr >= 0 and bbr[1] < 0
dn = bbr <= 1 and bbr[1] > 1
//exit = ((bbr[1] < 0.5 and bbr >= 0.5) or (bbr[1] > 0.5 and bbr <= 0.5))

lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)// or exit
    strategy.close_all()

Lebih banyak