La stratégie utilise une combinaison de doubles croisements de moyenne mobile exponentielle (EMA) et d'indice de force relative (RSI) pour identifier les opportunités commerciales potentielles sur les marchés.
L'idée de base est d'acheter lorsque l'EMA de 9 semaines plus rapide monte et dépasse l'EMA de 21 semaines plus lente, car cela indique que la tendance du marché peut se renforcer.
Plus précisément, un signal d'entrée longue est déclenché lorsque l'EMA de 9 semaines franchit l'EMA de 21 semaines et que le RSI de 14 semaines est supérieur à 50.
Le signal de vente est basé sur une logique opposée: si l'EMA de 9 semaines dépasse l'EMA de 21 semaines ou si le RSI tombe en dessous de 50, cela indique que la tendance à court terme a été inversée.
Il peut être optimisé en testant systématiquement des combinaisons de ces paramètres. Des filtres supplémentaires dans la logique de condition peuvent réduire les transactions bruyantes.
La stratégie tire parti de la puissance de l'EMA et du RSI pour identifier les opportunités potentielles au sein de tendances plus importantes. Elle fournit des règles claires de gestion des risques pour contrôler efficacement le risque par transaction. Des tests et une optimisation supplémentaires des paramètres peuvent continuer à améliorer les performances.
/*backtest start: 2023-12-22 00:00:00 end: 2024-01-21 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Weekly Swing Trading Strategy", overlay=true) // Entry Indicators shortEma = ema(close, 9) longEma = ema(close, 21) rsiValue = rsi(close, 14) // Entry Condition longCondition = crossover(shortEma, longEma) and rsiValue > 50 if (longCondition) strategy.entry("Long", strategy.long) // Position Sizing (2% risk per trade) riskPerTrade = 0.02 stopLossPercent = 0.05 // 5% stop loss stopLossPrice = close * (1 - stopLossPercent) strategy.exit("Stop Loss", "Long", stop=stopLossPrice) // Profit Target and Trailing Stop profitTargetPercent = 0.10 // 10% profit target profitTargetPrice = close * (1 + profitTargetPercent) trailStopPercent = 0.03 // 3% trailing stop strategy.exit("Take Profit", "Long", limit=profitTargetPrice, trail_price=trailStopPercent, trail_offset=trailStopPercent) // Exit Strategy exitCondition = crossunder(shortEma, longEma) or rsiValue < 50 // Exit when EMAs cross or RSI drops below 50 strategy.close("Long", when=exitCondition) plot(shortEma, color=color.red) plot(longEma, color=color.blue) hline(50, "RSI 50", color=color.purple)