Cette stratégie utilise trois moyennes mobiles exponentielles (EMA) avec des périodes différentes et l'indice de force relative (RSI) pour déterminer les tendances du marché et les signaux de trading. Un signal d'achat est généré lorsque le prix dépasse l'EMA de 200 jours et que l'ESR est supérieur à 50, tandis qu'un signal de vente est généré lorsque le prix tombe en dessous de l'EMA de 200 jours et que l'ESR est inférieur à 50.
En utilisant des signaux de trading basés sur les croisements haussiers de l'EMA et le RSI dans la zone haussière, cette stratégie peut capturer des mouvements de tendance à moyen et long terme relativement clairs. Cependant, sa performance peut être moyenne pendant les premiers retours de tendance et les marchés agités, ce qui la rend plus appropriée pour les marchés tendance globaux. Des optimisations supplémentaires peuvent être effectuées en termes de signaux, de dimensionnement des positions, d'arrêt des pertes et de prise de bénéfices et de conditions de filtrage pour améliorer la stabilité de la stratégie et les rendements ajustés au risque.
/*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)