RSI Bollinger Bands Chiến lược giao dịch

Tác giả:ChaoZhang, Ngày: 2024-01-24 14:56:02
Tags:

img

Tổng quan

Chiến lược này chủ yếu sử dụng chỉ số sức mạnh tương đối (RSI) kết hợp với Bollinger Bands để đánh giá tín hiệu giao dịch.

Chiến lược logic

Chiến lược đầu tiên tính toán chỉ số RSI và Bollinger Bands. Chỉ số RSI phản ánh sức mạnh tương đối của công cụ giao dịch. Khi chỉ số RSI nằm dưới vùng bán quá mức (thất định 30), điều đó có nghĩa là công cụ đã bán quá mức và nên mua. Bollinger Bands bao gồm dải trên, dải giữa và dải dưới, phản ánh tốt phạm vi biến động của giá. Mua gần dải dưới và bán gần dải trên có thể cung cấp các tín hiệu tương đối đáng tin cậy. Chiến lược này kết hợp chỉ số RSI và Bollinger Bands để đánh giá tín hiệu giao dịch. Nó tạo ra tín hiệu mua khi chỉ số RSI tăng từ vùng bán quá mức lên trên nó (thất định 30), và giá tăng từ dải dưới xuống trên nó; nó tạo ra tín hiệu bán khi chỉ số RSI giảm từ dải mua quá mức xuống dưới nó (thất định 70), và từ dải trên xuống dưới nó.

Ưu điểm

  1. Kết hợp RSI và Bollinger Bands cải thiện độ chính xác tín hiệu
  2. RSI lọc ra một số tiếng ồn
  3. Bollinger Bands phản ánh phạm vi biến động thị trường hiện tại, tín hiệu đáng tin cậy
  4. Quy tắc giao dịch nghiêm ngặt, tránh giao dịch không hợp lệ

Rủi ro

  1. Các thông số Bollinger Bands không chính xác có thể gây ra tín hiệu không chính xác
  2. RSI không phù hợp thiết lập vùng mua quá mức / bán quá mức có thể ảnh hưởng đến phán đoán
  3. Chiến lược nghiêm ngặt, có thể bỏ lỡ một số cơ hội.

Giải pháp:

  1. Tối ưu hóa Bollinger Bands và các thông số RSI để tìm sự kết hợp tốt nhất
  2. Thư giãn điều kiện vừa phải, cho phép một số thương mại không hợp lệ cho nhiều cơ hội hơn

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

  1. Kiểm tra và tối ưu hóa các thông số RSI và Bollinger cho tối ưu
  2. Thêm stop loss để kiểm soát rủi ro
  3. Xem xét thêm các chỉ số khác như MACD để xác minh tín hiệu
  4. Kết quả tối ưu hóa thử nghiệm trên các sản phẩm và khung thời gian khác nhau

Tóm lại

Chiến lược tổng thể là mạnh mẽ, kết hợp hiệu quả RSI và Bollinger Bands để dừng lỗ. Cải thiện hơn nữa có thể đạt được bằng cách kiểm tra và tối ưu hóa các tham số. Cũng cần phải nhận thức được các rủi ro mất tín hiệu tiềm năng do các quy tắc nghiêm ngặt. Nói chung, đây là một chiến lược giao dịch định lượng đáng tin cậy.


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

//@version=2
strategy("BB + RSI 20MIN,", shorttitle="BBRSI 20MIN", overlay=true )
     
     // Strategy Tester Start Time
sYear = input(2019, title = "Start Year")
sMonth = input(04, title = "Start Month", minval = 01, maxval = 12)
sDay = input(01, title = "Start Day", minval = 01, maxval = 31)
sHour = input(00, title = "Start Hour", minval = 00, maxval = 23)
sMinute = input(00, title = "Start Minute", minval = 00, maxval = 59)
startTime = true


///////////// RSI
RSIlength = input(9,title="RSI Period Length") 
RSIoverSold = input(30, minval=1,title="RSIL")
RSIoverBought = input(69, minval=1,title="RSIh")
price = open
vrsi = rsi(price, RSIlength)


///////////// Bollinger Bands
BBlength = input(60, minval=1,title="Bollinger Period Length")
BBmult = input(2.0, minval=0.001, maxval=50,title="Bb")
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 and startTime, 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 and startTime, 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