Cette stratégie repose principalement sur les relations croisées entre les moyennes mobiles exponentielles (MAE) de 20, 50 et 200 périodes et les relations prix-EMA pour déterminer les points d'entrée, tout en incorporant des niveaux de prise de profit et de stop-loss basés sur le pourcentage pour la gestion des risques. Cette stratégie est particulièrement efficace sur des délais plus longs tels que les graphiques d'une heure, quotidiens et hebdomadaires.
La logique de base est basée sur un système de moyennes mobiles multiples et une analyse de l'action des prix:
C'est une tendance bien conçue qui suit une stratégie avec une logique claire. Grâce à la combinaison de plusieurs indicateurs techniques, elle garantit à la fois la fiabilité de la stratégie et des solutions claires de gestion des risques. La stratégie est particulièrement adaptée aux graphiques à plus long terme et présente des avantages uniques pour capturer les tendances à moyen et long terme. Grâce aux directions d'optimisation suggérées, il y a place à une amélioration supplémentaire. Les traders sont invités à tester la stratégie dans un système de backtesting avant de trader en direct et à ajuster les paramètres en fonction des caractéristiques spécifiques de l'instrument de trading.
/*backtest start: 2024-10-28 00:00:00 end: 2024-11-27 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Cross Strategy with Targets and Fill", overlay=true) // Define EMAs ema20 = ta.ema(close, 20) ema50 = ta.ema(close, 50) ema200 = ta.ema(close, 200) // Plot EMAs (hidden) plot(ema20, color=color.blue, title="EMA 20", display=display.none) plot(ema50, color=color.red, title="EMA 50", display=display.none) plot(ema200, color=color.green, title="EMA 200", display=display.none) // Define the conditions priceCrossAboveEMA20 = ta.crossover(close, ema20) priceCloseAboveEMA20 = close > ema20 ema20AboveEMA50 = ema20 > ema50 ema50AboveEMA200 = ema50 > ema200 // Buy condition buyCondition = priceCrossAboveEMA20 and priceCloseAboveEMA20 and ema20AboveEMA50 and ema50AboveEMA200 // Plot buy signals plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") // Declare and initialize variables for take profit and stop loss levels var float longTakeProfit = na var float longStopLoss = na var float buyPrice = na // Update levels and variables on buy condition if (buyCondition) // Enter a new buy position strategy.entry("Buy", strategy.long) // Set new take profit and stop loss levels longTakeProfit := strategy.position_avg_price * 1.10 // Target is 10% above the buy price longStopLoss := strategy.position_avg_price * 0.95 // Stop loss is 5% below the buy price buyPrice := strategy.position_avg_price // Plot levels for the new trade plotTakeProfit = plot(longTakeProfit, color=color.green, title="Take Profit", linewidth=1, offset=-1) plotStopLoss = plot(longStopLoss, color=color.red, title="Stop Loss", linewidth=1, offset=-1) plotBuyPrice = plot(buyPrice, color=color.blue, title="Buy Price", linewidth=1, offset=-1) // Fill areas between buy price and take profit/stop loss levels fill(plotBuyPrice, plotTakeProfit, color=color.new(color.green, 90), title="Fill to Take Profit") // Light green fill to target fill(plotBuyPrice, plotStopLoss, color=color.new(color.red, 90), title="Fill to Stop Loss") // Light red fill to stop loss // Exit conditions strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=longTakeProfit, stop=longStopLoss)