Chiến lược này sử dụng chỉ số RSI để đánh giá tình trạng quá mức mua và bán, và kết hợp với kênh biến động giá của chỉ số Bollinger Bands để tạo ra tín hiệu giao dịch. Khi chỉ số RSI hiển thị quá mức mua hoặc quá mức bán, đồng thời giá gần hoặc chạm vào Bollinger Bands xuống đường, tạo ra tín hiệu mua và bán. Chiến lược phân tích xu hướng tổng hợp và đánh giá biến động, động lực tìm cơ hội.
Chiến lược này được đánh giá dựa trên hai chỉ số sau:
Tính toán chỉ số RSI tương đối mạnh trong một chu kỳ nhất định, dựa trên các tham số được đặt trước để xác định xem nó có đi vào vùng quá mua hay quá bán hay không, ví dụ như giới hạn trên của vùng quá mua được đặt ở mức 40 và giới hạn dưới của vùng quá bán được đặt ở mức 45.
Tính toán dải Brin trong một chu kỳ nhất định, tạo ra các kênh giá qua đường ray trên và dưới của nó, mô tả phạm vi biến động giá.
Trên cơ sở đó, chiến lược đưa ra các quy tắc giao dịch sau:
Khi chỉ số RSI vượt qua 45 và đi vào vùng bán tháo, và giá vượt qua Bollinger Bands xuống đường, tạo ra tín hiệu mua; Khi RSI vượt qua 40 và đi vào vùng bán tháo, và giá cả vượt qua Bollinger Bands, tạo ra một tín hiệu bán.
Chiến lược này kết hợp RSI với chỉ số Brin và có những lợi thế sau:
RSI đánh giá tình trạng quá mua quá bán, và Blink đánh giá xu hướng của giá cả, cả hai đều bổ sung cho nhau;
Brin đai trên và dưới đường ray có thể được định vị như một vị trí dừng lỗ, có lợi cho kiểm soát rủi ro;
Thiết lập tham số đơn giản, dễ thực hiện và phản hồi;
Có thể được tối ưu hóa cho các tham số RSI để xác định phạm vi bán tháo tốt nhất;
Bạn có thể chọn các giá nhập khác nhau để phù hợp với nhiều môi trường thị trường.
Chiến lược này cũng có một số rủi ro:
Phạm vi băng thông Brin quá rộng dẫn đến dự kiến dừng lỗ kém
RSI được thiết lập không đúng, đánh giá sai trong khoảng quá mua quá bán
Không thể xác định chính xác điểm đảo ngược xu hướng, có nguy cơ bị mất tín hiệu
Không có khả năng kiểm soát lỗ hổng hiệu quả, có nguy cơ dừng lỗ do cú sốc thị trường lớn
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Tối ưu hóa các tham số RSI để xác định phạm vi bán tháo tốt nhất
Tối ưu hóa tham số băng thông Brin, kiểm soát phạm vi dừng
Tham gia các chỉ số khác để đánh giá xu hướng đảo ngược, tránh bỏ lỡ tín hiệu
Ứng dụng thuật toán học máy để xác định thời điểm mua bán
Sử dụng các tham số khác nhau tùy theo môi trường thị trường khác nhau
Tăng cơ chế dừng lỗ động
Chương trình tự động tối ưu hóa các tham số phát triển
Tóm lại, chiến lược này được sử dụng kết hợp với chỉ số RSI và Bollinger Bands để tạo ra một nền tảng quyết định giao dịch ổn định hơn. Logic của chiến lược đơn giản và rõ ràng, có lợi cho kiểm soát rủi ro, nhưng cũng có một số không gian tối ưu hóa.
/*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)