Strategi momentum breakout RSI-BB menggabungkan indikator Relative Strength Index (RSI) dan Bollinger Bands (BB) untuk perdagangan breakout. Strategi ini menggunakan RSI untuk menentukan tren pasar dan tingkat overbought/oversold, dan BB untuk mengidentifikasi titik breakout.
Kode pertama menghitung indikator RSI dan BB.
RSI dihitung sebagai:
up = rma(max(change(close), 0), 30)
down = rma(-min(change(close), 0), 30)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
Di mana naik mengukur pergerakan harga ke atas selama 30 periode, ke bawah mengukur pergerakan harga ke bawah, dan rsi dihitung berdasarkan rasio naik ke bawah.
BB dihitung sebagai:
basis = sma(close, 50)
dev = 0.2 * stdev(close, 50)
upper = basis + dev
lower = basis - dev
Di mana basis adalah rata-rata bergerak 50 periode, dev adalah 0,2 kali standar deviasi, atas dan bawah adalah band.
bbi adalah indeks bandwidth Bollinger, dihitung sebagai:
bbr = close>upper? 1 : close<lower? -1 : 0
bbi = bbr - bbr[1]
bbr memeriksa apakah dekat melanggar band atas atau bawah. Breakout adalah 1, pemecahan adalah -1, jika tidak 0. bbi adalah perbedaan antara bbr saat ini dan sebelumnya.
Sinyal strategi ditentukan sebagai:
long = rsi>52 and rsi<65 and bbi>0.11 and bbi<0.7
short = rsi<48 and rsi>35 and bbi<-0.11 and bbi>-0.7
Pergi panjang ketika RSI berada di antara 52-65 dan BBI berada di antara 0,11 dan 0,7.
Menggabungkan RSI dan BB memberikan sinyal yang lebih dapat diandalkan. RSI mengukur tren dan tingkat overbought/oversold, BB mengidentifikasi breakout.
RSI 30 periode menyaring beberapa kebisingan pasar dan berfokus pada tren utama.
BB 50 periode dengan 0.2 standar deviasi membantu menyaring whipsaws.
Batas BBI menyaring pelarian palsu.
Zona RSI panjang/pendek 52-65 dan 35-48 memberikan beberapa penyangga untuk menghindari perdagangan yang hilang.
Strategi breakout cenderung terjebak dalam whipsaws, perlu mengelola risiko dengan stop loss.
Hasil backtest mungkin terlalu banyak, kinerja langsung mungkin bervariasi.
Gerakan pasar yang ekstrim dapat mempengaruhi stop loss yang mengakibatkan kerugian besar.
Parameter RSI dan BB termasuk periode dan ambang harus dioptimalkan.
Harga pesanan dapat secara signifikan mempengaruhi kinerja langsung.
Uji kombinasi yang berbeda dari parameter RSI dan BB untuk menemukan pengaturan yang optimal.
Tambahkan indikator lain seperti MACD, KD untuk penyaringan sinyal.
Optimalkan zona panjang/pendek RSI untuk menyaring lebih banyak kebisingan.
Mengoptimalkan ambang batas BBI dinamis untuk lebih baik menyaring pemalsuan.
Tambahkan filter tren untuk menghindari perdagangan melawan tren utama.
Uji teknik stop loss yang berbeda untuk menemukan kontrol risiko yang optimal.
Uji jenis order yang berbeda untuk meminimalkan dampak slippage.
Strategi RSI-BB menggabungkan keuntungan menggunakan indikator tren dan momentum. Hasil backtest menjanjikan tetapi kinerja langsung dapat bervariasi karena faktor dunia nyata seperti slippage dan stop loss. Parameter dan filter perlu dioptimalkan berdasarkan hasil backtest. Stop loss dan penempatan order juga harus dievaluasi untuk efektivitas dunia nyata. Strategi ini memiliki merit tetapi membutuhkan peningkatan berkelanjutan dan pengujian ketahanan untuk menghasilkan hasil yang konsisten.
/*backtest start: 2023-10-03 00:00:00 end: 2023-11-02 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //Based on Larry Connors RSI-2 Strategy - Lower RSI strategy(title="Spyfrat Strat", shorttitle="SpyfratStrat", overlay=true) src = close, // BB Init source = close length = input(50, minval=1) mult = input(0.2, title="Mult Factor", minval=0.001, maxval=50) alertLevel=input(0.1) impulseLevel=input(0.75) showRange = input(false, type=bool) //RSI CODE up = rma(max(change(src), 0), 30) down = rma(-min(change(src), 0), 30) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) //BB CODE basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.1 bbi = bbr - nz(bbr[1]) //Rule long = rsi>52 and rsi<65 and bbi>0.11 and bbi<0.7 short = rsi<48 and rsi>35 and bbi<-0.11 and bbi>-0.7 //Trade Entry strategy.entry("long", strategy.long, when=long) strategy.entry("short", strategy.short, when=short) //Trade Exit TP = input(250) * 10 SL = input(20) * 10 TS = input(0) * 10 CQ = 100 TPP = (TP > 0) ? TP : na SLP = (SL > 0) ? SL : na TSP = (TS > 0) ? TS : na strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP) strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)