Menggunakan Strategi Breakout RSI Dua Arah


Tanggal Pembuatan: 2023-12-27 14:33:15 Akhirnya memodifikasi: 2023-12-27 14:33:15
menyalin: 0 Jumlah klik: 974
1
fokus pada
1623
Pengikut

Menggunakan Strategi Breakout RSI Dua Arah

Ringkasan

Strategi penembusan RSI bidirectional adalah strategi perdagangan algoritmik yang menggunakan indikator RSI untuk mengidentifikasi titik balik harga. Strategi ini membandingkan indikator RSI dengan set nilai upside dan downside untuk menentukan apakah pasar telah melampaui overbought dan mengirimkan sinyal perdagangan.

Prinsip Strategi

Strategi ini terutama bergantung pada indikator RSI untuk menilai situasi. Indikator RSI dihitung berdasarkan perubahan harga penutupan dalam periode tertentu, yang mencerminkan daya beli saham. Ketika RSI melewati batas atas yang ditetapkan (default 75), berarti saham memasuki area overbought; Ketika RSI melewati batas bawah yang ditetapkan (default 25), berarti saham memasuki area oversold.

Peraturan penilaian strategis:

  1. Ketika RSI naik ke titik terendah, maka Anda harus melakukan shorting.
  2. Jika RSI melintasi batas, lakukan lebih banyak.
  3. Stop loss atau stop loss setelah posisi kosong.

Logika perdagangan yang sederhana dan jelas, parameter referensi yang diatur dengan wajar, ruang yang besar yang dapat dikonfigurasi, cocok untuk menangkap tren yang lebih besar dalam situasi pasar.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Logika sederhana, mudah dipahami dan diterapkan;
  2. Pengaturan parameter referensi yang masuk akal dan dapat dikonfigurasi secara individual;
  3. Logika perdagangan terbalik yang dapat dikonfigurasi, responsif terhadap situasi;
  4. Ini adalah metode yang efektif untuk mengidentifikasi titik balik harga dan menangkap tren besar.

Secara keseluruhan, strategi ini memiliki parameter acuan yang masuk akal, mudah diterapkan, dapat secara efektif menilai reversal harga melalui indikator RSI, cocok untuk menangkap tren besar di pasar, dan merupakan strategi kuantitatif yang mudah dikuasai.

Analisis risiko

Meskipun strategi ini sederhana dan dapat diandalkan, kita tidak boleh mengabaikan potensi risiko yang dihadapi:

  1. Indikator RSI memiliki probabilitas yang tinggi untuk mengirimkan sinyal yang salah. RSI tidak dapat memprediksi dengan sempurna perubahan harga, dan mungkin terjadi kesalahan penilaian.
  2. Kemungkinan stop loss berturut-turut dalam situasi tren. Indikator RSI sulit membedakan antara penyesuaian normal dan pembalikan tren.
  3. RSI tidak dapat secara efektif menilai tren goyah, dan dalam lingkungan ini, kerugian strategi meningkat.

Untuk mengendalikan risiko, kita perlu memperhatikan hal-hal berikut:

  1. Mengatur parameter dengan tepat untuk mencegah kesalahan yang terlalu tinggi;
  2. Meningkatkan akurasi sinyal transaksi yang dikonfirmasi dengan indikator lain;
  3. Ini adalah salah satu dari beberapa hal yang dapat Anda lakukan untuk mengurangi kerugian Anda.
  4. Perhatikan untuk menghindari transaksi yang bergejolak.

Arah optimasi

Mengingat bahwa strategi ini sebagian besar menghadapi risiko kesalahan perhitungan terbalik dan kerugian akibat kehancuran, kita dapat mengoptimalkannya dari beberapa sisi:

  1. Dalam kombinasi dengan indikator lain untuk memfilter sinyal. Indikator seperti KDJ, MACD dapat berperan sebagai filter, menghindari kesalahan penilaian.
  2. Tingkatkan margin stop loss tunggal. Membesarkan ruang stop loss tunggal dengan tepat dapat membantu strategi berjalan dengan tren besar.
  3. Tetapkan batasan frekuensi pembukaan posisi. Tambahkan batas logis untuk melakukan hanya satu atau N transaksi per siklus tertentu, untuk mengontrol pembukaan posisi yang terlalu padat.
  4. Strategi penilaian hanya bekerja di bawah tren, menghindari situasi goyah, dan dapat secara signifikan mengoptimalkan strategi keuntungan-risiko.

