Menggunakan Strategi Pemecahan RSI Dwiarah


Tarikh penciptaan: 2023-12-27 14:33:15 Akhirnya diubah suai: 2023-12-27 14:33:15
Salin: 0 Bilangan klik: 974
1
fokus pada
1623
Pengikut

Menggunakan Strategi Pemecahan RSI Dwiarah

Gambaran keseluruhan

Strategi penembusan RSI dua arah adalah strategi perdagangan algoritma yang menggunakan indikator RSI untuk mengenal pasti titik balik harga. Ia membandingkan indikator RSI dengan nilai terhad yang ditetapkan untuk menentukan apakah pasaran telah melampaui harga jual dan mengeluarkan isyarat perdagangan.

Prinsip Strategi

Strategi ini bergantung kepada indikator RSI untuk menilai keadaan. Indeks RSI dikira berdasarkan perubahan harga penutupan dalam tempoh tertentu, yang mencerminkan daya beli saham. Apabila RSI melintasi set harga atas (default 75), saham memasuki kawasan overbought; apabila RSI melintasi set harga bawah (default 25), saham memasuki kawasan oversold.

Peraturan penilaian strategik:

  1. Apabila RSI naik ke paras paras terendah, anda boleh melakukan penarikan.
  2. Lebih banyak apabila RSI menembusi ambang bawah;
  3. Penutupan atau penutupan kedudukan.

Logik dagangan mudah dan jelas, parameter rujukan ditetapkan dengan munasabah, ruang yang boleh dikonfigurasi besar, sesuai untuk menangkap trend yang lebih besar dalam pasaran.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Logiknya mudah, mudah difahami dan dilaksanakan.
  2. Pengaturan parameter rujukan adalah munasabah dan boleh disesuaikan;
  3. Logik dagangan terbalik boleh dikonfigurasi dan bertindak balas secara fleksibel;
  4. Ia juga boleh digunakan untuk mengesan titik-titik perubahan harga dan menangkap trend.

Secara keseluruhannya, parameter rujukan strategi ini ditetapkan dengan munasabah, mudah dilaksanakan, dapat menilai perubahan harga dengan berkesan melalui indikator RSI, sesuai untuk menangkap trend besar di pasaran, dan merupakan strategi kuantitatif yang mudah dipelajari.

Analisis risiko

Walaupun strategi ini mudah dan boleh dipercayai, kita tidak boleh mengabaikan potensi risiko yang dihadapi:

  1. Indeks RSI mempunyai kebarangkalian yang tinggi untuk memberi isyarat yang salah. RSI tidak dapat meramalkan perubahan harga dengan sempurna, dan ia boleh menyebabkan kesalahan penilaian.
  2. Kemungkinan penghentian berterusan dalam trend. Indeks RSI sukar untuk membezakan antara penyesuaian julat normal dan pembalikan trend.
  3. RSI tidak dapat menilai pergerakan goyah dengan berkesan, dan dalam keadaan ini, kerugian strategi meningkat.

Untuk mengawal risiko, kita perlu berhati-hati dengan perkara berikut:

  1. Menyesuaikan parameter dengan betul untuk mengelakkan kesilapan yang terlalu tinggi;
  2. Meningkatkan ketepatan isyarat transaksi yang disahkan dengan menggunakan penunjuk lain;
  3. Meningkatkan kadar penangguhan dan mengurangkan kerugian simpanan;
  4. Berhati-hati untuk mengelakkan transaksi yang tidak menentu.

Arah pengoptimuman

Dengan mengambil kira bahawa strategi ini kebanyakannya berhadapan dengan risiko kesilapan pembalikan dan kerugian akibat kejutan, kita boleh mengoptimumkannya dalam beberapa aspek:

  1. Dalam kombinasi dengan penapis isyarat lain. Sebagai contoh, penapis KDJ, MACD dan sebagainya boleh berfungsi sebagai penapis dan mengelakkan salah faham.
  2. Meningkatkan jumlah terhad untuk menghentikan kerugian tunggal. Memperbesar ruang terhad untuk menghentikan kerugian tunggal dengan sewajarnya membantu strategi untuk berjalan dengan trend besar.
  3. Tetapkan had frekuensi pembukaan kedudukan. Tambahkan had logik untuk hanya melakukan satu atau N kali perdagangan setiap kitaran, untuk mengawal pembukaan kedudukan yang terlalu padat.
  4. Tetapkan penilaian keadaan trend. Strategi penilaian hanya beroperasi dalam keadaan trend, mengelakkan keadaan gegaran, dan dapat mengoptimumkan nisbah risiko keuntungan strategi.

ringkaskan

Strategi penembusan RSI dua arah secara keseluruhan adalah strategi kuantitatif yang mudah dan praktikal. Ia menilai harga berbalik dengan indikator RSI, dan melakukan trend yang mudah. Walaupun terdapat risiko kesalahan, ia dapat dioptimumkan melalui penyesuaian parameter dan penapisan isyarat, memainkan peranan penting dalam menangkap trend garis tengah dan panjang.

Kod 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)