Bollinger Band RSI Dual Line Strategy

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

img

Ringkasan

Strategi ini menggabungkan Bollinger Bands dengan penunjuk Indeks Kekuatan Relatif (RSI). Ia memerlukan isyarat dari kedua-dua penunjuk - RSI overbought / oversold bersama-sama dengan pecah garis atas / bawah Bollinger Bands - sebelum mengeluarkan sebarang isyarat perdagangan. Ini menjadikan isyarat strategi lebih ketat dan boleh dipercayai.

Logika Strategi

  1. Mengira Bollinger Band yang terdiri daripada garisan tengah, garisan atas dan garisan bawah berdasarkan harga penutupan dalam tempoh penglihatan.
  2. Mengira penunjuk RSI untuk menilai jika pasaran terlalu bullish atau bearish.
  3. Memulakan perdagangan pendek hanya apabila RSI menunjukkan overbought (lebih tinggi daripada parameter rsi_overbought) dan harga pecah di atas garis atas Bollinger.
  4. Memulakan perdagangan panjang hanya apabila RSI menunjukkan oversold (lebih rendah daripada parameter rsi_oversold) dan harga pecah di bawah garis bawah Bollinger.

Dengan memerlukan persetujuan dari kedua-dua Bollinger Bands dan RSI, strategi ini mengelakkan bertindak atas isyarat yang mengelirukan dari satu petunjuk, oleh itu lebih dipercayai.

Kelebihan

  1. Menggunakan kekuatan kedua-dua Bollinger Bands dan RSI, menjadikan isyarat lebih ketat dan mengelakkan kesilapan.
  2. Bollinger Bands menetapkan saluran dinamik untuk menangkap corak turun naik pasaran.
  3. RSI mengukur senario overbought/oversold, menghalang mengejar puncak atau membunuh penurunan.

Risiko

  1. Parameter Bollinger yang tidak betul mungkin gagal untuk membungkus harga dengan berkesan.
  2. Parameter RSI yang tidak betul mungkin gagal menilai keadaan overbought/oversold yang sebenar dengan tepat.
  3. Strategi itu sendiri tidak dapat menentukan arah trend, memerlukan penunjuk lain.

Untuk menangani risiko di atas, parameter harus dioptimumkan, model diuji dengan ketat, dan trend utama ditentukan dengan penunjuk tambahan.

Arahan pengoptimuman

  1. Uji Bollinger Bands dengan tempoh yang berbeza untuk mencari parameter optimum.
  2. Uji parameter RSI yang berbeza untuk menentukan tetapan yang agak lebih baik.
  3. Tambah penunjuk lain seperti purata bergerak untuk menentukan trend keseluruhan.

Kesimpulan

Strategi ini berjaya menggabungkan kekuatan Bollinger Bands dan RSI, mengeluarkan isyarat perdagangan hanya apabila kedua-dua penunjuk bersetuju. Ini mengelakkan bertindak pada isyarat yang menyesatkan dari mana-mana penunjuk tunggal, menjadikan perdagangan lebih boleh dipercayai. Walau bagaimanapun, parameter harus dioptimumkan, model diuji dengan ketat, dan trend utama ditentukan dengan penunjuk lain, untuk meningkatkan lagi kestabilan dan keuntungan 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 lanjut