RSI-BB Momentum Breakout chiến lược

Tác giả:ChaoZhang, Ngày: 2023-11-03 15:02:19
Tags:

img

Tổng quan

Chiến lược đột phá RSI-BB kết hợp các chỉ số Relative Strength Index (RSI) và Bollinger Bands (BB) để giao dịch đột phá. Nó sử dụng RSI để xác định xu hướng thị trường và mức mua quá mức / bán quá mức, và BB để xác định các điểm đột phá. Khi cả hai tín hiệu RSI và BB liên kết, chiến lược sẽ vào giao dịch dài hoặc ngắn theo đó.

Chiến lược logic

Mã đầu tiên tính toán các chỉ số RSI và BB.

RSI được tính như sau:

up = rma(max(change(close), 0), 30)
down = rma(-min(change(close), 0), 30) 
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

Trong khi tăng đo xu hướng tăng giá trong 30 khoảng thời gian, giảm đo xu hướng giảm giá, và rsi được tính dựa trên tỷ lệ tăng xuống.

BB được tính như sau:

basis = sma(close, 50)
dev = 0.2 * stdev(close, 50)
upper = basis + dev
lower = basis - dev

Trong đó cơ sở là trung bình động 50 giai đoạn, dev là 0,2 lần độ lệch chuẩn, trên và dưới là các băng tần.

bbi là chỉ số băng thông bollinger, được tính như sau:

bbr = close>upper? 1 : close<lower? -1 : 0 
bbi = bbr - bbr[1]

bbr kiểm tra xem gần có phá vỡ dải trên hoặc dưới không. Breakout là 1, phá vỡ là -1, nếu không thì 0. bbi là sự khác biệt giữa bbr hiện tại và trước đó.

Các tín hiệu chiến lược được xác định như sau:

long = rsi>52 and rsi<65 and bbi>0.11 and bbi<0.7
short = rsi<48 and rsi>35 and bbi<-0.11 and bbi>-0.7 

Đi dài khi RSI nằm trong khoảng 52-65 và BBI nằm trong khoảng 0,11 và 0,7.

Ưu điểm

  1. Kết hợp RSI và BB cung cấp các tín hiệu đáng tin cậy hơn. RSI đo xu hướng và mức mua quá mức / bán quá mức, BB xác định đột phá.

  2. Chỉ số RSI 30 giai đoạn lọc ra một số tiếng ồn thị trường và tập trung vào các xu hướng chính.

  3. BB 50 giai đoạn với 0,2 độ lệch chuẩn giúp lọc ra các whipsaws.

  4. Các ngưỡng BBI lọc các vụ trốn thoát giả.

  5. Các vùng RSI dài / ngắn 52-65 và 35-48 cung cấp một số đệm để tránh các giao dịch bị bỏ lỡ.

Rủi ro

  1. Các chiến lược breakout có xu hướng bị mắc kẹt trong các whipsaws, cần phải quản lý rủi ro bằng cách dừng lỗ.

  2. Kết quả thử nghiệm có thể bị quá tải, hiệu suất thực tế có thể thay đổi.

  3. Các động thái thị trường cực đoan có thể gây ra lỗ dừng dẫn đến lỗ lớn.

  4. Các thông số RSI và BB bao gồm thời gian và ngưỡng cần được tối ưu hóa.

  5. Giá đặt hàng có thể ảnh hưởng đáng kể đến hiệu suất trực tiếp.

Cơ hội gia tăng

  1. Kiểm tra các kết hợp khác nhau của các thông số RSI và BB để tìm các thiết lập tối ưu.

  2. Thêm các chỉ số khác như MACD, KD để lọc tín hiệu.

  3. Tối ưu hóa các vùng RSI dài / ngắn để lọc ra nhiều tiếng ồn hơn.

  4. Tối ưu hóa các ngưỡng BBI động để lọc tốt hơn các giả mạo.

  5. Thêm bộ lọc xu hướng để tránh giao dịch chống lại xu hướng chính.

  6. Kiểm tra các kỹ thuật dừng lỗ khác nhau để tìm kiểm soát rủi ro tối ưu.

  7. Kiểm tra các loại lệnh khác nhau để giảm thiểu tác động trượt.

Kết luận

Chiến lược RSI-BB kết hợp các lợi thế của việc sử dụng các chỉ số xu hướng và động lực. Kết quả kiểm tra lại hứa hẹn nhưng hiệu suất trực tiếp có thể thay đổi do các yếu tố thực tế như trượt và dừng lỗ. Các thông số và bộ lọc cần được tối ưu hóa dựa trên kết quả kiểm tra lại.


/*backtest
start: 2023-10-03 00:00:00
end: 2023-11-02 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Based on Larry Connors RSI-2 Strategy - Lower RSI
strategy(title="Spyfrat Strat", shorttitle="SpyfratStrat", overlay=true)
src = close, 
// BB Init
source = close
length = input(50, minval=1)
mult = input(0.2, title="Mult Factor", minval=0.001, maxval=50)
alertLevel=input(0.1)
impulseLevel=input(0.75)
showRange = input(false, type=bool)
//RSI CODE
up = rma(max(change(src), 0), 30)
down = rma(-min(change(src), 0), 30)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//BB CODE
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.1
bbi = bbr - nz(bbr[1]) 
//Rule
long = rsi>52 and rsi<65 and  bbi>0.11 and bbi<0.7
short = rsi<48 and rsi>35 and  bbi<-0.11 and bbi>-0.7
//Trade Entry
strategy.entry("long", strategy.long, when=long)
strategy.entry("short", strategy.short, when=short)
//Trade Exit
TP = input(250) * 10
SL = input(20) * 10
TS = input(0) * 10
CQ = 100

TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na

strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)

Thêm nữa