Meringkaskan

Strategi penembusan RSI dua arah secara keseluruhan adalah strategi kuantitatif yang sederhana dan praktis. Strategi ini menilai reversal harga melalui indikator RSI dan memungkinkan pelacakan tren yang sederhana. Meskipun ada risiko kesalahan penilaian tertentu, namun dapat dioptimalkan melalui penyesuaian parameter dan pemfilteran sinyal, memainkan peran penting dalam menangkap tren garis tengah dan panjang.

Kode Sumber Strategi
/*backtest
start: 2023-12-19 00:00:00
end: 2023-12-26 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("RSI Algo", overlay=true)

// Calculate start/end date and time condition
DST = 1 //day light saving for usa
//--- Europe
London = iff(DST==0,"0000-0900","0100-1000")
//--- America
NewYork = iff(DST==0,"0400-1500","0500-1600")
//--- Pacific
Sydney = iff(DST==0,"1300-2200","1400-2300")
//--- Asia
Tokyo = iff(DST==0,"1500-2400","1600-0100")

//-- Time In Range
timeinrange(res, sess) => time(res, sess) != 0

london = timeinrange(timeframe.period, London)
newyork = timeinrange(timeframe.period, NewYork)

time_cond = true


myPeriod = input(defval=14, type=input.integer, title="Period")
myThresholdUp = input(defval=75, type=input.float, title="Upper Threshold")
myThresholdDn = input(defval=25, type=input.float, title="Lower Threshold")
myAlgoFlipToggle = input(defval=false, type=input.bool, title="Imverse Algorthim")
myLineToggle = input(defval=true, type=input.bool, title="Show Lines")
myLabelToggle = input(defval=true, type=input.bool, title="Show Labels")
myRSI=rsi(close, myPeriod)
buy = myAlgoFlipToggle ? falling(myRSI,1) and cross(myRSI, myThresholdDn) : rising(myRSI, 1) and cross(myRSI,myThresholdUp) //and time_cond
sell = myAlgoFlipToggle ? rising(myRSI, 1) and cross(myRSI,myThresholdUp) : falling(myRSI,1) and cross(myRSI, myThresholdDn) //and time_cond
myPosition = 0
myPosition := buy==1 ? 0 : sell==1 or myPosition[1]==1 ? 1 : 0
trendColor = buy ? color.red : sell ? color.green : na
plot(myLineToggle ? buy and myPosition[1]==1 ? low - 0.004: sell and myPosition[1]==0 ? high + 0.004 : na : na, color=trendColor, style=plot.style_line, linewidth=4, editable=false)
plotshape(myLabelToggle ? buy and myPosition[1]==1 ? low - 0.005 : na : na, style=shape.labelup, location=location.absolute, text="Buy", transp=0, textcolor = color.white, color=color.black, editable=false)
plotshape(myLabelToggle ? sell and myPosition[1]==0 ? high + 0.005 : na : na, style=shape.labeldown, location=location.absolute, text="Sell", transp=0, textcolor = color.white, color=color.black, editable=false)

strategy.initial_capital = 50000
    //Calculate the size of the next trade
balance = strategy.netprofit + strategy.initial_capital //current balance
floating = strategy.openprofit          //floating profit/loss
risk = input(2,type=input.float,title="Risk %")/100           //risk % per trade
isTwoDigit = input(false,"Is this a 2 digit pair? (JPY, XAU, XPD...")


stop = input(250, title="stop loss pips")
tp = input(2500, title="take profit pips")
if(isTwoDigit)
    stop := stop/100
    
temp01 = balance * risk     //Risk in USD
temp02 = temp01/stop        //Risk in lots
temp03 = temp02*100000      //Convert to contracts
size = 1
    
strategy.entry("long",1,size,when=buy and myPosition[1]==1 )
strategy.entry("short",0,size,when=sell and myPosition[1]==0)

strategy.exit("exit_long","long",loss=stop, profit=tp)      //Long exit (stop loss)
strategy.exit("exit_short","short",loss=stop, profit=tp)      //Short exit (stop loss)

//strategy.close_all(when= not time_cond)