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.
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.
Menggabungkan RSI dan BB memberikan isyarat yang lebih boleh dipercayai. RSI mengukur trend dan tahap overbought / oversold, BB mengenal pasti breakout.
RSI 30 tempoh menapis beberapa bunyi pasaran dan memberi tumpuan kepada trend utama.
BB 50 tempoh dengan 0.2 penyimpangan standard membantu menapis whipsaws.
Sempadan BBI menyaring pelarian palsu.
RSI zon panjang/pendek 52-65 dan 35-48 menyediakan penyangga untuk mengelakkan perdagangan yang terlepas.
Strategi breakout cenderung untuk terjebak dalam whipsaws, perlu menguruskan risiko dengan stop loss.
Hasil ujian belakang mungkin berlebihan, prestasi langsung mungkin berbeza.
Pergerakan pasaran yang melampau boleh menjejaskan stop loss yang mengakibatkan kerugian besar.
Parameter RSI dan BB termasuk tempoh dan ambang perlu dioptimumkan.
Harga pesanan boleh mempengaruhi prestasi secara langsung.
Uji kombinasi parameter RSI dan BB yang berbeza untuk mencari tetapan optimum.
Tambah penunjuk lain seperti MACD, KD untuk penapisan isyarat.
Mengoptimumkan zon panjang / pendek RSI untuk menapis lebih banyak bunyi bising.
Mengoptimumkan ambang BBI dinamik untuk menapis pemalsuan dengan lebih baik.
Tambah penapis trend untuk mengelakkan perdagangan terhadap trend utama.
Uji teknik stop loss yang berbeza untuk mencari kawalan risiko yang optimum.
Uji jenis pesanan yang berbeza untuk meminimumkan kesan slippage.
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)