This strategy utilizes three technical indicators - support, resistance and trendlines - to automate entries and stop losses. It first identifies key support and resistance levels, then combines trend direction to determine entry timing.
Solutions:
This strategy combines the power of multiple technical tools. With proper parameter tuning, it can achieve good risk-adjusted returns. The key is to optimize the parameters and entry sequence. Overall the strategy framework is sound and has lots of potential for improvements.\
/*backtest start: 2024-01-27 00:00:00 end: 2024-02-26 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Support Resistance Trend Strategy", overlay=true) // Input parameters supportLevel = input(100, title="Support Level") resistanceLevel = input(200, title="Resistance Level") riskRewardRatio = input(2, title="Risk-Reward Ratio") trailStopLoss = input(true, title="Use Trailing Stop Loss") // Calculate trend direction based on trend lines trendUp = close > request.security(syminfo.tickerid, "D", close[1]) trendDown = close < request.security(syminfo.tickerid, "D", close[1]) // Buy signal condition buySignal = close < supportLevel and trendUp // Sell signal condition sellSignal = close > resistanceLevel and trendDown // Entry point and exit conditions strategy.entry("Buy", strategy.long, when=buySignal) strategy.entry("Sell", strategy.short, when=sellSignal) // Calculate targets and stop-loss levels targetPrice = close + (close - supportLevel) * riskRewardRatio stopLossLevel = supportLevel // Plot support and resistance levels plot(supportLevel, color=color.green, linewidth=2, title="Support Level") plot(resistanceLevel, color=color.red, linewidth=2, title="Resistance Level") // Plot targets and stop-loss levels plot(targetPrice, color=color.blue, linewidth=2, title="Target Price") plot(stopLossLevel, color=color.orange, linewidth=2, title="Stop Loss Level") // Trailing stop-loss strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLossLevel, profit=targetPrice) strategy.exit("Take Profit/Stop Loss", from_entry="Sell", loss=targetPrice, profit=stopLossLevel) // Plot trail stop loss if (trailStopLoss) strategy.exit("Trailing Stop Loss", from_entry="Buy", loss=stopLossLevel) strategy.exit("Trailing Stop Loss", from_entry="Sell", loss=stopLossLevel)