
Chiến lược này dựa trên hai chỉ số kỹ thuật Bollinger Band và chỉ số tương đối mạnh RSI, được sử dụng để giao dịch trong xu hướng tăng. Logic của chiến lược đơn giản nhưng hiệu quả: mở nhiều khi giá giảm xuống đường Bollinger Band và RSI thấp hơn 35, đồng thời mở nhiều khi RSI vượt qua 69.
Tính RSI: Sử dụng RMA (Relative Moving Average) để tính trung bình mức tăng và giảm của giá, sau đó chia mức tăng lên để có được RSI. RSI phản ánh sức mạnh của giá trong một khoảng thời gian.
Tính phân đoạn Brin: sử dụng SMA để tính giá trung bình, sau đó cộng trừ chênh lệch tiêu chuẩn để có được đường lên xuống. Brin có thể phản ánh động lực của giá.
Bán nhiều: Bán nhiều khi giá giảm xuống đường Brin và RSI dưới 35 để đánh giá là bán quá mức. Cả hai điều kiện này có thể bắt kịp thời điểm đảo ngược lên.
Bán nhiều: Khi RSI vượt qua mức 69, đánh giá là quá mua, tại thời điểm này xóa vị trí nhiều đầu, khóa lợi nhuận.
Hạn chế dừng lỗ: Sau khi mở vị trí, giá dừng và giá dừng lỗ được tính theo tỷ lệ phần trăm mà người dùng đã thiết lập. Khi chạm vào giá dừng hoặc giá dừng lỗ, giá trơn. Điều này giúp kiểm soát rủi ro và lợi nhuận của mỗi giao dịch.
Brines có thể phản ánh khách quan các khoảng cách của giá, điều chỉnh đồng bộ với xu hướng giá, không bị giới hạn bởi sự suy giảm giá cố định.
RSI có thể phản ánh một cách trực quan hơn so với so sánh sức mạnh không gian, cũng tương đối khách quan, và thường được sử dụng để đánh giá quá mua quá bán.
Sử dụng trong xu hướng tăng, thích hợp hơn cho giao dịch dao động. Bằng cách Bollinger Band Down và RSI thấp để nắm bắt sự phục hồi của giá, bằng RSI cao để thanh toán kịp thời, có thể nắm bắt hiệu quả tình trạng của làn sóng.
Cài đặt Stop Loss cho phép kiểm soát rủi ro chiến lược và các nhà đầu tư có thể đặt các tham số linh hoạt theo sở thích rủi ro của họ.
Lịch lý và mã của chiến lược tương đối đơn giản, dễ hiểu và thực hiện, và kết quả đo lường tương đối ổn định.
Đối với các tình huống chấn động, BRI và RSI có thể phát ra nhiều tín hiệu giao dịch, dẫn đến tần suất giao dịch quá cao và chi phí phí gia tăng.
Chỉ số đơn lẻ như RSI dễ bị ảnh hưởng bởi biến động giá ngắn hạn, tạo ra tín hiệu sai lệch. Do đó, tín hiệu RSI tốt nhất được phân tích kết hợp với các động thái giá.
Sự lựa chọn của các tham số Brin và RSI có ảnh hưởng lớn đến hiệu suất của chiến lược, các thị trường và giống khác nhau có thể yêu cầu các tham số khác nhau. Người dùng cần điều chỉnh thích hợp theo tình huống cụ thể.
Trong trường hợp bất thường như sự kiện đột ngột, Brin và RSI có thể bị mất hiệu lực. Nếu không có các biện pháp kiểm soát khác, thì có thể dẫn đến sự rút lui lớn hơn cho chiến lược.
Các chỉ số kỹ thuật khác như trung bình di chuyển có thể được xem xét để đưa vào như là một bộ lọc, chẳng hạn như chỉ mở lệnh khi MA được sắp xếp nhiều đầu, để tăng độ tin cậy của tín hiệu.
RSI có thể được tối ưu hóa để tìm ra sự kết hợp của các tham số hoạt động tốt nhất trong mỗi giống và mỗi chu kỳ.
Có thể thử nghiệm về phía trước dựa trên phản hồi, và thực hiện giao dịch mô phỏng, xác minh đầy đủ tính hiệu quả và ổn định của chiến lược trước khi thực hiện.
Có thể kiểm soát thêm sự rút lui của chiến lược bằng cách quản lý vị trí, dừng lỗ động và các phương pháp khác để tăng lợi nhuận khi điều chỉnh rủi ro.
Chiến lược này có thể được đưa vào danh mục đầu tư và được bảo vệ với các chiến lược khác, thay vì sử dụng một cách độc lập, để tăng sự ổn định của danh mục đầu tư.
Bài viết này giới thiệu về một chiến lược giao dịch đa đầu dao động dựa trên hai chỉ số kỹ thuật của Brin và RSI. Chiến lược này phù hợp để nắm bắt các tình huống trong các đợt sóng trong xu hướng tăng, logic và thực hiện là tương đối đơn giản. Thông qua Brin và RSI thấp mở nhiều, RSI cao bằng nhau, đồng thời thiết lập điểm dừng.
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Bollinger Band with RSI", shorttitle="BB&RSI")
len = input(14, minval=1, title="Length")
src = input(close, "Source", type = input.source)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, "RSI", color=#8E1599)
band1 = hline(69, "Upper Band", color=#C0C0C0)
band0 = hline(31, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")
length_bb = input(20,title="BB Length", minval=1)
mult = input(2.0, minval=0.001, maxval=50, title="BB StdDev")
basis = sma(src, length_bb)
dev = mult * stdev(src, length_bb)
upper = basis + dev
lower = basis - dev
offset = input(0, "BB Offset", type = input.integer, minval = -500, maxval = 500)
Plot_PnL = input(title="Plot Cummulative PnL", type=input.bool, defval=false)
Plot_Pos = input(title="Plot Current Position Size", type=input.bool, defval=false)
long_tp_inp = input(10, title='Long Take Profit %', step=0.1)/100
long_sl_inp = input(25, title='Long Stop Loss %', step=0.1)/100
// Take profit/stop loss
long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)
entry_long = rsi < 35.58 and src < lower
exit_long = rsi > 69
plotshape(entry_long, style=shape.labelup, color=color.green, location=location.bottom, text="L", textcolor=color.white, title="LONG_ORDER")
plotshape(exit_long, style=shape.labeldown, color=color.red, location=location.top, text="S", textcolor=color.white, title="SHORT_ORDER")
strategy.entry("Long",true,when=entry_long)
strategy.exit("TP/SL","Long", limit=long_take_level, stop=long_stop_level)
strategy.close("Long", when=exit_long, comment="Exit")
plot(Plot_PnL ? strategy.equity-strategy.initial_capital : na, title="PnL", color=color.red)
plot(Plot_Pos ? strategy.position_size : na, title="open_position", color=color.fuchsia)