This strategy is a momentum-based approach that utilizes the Relative Strength Index (RSI) indicator in combination with manual take profit (TP) and stop loss (SL) levels. The main idea behind the strategy is to capture overbought and oversold market conditions using the RSI indicator, while also considering the position of the daily closing price relative to the highest and lowest prices in the recent past. Once the predefined TP or SL levels are reached, the strategy automatically closes the position.
This strategy offers a trading framework based on the RSI momentum indicator while incorporating manual take profit and stop loss functionality, allowing traders to manage their positions according to their risk preferences and market outlook. However, the strategy’s performance largely depends on parameter selection and market conditions. Therefore, traders should exercise caution when using this strategy, conduct thorough backtesting and optimization, and combine it with other forms of analysis and risk management techniques to achieve more robust trading results.
//@version=5 strategy("RSI Strategy with Manual TP and SL", overlay=true) // Strategy Parameters length = input(14, title="RSI Length") overSold = input(30, title="Oversold Level") overBought = input(70, title="Overbought Level") trail_profit_pct = input.float(20, title="Trailing Profit (%)") // RSI Calculation vrsi = ta.rsi(close, length) // Entry Conditions for Long Position rsi_crossed_below_30 = vrsi > overSold and ta.sma(vrsi, 2) <= overSold // RSI crossed above 30 daily_close_above_threshold = close > (ta.highest(close, 50) * 0.7) // Daily close above 70% of the highest close in the last 50 bars // Entry Conditions for Short Position rsi_crossed_above_70 = vrsi < overBought and ta.sma(vrsi, 2) >= overBought // RSI crossed below 70 daily_close_below_threshold = close < (ta.lowest(close, 50) * 1.3) // Daily close below 130% of the lowest close in the last 50 bars // Entry Signals if (rsi_crossed_below_30 and daily_close_above_threshold) strategy.entry("RsiLE", strategy.long, comment="RsiLE") if (rsi_crossed_above_70 and daily_close_below_threshold) strategy.entry("RsiSE", strategy.short, comment="RsiSE") // Manual Take Profit and Stop Loss tp_percentage = input.float(1, title="Take Profit (%)") sl_percentage = input.float(1, title="Stop Loss (%)") long_tp = strategy.position_avg_price * (1 + tp_percentage / 100) long_sl = strategy.position_avg_price * (1 - sl_percentage / 100) short_tp = strategy.position_avg_price * (1 - tp_percentage / 100) short_sl = strategy.position_avg_price * (1 + sl_percentage / 100) strategy.exit("TP/SL Long", "RsiLE", limit=long_tp, stop=long_sl) strategy.exit("TP/SL Short", "RsiSE", limit=short_tp, stop=short_sl)