Bollinger Band RSI Dual Line Strategy

Penulis:ChaoZhang, Tanggal: 2023-12-26 15:30:26
Tag:

img

Gambaran umum

Strategi ini menggabungkan Bollinger Bands dengan Indeks Kekuatan Relatif (RSI). Ini membutuhkan sinyal dari kedua indikator - RSI overbought/oversold bersama dengan breakout dari Bollinger Bands upper/lower lines - sebelum mengeluarkan sinyal perdagangan. Hal ini membuat sinyal strategi lebih ketat dan dapat diandalkan.

Logika Strategi

  1. Menghitung Bollinger Bands yang terdiri dari garis tengah, garis atas dan garis bawah berdasarkan harga penutupan selama periode reviewback.
  2. Menghitung indikator RSI untuk menilai apakah pasar terlalu bullish atau bearish.
  3. Memulai perdagangan short hanya ketika RSI menunjukkan overbought (lebih tinggi dari parameter rsi_overbought) dan harga pecah di atas garis atas Bollinger.
  4. Memulai perdagangan panjang hanya ketika RSI menunjukkan oversold (lebih rendah dari parameter rsi_oversold) dan harga pecah di bawah garis bawah Bollinger.

Dengan membutuhkan persetujuan dari kedua Bollinger Bands dan RSI, strategi ini menghindari bertindak pada sinyal yang menyesatkan dari satu indikator, sehingga lebih dapat diandalkan.

Keuntungan

  1. Menggunakan kekuatan kedua Bollinger Bands dan RSI, membuat sinyal lebih ketat dan menghindari kesalahan.
  2. Bollinger Bands menetapkan saluran dinamis untuk menangkap pola volatilitas pasar.
  3. RSI mengukur skenario overbought/oversold, mencegah mengejar puncak atau membunuh penurunan.

Risiko

  1. Parameter Bollinger yang tidak tepat mungkin gagal untuk membungkus harga secara efektif.
  2. Parameter RSI yang tidak tepat mungkin gagal menilai kondisi overbought/oversold yang sebenarnya dengan akurat.
  3. Strategi itu sendiri tidak dapat menentukan arah tren, membutuhkan indikator lain.

Untuk mengatasi risiko di atas, parameter harus dioptimalkan, model harus diuji secara ketat, dan tren utama harus ditentukan dengan indikator tambahan.

Arahan Optimasi

  1. Uji Bollinger Band dengan periode lookback yang berbeda untuk menemukan parameter optimal.
  2. Uji parameter RSI yang berbeda untuk menentukan pengaturan yang relatif lebih baik.
  3. Tambahkan indikator lain seperti rata-rata bergerak untuk menentukan tren keseluruhan.

Kesimpulan

Strategi ini berhasil menggabungkan kekuatan Bollinger Bands dan RSI, mengeluarkan sinyal perdagangan hanya ketika kedua indikator setuju. Ini menghindari bertindak pada sinyal yang menyesatkan dari satu indikator, membuat perdagangan lebih dapat diandalkan. Namun, parameter harus dioptimalkan, model diuji secara ketat, dan tren utama ditentukan dengan indikator lain, untuk lebih meningkatkan stabilitas dan profitabilitas strategi.


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

//@version=2
strategy("Bollinger + RSI, Double Strategy (by ChartArt) v1.1", shorttitle="CA_-_RSI_Bol_Strat_1.1", overlay=true)

// ChartArt's RSI + Bollinger Bands, Double Strategy - Update
//
// Version 1.1
// Idea by ChartArt on January 18, 2015.
//
// This strategy uses the RSI indicator 
// together with the Bollinger Bands 
// to sell when the price is above the
// upper Bollinger Band (and to buy when
// this value is below the lower band).
//
// This simple strategy only triggers when
// both the RSI and the Bollinger Bands
// indicators are at the same time in
// a overbought or oversold condition.
//
// In this version 1.1 the strategy was
// both simplified for the user and
// made more successful in backtesting. 
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/
// 
//  __             __  ___       __  ___ 
// /  ` |__|  /\  |__)  |   /\  |__)  |  
// \__, |  | /~~\ |  \  |  /~~\ |  \  |  
// 
// 


///////////// RSI
RSIlength = input(6,title="RSI Period Length") 
RSIoverSold = 50
RSIoverBought = 50
price = close
vrsi = rsi(price, RSIlength)


///////////// Bollinger Bands
BBlength = input(200, minval=1,title="Bollinger Period Length")
BBmult = 2 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)
plot(BBbasis, color=aqua,title="Bollinger Bands SMA Basis Line")
p1 = plot(BBupper, color=silver,title="Bollinger Bands Upper Line")
p2 = plot(BBlower, color=silver,title="Bollinger Bands Lower Line")
fill(p1, p2)


///////////// Colors
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Background Color?")
TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? green : na
barcolor(switch1?TrendColor:na)
bgcolor(switch2?TrendColor:na,transp=50)


///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))

    if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower))
        strategy.entry("RSI_BB_L", strategy.long, stop=BBlower,  comment="RSI_BB_L")
    else
        strategy.cancel(id="RSI_BB_L")
        
    if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper))
        strategy.entry("RSI_BB_S", strategy.short, stop=BBupper,  comment="RSI_BB_S")
    else
        strategy.cancel(id="RSI_BB_S")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Lebih banyak