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

Tác giả:ChaoZhang, Ngày: 2023-09-18 22:13:18
Tags:

Tất cả nội dung bằng tiếng Anh

Tổng quan

Chiến lược này xác định tín hiệu giao dịch bằng cách sử dụng chỉ số RSI để xác định điều kiện mua quá mức / bán quá mức và kết hợp với chỉ số Bollinger Bands để mô tả phạm vi dao động giá. Nó tạo ra tín hiệu mua và bán khi RSI hiển thị mức mua quá mức hoặc bán quá mức, trong khi giá đang tiếp cận hoặc chạm vào các dải trên hoặc dưới Bollinger Bands. Chiến lược tổng hợp phân tích xu hướng và phán quyết dao động để tìm kiếm cơ hội một cách năng động.

Chiến lược logic

Chiến lược này chủ yếu dựa trên hai chỉ số:

  1. Chỉ số RSI đánh giá mua quá mức / bán quá mức

Nó tính toán chỉ số RSI cho một khoảng thời gian nhất định và xác định xem nó có đi vào khu vực mua quá mức hoặc bán quá mức theo các thông số đã được đặt trước, như ngưỡng mua quá mức ở mức 40 và ngưỡng bán quá mức ở mức 45.

  1. Bollinger Bands cho thấy phạm vi dao động giá

Nó tính toán các Bollinger Bands cho một khoảng thời gian và sử dụng các dải trên và dưới để tạo thành một kênh giá, mô tả phạm vi dao động giá.

Dựa trên những điều trên, các quy tắc giao dịch là:

Khi chỉ số RSI vượt trên 45 vào vùng bán quá mức, và giá vượt trên dải dưới Bollinger, tạo tín hiệu mua. Khi chỉ số RSI vượt dưới 40 vào vùng mua quá mức, và giá vượt dưới dải trên Bollinger, tạo tín hiệu bán.

Phân tích lợi thế

Những lợi thế của việc kết hợp RSI và Bollinger Bands bao gồm:

  1. RSI xác định mức mua quá mức / bán quá mức, Bollinger Bands xác định hướng xu hướng giá, bổ sung cho nhau.

  2. Bollinger Bands có thể phục vụ như mức dừng lỗ để kiểm soát rủi ro.

  3. Các thông số đơn giản làm cho nó dễ dàng thực hiện và backtest.

  4. Các thông số RSI có thể được tối ưu hóa để xác định phạm vi mua/bán quá tốt nhất.

  5. Các đầu vào giá khác nhau có thể được sử dụng để thích nghi với các môi trường thị trường khác nhau.

Rủi ro và giải pháp

Ngoài ra còn có một số rủi ro với chiến lược này:

  1. Chiều rộng Bollinger Bands quá mức dẫn đến kỳ vọng dừng lỗ xấu.

    • Điều chỉnh tham số chiều rộng Bollinger Bands để tối ưu hóa phạm vi dừng lỗ.
  2. Cài đặt tham số RSI không chính xác gây ra đánh giá mức mua/bán quá mức không chính xác.

    • Tối ưu hóa các thông số RSI thông qua backtesting để xác định phạm vi giao dịch tối ưu.
  3. Không thể xác định chính xác các điểm đảo ngược xu hướng, nguy cơ mất tín hiệu.

    • Giảm thông số thời gian Bollinger Bands để bắt được sự đảo ngược xu hướng sớm hơn.
  4. Không thể kiểm soát hiệu quả lỗ, nguy cơ dừng lỗ bị ảnh hưởng bởi biến động giá đáng kể.

    • Thêm stop loss chuyển động hoặc động để tối ưu hóa các phương pháp stop loss.

Hướng dẫn cải thiện

Một số cách để tối ưu hóa chiến lược:

  1. Tối ưu hóa các thông số RSI để xác định phạm vi mua/bán quá mức lý tưởng.

  2. Tối ưu hóa tham số chiều rộng Bollinger Bands để kiểm soát phạm vi dừng lỗ.

  3. Thêm các chỉ số khác để xác định sự đảo ngược xu hướng và tránh mất tín hiệu.

  4. Áp dụng các mô hình học máy để xác định thời gian giao dịch.

  5. Sử dụng các bộ tham số khác nhau dựa trên môi trường thị trường khác nhau.

  6. Thêm cơ chế dừng lỗ năng động.

  7. Phát triển các chương trình tối ưu hóa tham số tự động.

Kết luận

Tóm lại, bằng cách kết hợp RSI và Bollinger Bands, chiến lược này tạo thành các quyết định giao dịch tương đối vững chắc. Logic đơn giản và rõ ràng, tốt cho kiểm soát rủi ro, nhưng có chỗ cho tối ưu hóa. Cải thiện thêm chiến lược thông qua tối ưu hóa tham số, tối ưu hóa stop loss, kết hợp thuật toán vv có thể làm cho nó thích nghi hơn với môi trường thị trường phức tạp. Chiến lược cung cấp các ý tưởng để xây dựng các hệ thống giao dịch và đáng để nghiên cứu và áp dụng thêm.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Mdemoio


//@version=4
strategy("Madri", shorttitle="Madri", overlay=true)


// Version 1.1


///////////// RSI
RSIlength = input(2,title="A") 
RSIoverSold = 45
RSIoverBought = 40
price = close
vrsi = rsi(price, RSIlength)


///////////// Bollinger Bands
BBlength = input(150, minval=1,title="B")
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)


///////////// 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="Buy")
    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="Sell")
    else
        strategy.cancel(id="RSI_BB_S")

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

Thêm nữa