RSI-BB Momentum Breakout Strategi

Penulis:ChaoZhang, Tanggal: 2023-11-03 15:02:19
Tag:

img

Gambaran umum

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.

Logika Strategi

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.

Keuntungan

  1. Menggabungkan RSI dan BB memberikan sinyal yang lebih dapat diandalkan. RSI mengukur tren dan tingkat overbought/oversold, BB mengidentifikasi breakout.

  2. RSI 30 periode menyaring beberapa kebisingan pasar dan berfokus pada tren utama.

  3. BB 50 periode dengan 0.2 standar deviasi membantu menyaring whipsaws.

  4. Batas BBI menyaring pelarian palsu.

  5. Zona RSI panjang/pendek 52-65 dan 35-48 memberikan beberapa penyangga untuk menghindari perdagangan yang hilang.

Risiko

  1. Strategi breakout cenderung terjebak dalam whipsaws, perlu mengelola risiko dengan stop loss.

  2. Hasil backtest mungkin terlalu banyak, kinerja langsung mungkin bervariasi.

  3. Gerakan pasar yang ekstrim dapat mempengaruhi stop loss yang mengakibatkan kerugian besar.

  4. Parameter RSI dan BB termasuk periode dan ambang harus dioptimalkan.

  5. Harga pesanan dapat secara signifikan mempengaruhi kinerja langsung.

Peluang Peningkatan

  1. Uji kombinasi yang berbeda dari parameter RSI dan BB untuk menemukan pengaturan yang optimal.

  2. Tambahkan indikator lain seperti MACD, KD untuk penyaringan sinyal.

  3. Optimalkan zona panjang/pendek RSI untuk menyaring lebih banyak kebisingan.

  4. Mengoptimalkan ambang batas BBI dinamis untuk lebih baik menyaring pemalsuan.

  5. Tambahkan filter tren untuk menghindari perdagangan melawan tren utama.

  6. Uji teknik stop loss yang berbeda untuk menemukan kontrol risiko yang optimal.

  7. Uji jenis order yang berbeda untuk meminimalkan dampak slippage.

Kesimpulan

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)

Lebih banyak