This strategy is a composite trading system that combines Stochastic Relative Strength Index (Stochastic RSI) with candlestick pattern confirmation. The system generates automated trading signals by analyzing SRSI indicator’s overbought and oversold levels along with price action confirmation through candlestick patterns. The strategy employs advanced technical indicator combinations, incorporating both trend-following and reversal trading characteristics, demonstrating strong market adaptability.
The core logic of the strategy is built on several key elements:
This strategy constructs a robust trading system by combining Stochastic RSI indicators with candlestick patterns. While maintaining operational simplicity, the system achieves effective risk control. Through appropriate parameter optimization and signal filtering, the strategy can adapt to various market environments. Traders are advised to conduct thorough historical data backtesting and adjust parameters according to specific market characteristics before live implementation.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Stochastic RSI Strategy with Candlestick Confirmation", overlay=true) // Input parameters for Stochastic RSI rsiPeriod = input.int(14, title="RSI Period") stochRsiPeriod = input.int(14, title="Stochastic RSI Period") kPeriod = input.int(3, title="K Period") dPeriod = input.int(3, title="D Period") // Overbought and Oversold levels overboughtLevel = input.int(80, title="Overbought Level", minval=50, maxval=100) oversoldLevel = input.int(20, title="Oversold Level", minval=0, maxval=50) // Calculate RSI rsi = ta.rsi(close, rsiPeriod) // Calculate Stochastic RSI stochRSI = ta.stoch(rsi, rsi, rsi, stochRsiPeriod) // Stochastic RSI calculation using the RSI values // Apply smoothing to StochRSI K and D lines k = ta.sma(stochRSI, kPeriod) d = ta.sma(k, dPeriod) // Plot Stochastic RSI on separate panel plot(k, title="StochRSI K", color=color.green, linewidth=2) plot(d, title="StochRSI D", color=color.red, linewidth=2) hline(overboughtLevel, "Overbought", color=color.red, linestyle=hline.style_dashed) hline(oversoldLevel, "Oversold", color=color.green, linestyle=hline.style_dashed) // Buy and Sell Signals based on both Stochastic RSI and Candlestick patterns buySignal = ta.crossover(k, oversoldLevel) and close > open // Buy when K crosses above oversold level and close > open (bullish candle) sellSignal = ta.crossunder(k, overboughtLevel) and close < open // Sell when K crosses below overbought level and close < open (bearish candle) // Plot Buy/Sell signals as shapes on the chart plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small) plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small) // Background color shading for overbought/oversold conditions bgcolor(k > overboughtLevel ? color.new(color.red, 90) : na) bgcolor(k < oversoldLevel ? color.new(color.green, 90) : na) // Place actual orders with Stochastic RSI + candlestick pattern confirmation if (buySignal) strategy.entry("Long", strategy.long) if (sellSignal) strategy.entry("Short", strategy.short) // Optionally, you can add exit conditions for closing long/short positions // Close long if K crosses above the overbought level if (ta.crossunder(k, overboughtLevel)) strategy.close("Long") // Close short if K crosses below the oversold level if (ta.crossover(k, oversoldLevel)) strategy.close("Short")