Bollinger Band RSI Chiến lược đường song

Tác giả:ChaoZhang, Ngày: 2023-12-26 15:30:26
Tags:

img

Tổng quan

Chiến lược này kết hợp Bollinger Bands với chỉ số RSI (Relative Strength Index). Nó đòi hỏi tín hiệu từ cả hai chỉ số - RSI mua quá mức / bán quá mức cùng với việc phá vỡ các đường trên / dưới của Bollinger Bands - trước khi phát hành bất kỳ tín hiệu giao dịch nào. Điều này làm cho các tín hiệu của chiến lược trở nên nghiêm ngặt và đáng tin cậy hơn.

Chiến lược logic

  1. Tính toán Bollinger Bands bao gồm đường giữa, đường trên và đường dưới dựa trên giá đóng trong một khoảng thời gian nhìn lại.
  2. Tính toán chỉ số RSI để đánh giá xem thị trường có quá tăng hay giảm.
  3. Bắt đầu giao dịch ngắn chỉ khi RSI hiển thị quá mua (cao hơn tham số rsi_overbought) và giá phá vỡ trên đường trên Bollinger.
  4. Bắt đầu giao dịch dài chỉ khi chỉ số RSI cho thấy quá bán (dưới tham số rsi_oversold) và giá phá vỡ dưới đường dưới Bollinger.

Bằng cách yêu cầu sự đồng ý của cả hai Bollinger Bands và RSI, chiến lược này tránh hành động dựa trên các tín hiệu gây hiểu nhầm từ một chỉ số duy nhất, do đó đáng tin cậy hơn.

Ưu điểm

  1. Sử dụng điểm mạnh của cả Bollinger Bands và RSI, làm cho tín hiệu nghiêm ngặt hơn và tránh sai lầm.
  2. Bollinger Bands thiết lập các kênh năng động để nắm bắt các mô hình biến động thị trường.
  3. Chỉ số RSI chỉ ra các kịch bản mua quá mức / bán quá mức, ngăn chặn việc theo đuổi đỉnh hoặc giết chết giảm.

Rủi ro

  1. Các thông số Bollinger không chính xác có thể không bao bọc giá hiệu quả.
  2. Các thông số RSI không chính xác có thể không đánh giá chính xác các điều kiện mua/bán quá mức thực sự.
  3. Chính chiến lược không thể xác định hướng xu hướng, đòi hỏi các chỉ số khác.

Để giải quyết các rủi ro trên, các thông số nên được tối ưu hóa, các mô hình phải được kiểm tra nghiêm ngặt và các xu hướng chính được xác định bằng các chỉ số bổ sung.

Hướng dẫn tối ưu hóa

  1. Kiểm tra Bollinger Bands với các khoảng thời gian nhìn lại khác nhau để tìm các thông số tối ưu.
  2. Kiểm tra các thông số RSI khác nhau để xác định các cài đặt tương đối tốt hơn.
  3. Thêm các chỉ số khác như trung bình động để xác định xu hướng tổng thể.

Kết luận

Chiến lược này kết hợp thành công các điểm mạnh của Bollinger Bands và RSI, chỉ phát ra tín hiệu giao dịch khi cả hai chỉ số đều đồng ý. Điều này tránh hành động dựa trên các tín hiệu gây hiểu nhầm từ bất kỳ chỉ số nào, làm cho giao dịch đáng tin cậy hơn. Tuy nhiên, các thông số nên được tối ưu hóa, các mô hình được kiểm tra nghiêm ngặt và các xu hướng chính được xác định với các chỉ số khác, để tăng thêm sự ổn định và lợi nhuận của chiến lược.


/*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)

Thêm nữa