Đây là một chiến lược giao dịch định lượng dựa trên xác nhận đột phá đà tăng gấp đôi bằng cách sử dụng Williams %R và Chỉ số sức mạnh tương đối (RSI). Chiến lược xác định tín hiệu giao dịch thông qua sự đột phá chéo của hai chỉ số đà tăng, làm giảm hiệu quả nguy cơ đột phá sai. Nó tìm kiếm các cơ hội giao dịch trong các khu vực mua quá mức và bán quá mức, cải thiện độ chính xác giao dịch thông qua xác nhận lẫn nhau của cả hai chỉ số.
Chiến lược này sử dụng Williams %R 30 giai đoạn và RSI 7 giai đoạn như các chỉ số chính. Một tín hiệu mua được kích hoạt khi Williams %R vượt trên -80 và RSI đồng thời vượt trên 20; một tín hiệu bán được tạo ra khi Williams %R vượt dưới -20 và RSI đồng thời vượt dưới 80. Cơ chế xác nhận kép này lọc hiệu quả các tín hiệu sai tiềm ẩn từ các chỉ số duy nhất. Chiến lược thực hiện tính toán thủ công của Williams %R bằng cách tính toán giá cao nhất và thấp nhất trong giai đoạn cho các giá chỉ số chính xác hơn.
Chiến lược này xây dựng một hệ thống giao dịch mạnh mẽ thông qua sự phối hợp của Williams %R và RSI. Cơ chế xác nhận đà tăng gấp đôi có hiệu quả làm giảm rủi ro tín hiệu sai, trong khi giao dịch trong khu vực mua quá nhiều và bán quá nhiều mang lại tiềm năng lợi nhuận tốt. Thông qua kiểm soát rủi ro thích hợp và tối ưu hóa liên tục, chiến lược có thể duy trì hiệu suất ổn định trong các môi trường thị trường khác nhau.
/*backtest start: 2024-11-12 00:00:00 end: 2024-12-11 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Williams %R + RSI Strategy", overlay=true) // Inputs for Williams %R wpr_length = input.int(30, title="Williams %R Length", minval=1) wpr_upper = input.int(-20, title="Williams %R Upper Band", minval=-100, maxval=0) wpr_lower = input.int(-80, title="Williams %R Lower Band", minval=-100, maxval=0) // Inputs for RSI rsi_length = input.int(7, title="RSI Length", minval=1) rsi_upper = input.int(80, title="RSI Upper Band", minval=0, maxval=100) rsi_lower = input.int(20, title="RSI Lower Band", minval=0, maxval=100) // Calculate Williams %R Manually highest_high = ta.highest(high, wpr_length) lowest_low = ta.lowest(low, wpr_length) wpr = ((highest_high - close) / (highest_high - lowest_low)) * -100 // Calculate RSI rsi = ta.rsi(close, rsi_length) // Entry and Exit Conditions longCondition = ta.crossover(wpr, wpr_lower) and ta.crossover(rsi, rsi_lower) shortCondition = ta.crossunder(wpr, wpr_upper) and ta.crossunder(rsi, rsi_upper) // Plot Buy/Sell Signals plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy Entry and Exit if (longCondition) strategy.entry("Buy", strategy.long) if (shortCondition) strategy.entry("Sell", strategy.short)