Bollinger + RSI Chiến lược đôi (Chỉ dài) v1.2

Tác giả:ChaoZhang, Ngày: 2023-12-08 10:39:52
Tags:

img

I. Tên của chiến lược

Bollinger Bands + Chiến lược dài gấp đôi RSI

II. Tổng quan chiến lược

Chiến lược này kết hợp chỉ số Bollinger Bands và chỉ số RSI để đi dài khi cả hai cho thấy tín hiệu bán quá mức và đóng vị trí dài khi cả hai cho thấy tín hiệu mua quá mức.

III. Nguyên tắc chiến lược

  1. Sử dụng chỉ số RSI để đánh giá quá mua / quá bán
    • RSI dưới 50 được coi là bán quá mức
    • RSI trên 50 được coi là mua quá mức
  2. Sử dụng Bollinger Bands để đánh giá mức giá cực đoan
    • Giá dưới dải thấp hơn là bán quá mức
    • Giá trên dải trên được mua quá mức
  3. Đi dài khi cả RSI và Bollinger Bands cho thấy tín hiệu bán quá mức
    • RSI dưới 50
    • Giá dưới đường Bollinger dưới
  4. Đóng vị trí dài khi cả RSI và Bollinger Bands cho thấy tín hiệu mua quá mức
    • RSI trên 50
    • Giá trên dải Bollinger trên

IV. Điểm mạnh của chiến lược

  1. Kết hợp hai chỉ số làm cho tín hiệu đáng tin cậy hơn và tránh tín hiệu sai
  2. Chỉ có các vị trí dài đơn giản hóa logic và giảm rủi ro giao dịch

V. Rủi ro chiến lược và giải pháp

  1. Thiết lập tham số Bollinger Bands không chính xác, các dải trên/dưới quá rộng làm tăng rủi ro giao dịch sai
    • Tối ưu hóa các thông số Bollinger Bands, thiết lập thời gian hợp lý và độ lệch chuẩn
  2. Thiết lập tham số RSI không chính xác, tiêu chuẩn mua quá mức / bán quá mức sai làm tăng rủi ro giao dịch sai
    • Tối ưu hóa các thông số RSI, điều chỉnh thời gian RSI, thiết lập các tiêu chuẩn mua/bán quá mức hợp lý
  3. Lợi nhuận kém khi thị trường không có xu hướng
    • Kết hợp với các chỉ số xu hướng để tránh thị trường hỗn loạn

VI. Định hướng tối ưu hóa chiến lược

  1. Tối ưu hóa Bollinger Bands và cài đặt tham số RSI
  2. Thêm cơ chế dừng lỗ
  3. Kết hợp với các chỉ số xu hướng như MACD
  4. Thêm kết hợp phân tích ngắn hạn và dài hạn

VII. Tóm tắt

Chiến lược này kết hợp các điểm mạnh của Bollinger Bands và chỉ số RSI để giao dịch khi cả hai đều hiển thị cực đoan. Điều này tránh các tín hiệu sai từ một chỉ số duy nhất và cải thiện độ chính xác tín hiệu. So với các phiên bản trước, chỉ thiết lập các vị trí dài làm giảm rủi ro giao dịch.


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

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

// ChartArt's RSI + Bollinger Bands, Double Strategy UPDATE: Long-Only
//
// Version 1.2
// Idea by ChartArt on October 4, 2017.
//
// This strategy uses the RSI indicator 
// together with the Bollinger Bands 
// to buy when the price is below the
// lower Bollinger Band (and to close the
// long trade when this value is above
// the upper Bollinger band).
//
// This simple strategy only longs when
// both the RSI and the Bollinger Bands
// indicators are at the same time in
// a oversold condition.
//
// In this new version 1.2 the strategy was
// simplified by going long-only, which made
// it 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
long = (crossover(vrsi, RSIoverSold) and crossover(source, BBlower))
close_long = (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper))

if (not na(vrsi))

    if long
        strategy.entry("RSI_BB", strategy.long, stop=BBlower, comment="RSI_BB")
    else
        strategy.cancel(id="RSI_BB")
        
    if close_long
        strategy.close("RSI_BB")


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

Thêm nữa