The Connors Dual Moving Average RSI Reversal Trading Strategy combines the Relative Strength Index (RSI) and dual moving averages to identify high probability reversal trading opportunities. When the short-term and long-term trends reverse direction, this strategy judges that the market is about to turn and establishes a position.
This strategy utilizes both RSI and dual moving averages to determine market trends. First, it calculates a 2-period RSI to judge short-term trend reversals. Second, it calculates a 200-period moving average to determine the long-term trend direction. When the short-term RSI bounces back from the overbought/oversold area and moves against the long-term trend, it signals that the market is about to reverse and a trading position can be established.
Entry signals: Go long when RSI is below the oversold area (default 5) and short-term price is above long-term price; Go short when RSI is above the overbought area (default 95) and short-term price is below long-term price.
Exit signals: Exit when the 5-period short-term moving average gives a signal opposite to the entry direction; or stop loss (default 3% loss).
This strategy combines multiple indicators to judge market structure and can improve the accuracy of trading. Specific advantages are:
There are some risks with this strategy:
This strategy can be optimized in several aspects:
The Connors Dual Moving Average RSI Reversal Trading Strategy captures market reversals at high probability positions by filtering RSI reversal signals with dual moving averages. This strategy utilizes multiple indicators to improve stability. Next, through parameter optimization and risk control improvements, it has the potential to further expand the advantages of the strategy and achieve higher trading efficiency.
/*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)