Bollinger Bands dan Trend RSI Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2023-12-20 14:32:40
Tag:

img

Ringkasan

Strategi ini menggunakan Bollinger Bands, penunjuk RSI dan purata bergerak 200 tempoh untuk mengenal pasti arah trend dan memasuki perdagangan kontra-trend berhampiran Bollinger Bands apabila arah trend sesuai, untuk membuat keuntungan.

Logika Strategi

Pertama, purata bergerak 200 tempoh digunakan untuk menentukan arah trend keseluruhan. Trend menaik ditakrifkan apabila harga berada di atas purata bergerak, dan trend menurun ditakrifkan apabila harga berada di bawah. Kedua, apabila dalam trend menaik, entri panjang dilaksanakan jika penunjuk RSI menunjukkan oversold dan mendekati Bollinger Lower Band; apabila dalam trend menurun, entri pendek dilaksanakan jika RSI menunjukkan overbought dan mendekati Bollinger Upper Band. Akhirnya, penunjuk ATR digunakan untuk menetapkan tahap stop loss, dan mengambil keuntungan ditetapkan menjadi 2 kali stop loss.

Analisis Kelebihan

Kelebihan terbesar strategi ini ialah ia menggabungkan beberapa penunjuk untuk menentukan arah trend dan masa kemasukan. Pertama, purata bergerak 200 hari dapat mengenal pasti trend utama dengan berkesan. Kedua, Band Atas / Bawah Bollinger Band menunjukkan kawasan di mana harga mungkin berbalik. Akhirnya, RSI mencadangkan kemungkinan masa pembalikan. Penggunaan beberapa penunjuk mengelakkan risiko salah menilai dari satu sahaja.

Analisis Risiko

Risiko utama strategi ini berasal dari pengenalan yang tidak tepat terhadap trend utama dan isyarat pembalikan. Jika trend itu salah dinilai, ia boleh membawa kepada kerugian berturut-turut. Jika isyarat pembalikan salah, kemungkinan stop loss yang dicetuskan akan tinggi. Juga, perdagangan kontra-trend itu sendiri mempunyai risiko yang lebih tinggi yang memerlukan operasi yang berhati-hati.

Untuk mengurangkan risiko di atas, adalah dinasihatkan untuk menyesuaikan parameter purata bergerak atau menambah penunjuk lain untuk pengesahan, untuk meningkatkan ketepatan.

Arahan pengoptimuman

Terdapat ruang yang besar untuk mengoptimumkan strategi ini: pertama, menyesuaikan parameter purata bergerak untuk meningkatkan ketepatan pengenalan trend. Kedua, menyesuaikan parameter Bollinger Bands atau menambah Saluran Kalman untuk mencari zon pembalikan yang lebih baik. Ketiga, menambah penunjuk lain seperti MACD untuk pengesahan untuk mengelakkan isyarat yang salah. Keempat, mengoptimumkan tetapan nisbah stop loss untuk mengurangkan kemungkinan peristiwa stop loss sebenar.

Kesimpulan

Strategi ini menggabungkan Bollinger Bands, RSI dan Moving Averages untuk menentukan trend dan waktu, dan telah mencapai hasil yang baik. Tetapi pengoptimuman lanjut pada penyesuaian parameter dan kawalan risiko diperlukan untuk meningkatkan kestabilan keuntungan. Secara keseluruhan, dengan logika yang jelas dan pelaksanaan yang mudah, ia bernilai penyelidikan dan aplikasi lanjut.


/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Gab EMA + rsi + bb", overlay=true)
// Custom RSI
RSIlength = input(3, minval=1 , title="lookback length of RSI")
RSIOverBought = input(70, title="RSI OB")
RSIOverSold = input(30, title="RSI OS")
RSIprice = close
vrsi = rsi(RSIprice, RSIlength)


//Bollinger Bands
BBlength = input(20, minval=1,title="Bollinger Period Length")
BBmult = input(2.0, minval=0.001, maxval=50, title="Bollinger Bands Standard Deviation")
BBbasis = sma(close, BBlength)
BBdev = BBmult * stdev(close, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close

//EMA
emaLength=input(200)

//Set TP and SL values
sl_short = high + (syminfo.mintick * 5 * 10)
tp_short = low - (syminfo.mintick * 10 * 10)
sl_long = low - (syminfo.mintick * 5 * 10)
tp_long = high + (syminfo.mintick * 10 * 10)


//Strategy Entry and Exit
strategy.entry("sell", strategy.short, when = low < ema(low, emaLength) and vrsi < RSIOverSold and low < BBlower and barstate.isconfirmed)
strategy.exit("closeshort", from_entry="sell", limit=tp_short, stop=sl_short, when=strategy.position_size != 0)

strategy.entry("buy", strategy.long, when = high > ema(high, emaLength) and vrsi > RSIOverBought and high > BBupper and barstate.isconfirmed)
strategy.exit("closelong", from_entry="buy", limit=tp_long, stop=sl_long, when=strategy.position_size != 0)



  

Lebih lanjut