Chiến lược này là một cách tiếp cận giao dịch định lượng kết hợp các Bollinger Bands và Chỉ số Sức mạnh Tương đối (RSI). Nó nắm bắt các bước ngoặt của thị trường bằng cách phối hợp việc phá vỡ giá của Bollinger Bands với các khu vực mua quá mức / bán quá mức của RSI. Chiến lược sử dụng Bollinger Bands 20 giai đoạn và RSI 14 giai đoạn, nhập vào các vị trí dài khi giá phá vỡ dưới dải dưới trong khi RSI ở vùng bán quá mức và đóng các vị trí khi giá phá vỡ trên dải trên trong khi RSI ở vùng mua quá mức.
RSI được sử dụng để tính toán sức mạnh tương đối của các biến động giá để xác định các điều kiện mua quá mức / bán quá mức. Khi giá chạm vào dải dưới và RSI dưới 30, nó gợi ý các điều kiện bán quá mức tiềm năng và cơ hội phục hồi. Khi giá chạm vào dải trên và RSI trên 70, nó chỉ ra các điều kiện mua quá mức tiềm năng và rủi ro điều chỉnh. Việc xác thực chéo các chỉ số này làm tăng độ tin cậy của tín hiệu.
Đây là một chiến lược định lượng kết hợp sáng tạo các chỉ số kỹ thuật cổ điển Bollinger Bands và RSI. Thông qua các hiệu ứng bổ sung của các chỉ số này, nó đảm bảo độ tin cậy tín hiệu trong khi nắm bắt hiệu quả các điểm chuyển hướng của thị trường. Chiến lược có logic rõ ràng và tính toán đơn giản với tính thực tế mạnh mẽ. Mặc dù có một số rủi ro vốn có, các hướng tối ưu hóa được đề xuất có thể tăng cường sự ổn định và lợi nhuận của chiến lược. Chiến lược này phù hợp với thị trường xu hướng và có thể cung cấp các tham chiếu tín hiệu giao dịch khách quan cho các nhà đầu tư.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands + RSI Strategy", overlay=true) // Bollinger Bands length = 20 src = close mult = 2.0 basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // RSI rsiLength = 14 rsiOverbought = 70 rsiOversold = 30 rsiValue = ta.rsi(src, rsiLength) // Plot Bollinger Bands plot(basis, color=color.blue, linewidth=1) plot(upper, color=color.red, linewidth=1) plot(lower, color=color.green, linewidth=1) // Plot Buy/Sell signals buySignal = ta.crossover(close, lower) and rsiValue < rsiOversold sellSignal = ta.crossunder(close, upper) and rsiValue > rsiOverbought plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy Entry/Exit if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.close("Buy") // RSI Plot (not on overlay, for reference) rsiPlot = plot(rsiValue, title="RSI", color=color.purple, linewidth=1, offset=-1) hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green)