RSI-BB Momentum Breakout Strategy

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

img

Ringkasan

RSI-BB strategi momentum breakout menggabungkan Indeks Kekuatan Relatif (RSI) dan Bollinger Bands (BB) penunjuk untuk perdagangan breakout. Ia menggunakan RSI untuk menentukan trend pasaran dan tahap overbought / oversold, dan BB untuk mengenal pasti titik breakout. Apabila kedua-dua isyarat RSI dan BB sejajar, strategi akan memasuki perdagangan panjang atau pendek dengan sewajarnya.

Logika Strategi

Kod ini pertama mengira penunjuk RSI dan BB.

RSI dikira 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 dalam 30 tempoh, ke bawah mengukur pergerakan harga ke bawah, dan rsi dikira berdasarkan nisbah naik ke bawah.

BB dikira sebagai:

basis = sma(close, 50)
dev = 0.2 * stdev(close, 50)
upper = basis + dev
lower = basis - dev

Di mana asas adalah purata bergerak 50 tempoh, dev adalah 0.2 kali penyimpangan piawai, atas dan bawah adalah jalur.

bbi ialah indeks lebar jalur bollinger, dikira sebagai:

bbr = close>upper? 1 : close<lower? -1 : 0 
bbi = bbr - bbr[1]

bbr memeriksa sama ada berhampiran pecah jalur atas atau bawah. Pecahan adalah 1, pemecahan adalah -1, sebaliknya 0. bbi adalah perbezaan antara bbr semasa dan sebelumnya. bbi positif menunjukkan pecah ke atas, negatif menunjukkan ke bawah.

Isyarat 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 apabila RSI adalah antara 52-65 dan BBI adalah antara 0.11 dan 0.7.

Kelebihan

  1. Menggabungkan RSI dan BB memberikan isyarat yang lebih boleh dipercayai. RSI mengukur trend dan tahap overbought / oversold, BB mengenal pasti breakout.

  2. RSI 30 tempoh menapis beberapa bunyi pasaran dan memberi tumpuan kepada trend utama.

  3. BB 50 tempoh dengan 0.2 penyimpangan standard membantu menapis whipsaws.

  4. Sempadan BBI menyaring pelarian palsu.

  5. RSI zon panjang/pendek 52-65 dan 35-48 menyediakan penyangga untuk mengelakkan perdagangan yang terlepas.

Risiko

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

  2. Hasil ujian belakang mungkin berlebihan, prestasi langsung mungkin berbeza.

  3. Pergerakan pasaran yang melampau boleh menjejaskan stop loss yang mengakibatkan kerugian besar.

  4. Parameter RSI dan BB termasuk tempoh dan ambang perlu dioptimumkan.

  5. Harga pesanan boleh mempengaruhi prestasi secara langsung.

Peluang Peningkatan

  1. Uji kombinasi parameter RSI dan BB yang berbeza untuk mencari tetapan optimum.

  2. Tambah penunjuk lain seperti MACD, KD untuk penapisan isyarat.

  3. Mengoptimumkan zon panjang / pendek RSI untuk menapis lebih banyak bunyi bising.

  4. Mengoptimumkan ambang BBI dinamik untuk menapis pemalsuan dengan lebih baik.

  5. Tambah penapis trend untuk mengelakkan perdagangan terhadap trend utama.

  6. Uji teknik stop loss yang berbeza untuk mencari kawalan risiko yang optimum.

  7. Uji jenis pesanan yang berbeza untuk meminimumkan kesan slippage.

Kesimpulan

Strategi RSI-BB menggabungkan kelebihan menggunakan penunjuk trend dan momentum. Hasil ujian belakang menjanjikan tetapi prestasi langsung mungkin berbeza kerana faktor dunia sebenar seperti slippage dan stop loss. Parameter dan penapis perlu dioptimumkan berdasarkan hasil ujian belakang. Stop loss dan penempatan pesanan juga harus dinilai untuk keberkesanan dunia nyata. Strategi ini mempunyai merit tetapi memerlukan peningkatan berterusan dan ujian kestabilan 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 lanjut