Chiến lược giao dịch đảo ngược Connors Dual Moving Average RSI kết hợp Chỉ số sức mạnh tương đối (RSI) và trung bình động kép để xác định các cơ hội giao dịch đảo ngược có khả năng cao. Khi xu hướng ngắn hạn và dài hạn đảo ngược hướng, chiến lược này đánh giá rằng thị trường sắp quay và thiết lập một vị trí.
Chiến lược này sử dụng cả chỉ số RSI và trung bình động kép để xác định xu hướng thị trường. Thứ nhất, nó tính toán chỉ số RSI 2 giai đoạn để đánh giá sự đảo ngược xu hướng ngắn hạn. Thứ hai, nó tính toán trung bình động 200 giai đoạn để xác định hướng xu hướng dài hạn. Khi chỉ số RSI ngắn hạn bật trở lại từ khu vực mua quá mức / bán quá mức và di chuyển chống lại xu hướng dài hạn, nó báo hiệu rằng thị trường sắp đảo ngược và một vị trí giao dịch có thể được thiết lập.
Các tín hiệu đầu vào: Đi dài khi RSI thấp hơn khu vực quá bán (bất định 5) và giá ngắn hạn cao hơn giá dài hạn; Đi ngắn khi RSI cao hơn khu vực quá mua (bất định 95) và giá ngắn hạn thấp hơn giá dài hạn.
Các tín hiệu thoát: thoát khi đường trung bình chuyển động ngắn hạn 5 giai đoạn cung cấp một tín hiệu ngược lại với hướng vào; hoặc dừng lỗ (mất 3% mặc định).
Chiến lược này kết hợp nhiều chỉ số để đánh giá cấu trúc thị trường và có thể cải thiện độ chính xác của giao dịch.
Có một số rủi ro với chiến lược này:
Chiến lược này có thể được tối ưu hóa trong một số khía cạnh:
Connors Dual Moving Average RSI Reversal Trading Strategy nắm bắt sự đảo ngược thị trường ở các vị trí có khả năng cao bằng cách lọc các tín hiệu đảo ngược RSI với các đường trung bình động kép. Chiến lược này sử dụng nhiều chỉ số để cải thiện tính ổn định.
/*backtest start: 2023-10-21 00:00:00 end: 2023-11-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Connors RSI-MA Strategy", overlay=true) // Strategy parameters rsiLength = input(2, title="RSI Length") maLength = input(200, title="MA Length") exitMaLength = input(5, title="Exit MA Length") overboughtThreshold = input(95, title="Overbought Threshold") oversoldThreshold = input(5, title="Oversold Threshold") stopLossPercentage = input(3, title="Stop Loss Percentage") // 2-period RSI rsi2 = ta.rsi(close, rsiLength) // 200-period MA ma200 = ta.sma(close, maLength) // 5-period MA for exit signals ma5_exit = ta.sma(close, exitMaLength) // Positive trend condition positiveTrend = close > ma200 // Negative trend condition negativeTrend = close < ma200 // Buy and sell conditions buyCondition = rsi2 < oversoldThreshold and positiveTrend sellCondition = rsi2 > overboughtThreshold and negativeTrend // Exit conditions exitLongCondition = close > ma5_exit exitShortCondition = close < ma5_exit // Stop Loss stopLossLevelLong = strategy.position_avg_price * (1 - stopLossPercentage / 100) stopLossLevelShort = strategy.position_avg_price * (1 + stopLossPercentage / 100) // Strategy logic if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.entry("Sell", strategy.short) if (exitLongCondition or close >= stopLossLevelLong) strategy.close("Buy") if (exitShortCondition or close <= stopLossLevelShort) strategy.close("Sell") // Plotting plot(ma200, title="200 MA", color=color.blue) plot(ma5_exit, title="Exit MA", color=color.red) // Plot stop loss levels plotshape(series=stopLossLevelLong, title="Long Stop Loss", color=color.green, style=shape.triangledown, size=size.small) plotshape(series=stopLossLevelShort, title="Short Stop Loss", color=color.red, style=shape.triangleup, size=size.small)