
Chiến lược này là một hệ thống giao dịch phân tích kỹ thuật cao kết hợp các chỉ số tương đối mạnh mẽ (RSI) và vùng Brin (BB). Bằng cách sử dụng hai chỉ số này để tìm kiếm các cơ hội giao dịch đảo ngược có khả năng cao trong khu vực thị trường quá mua quá bán. Chiến lược sử dụng đường trung bình di chuyển 20 chu kỳ làm đường viền của vùng Brin, đặt trên đường đi với chênh lệch tiêu chuẩn gấp 2 lần, đồng thời sử dụng RSI 14 chu kỳ để phân tích động lực, tạo ra tín hiệu giao dịch khi RSI vượt qua 30⁄70 quan trọng và giá chạm biên giới vùng Brin.
Lập luận cốt lõi của chiến lược được xây dựng dựa trên sự phối hợp của hai chỉ số kỹ thuật chính:
Chiến lược này xây dựng một hệ thống giao dịch hoàn chỉnh thông qua sự phối hợp của RSI và Bollinger Bands. Nó không chỉ cung cấp các tín hiệu nhập cảnh và xuất cảnh rõ ràng, mà còn có cơ chế kiểm soát rủi ro tốt. Mặc dù có một số rủi ro vốn có, chiến lược này có khả năng duy trì hiệu suất ổn định trong các môi trường thị trường khác nhau thông qua việc tối ưu hóa và hoàn thiện liên tục. Thiết kế mô đun của chiến lược cũng cung cấp nền tảng tốt cho việc tối ưu hóa và mở rộng trong tương lai.
/*backtest
start: 2024-10-31 00:00:00
end: 2025-02-18 08:00:00
period: 30m
basePeriod: 30m
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("RSI + Bollinger Bands Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Bollinger Bands Settings
bbLength = input.int(20, title="BB Length")
bbStdDev = input.float(2.0, title="BB Standard Deviation")
basis = ta.sma(close, bbLength)
dev = bbStdDev * ta.stdev(close, bbLength)
upperBB = basis + dev
lowerBB = basis - dev
// Plot Bollinger Bands
plot(basis, color=color.orange, title="BB Basis")
plot(upperBB, color=color.blue, title="Upper Bollinger Band")
plot(lowerBB, color=color.blue, title="Lower Bollinger Band")
fill(plot(upperBB), plot(lowerBB), color=color.blue, transp=90, title="BB Fill")
// RSI Settings
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
rsi = ta.rsi(close, rsiLength)
// Plot RSI on separate pane
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, color=color.purple, title="RSI", linewidth=2, display=display.none) // Hidden on main chart
// Long Condition: RSI crosses above oversold and price touches lower BB
longCondition = ta.crossover(rsi, rsiOversold) and close <= lowerBB
if (longCondition)
strategy.entry("Long", strategy.long)
// Short Condition: RSI crosses below overbought and price touches upper BB
shortCondition = ta.crossunder(rsi, rsiOverbought) and close >= upperBB
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit Long: RSI crosses above overbought or price crosses above basis
exitLong = ta.crossunder(rsi, rsiOverbought) or close >= basis
if (exitLong)
strategy.close("Long")
// Exit Short: RSI crosses below oversold or price crosses below basis
exitShort = ta.crossover(rsi, rsiOversold) or close <= basis
if (exitShort)
strategy.close("Short")