This strategy utilizes three exponential moving averages (EMAs) with different periods and the Relative Strength Index (RSI) to determine market trends and trading signals. A buy signal is generated when the price breaks above the 200-day EMA and the RSI is above 50, while a sell signal is generated when the price falls below the 200-day EMA and the RSI is below 50. The strategy is suitable for swing trading on the daily timeframe.
By utilizing trading signals based on EMA bullish crossovers and RSI in the bullish zone, this strategy can capture relatively clear medium to long-term trend moves. However, its performance may be average during early trend reversals and choppy markets, making it more suitable for trending markets overall. Further optimizations can be made in terms of signals, position sizing, stop losses and take profits, and filtering conditions to improve the strategy’s stability and risk-adjusted returns.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Lexi Supreme", overlay=true) // Calculate EMA 200 ema200 = ta.ema(close, 200) // Calculate EMA 50 ema50 = ta.ema(close, 50) // Calculate EMA 21 ema21 = ta.ema(close, 21) // Calculate RSI rsiValue = ta.rsi(close, 14) // Buy condition: RSI above 50 and price crosses above EMA 200 buyCondition = ta.crossover(close, ema200) and rsiValue > 50 // Sell condition: RSI below 50 and price crosses below EMA 200 sellCondition = ta.crossunder(close, ema200) and rsiValue < 50 // Position Size (1% of account balance) positionSize = 1 // Stop Loss and Take Profit values for buy trades stopLossBuy = ema200 - 0.00050 takeProfitBuy = 0.00100 // Stop Loss and Take Profit values for sell trades stopLossSell = ema200 + 0.00050 takeProfitSell = 0.00100 // Plot EMA 200 line in blue plot(ema200, color=color.blue, title="EMA 200") // Plot EMA 50 line in red plot(ema50, color=color.red, title="EMA 50") // Plot EMA 21 line in green plot(ema21, color=color.green, title="EMA 21") // Plot buy entry points in yellow plotshape(series=buyCondition, title="Buy Signal", color=color.yellow, style=shape.triangleup, location=location.belowbar, size=size.small) // Plot sell entry points in white plotshape(series=sellCondition, title="Sell Signal", color=color.white, style=shape.triangledown, location=location.abovebar, size=size.small) // Strategy entry and exit conditions with position size, stop loss, and take profit for buy trades if (buyCondition) strategy.entry("Buy", strategy.long, qty=positionSize) strategy.exit("Take Profit/Stop Loss Buy", from_entry="Buy", stop=stopLossBuy, limit=close + takeProfitBuy) // Strategy entry and exit conditions with position size, stop loss, and take profit for sell trades if (sellCondition) strategy.entry("Sell", strategy.short, qty=positionSize) strategy.exit("Take Profit/Stop Loss Sell", from_entry="Sell", stop=stopLossSell, limit=close - takeProfitSell)template: strategy.tpl:40:21: executing "strategy.tpl" at <.api.GetStrategyListByName>: wrong number of args for GetStrategyListByName: want 7 got 6