La stratégie est un système de trading de suivi de tendance basé sur une moyenne mobile (EMA) de plusieurs indices. Elle utilise des croisements en or formés par trois moyennes EMA 25, EMA 50 et EMA 100 pour identifier une forte tendance haussière et une entrée en masse lorsque le prix dépasse l'EMA 25. La stratégie utilise des méthodes de stop-loss dynamiques et de stop-loss en masse pour gérer les risques et les bénéfices.
La logique centrale de la stratégie comprend les éléments clés suivants: 1. Confirmation de tendance: l'utilisation d'un EMA de trois cycles différents (de 25, 50, 100) pour confirmer une tendance haussière en forme de croix d'or lorsque la ligne moyenne à court terme est au-dessus de la ligne moyenne à moyen terme et que la ligne moyenne à moyen terme est au-dessus de la ligne moyenne à long terme. Signal d'entrée: sur la base de la formation d'un croisement d'or, lorsque le prix de clôture dépasse l'EMA25 vers le haut, deux lots de 50% de positions sont entrés. 3. paramètre de stop-loss: paramètre le stop-loss dynamique en fonction du prix le plus bas des 20 derniers cycles et ajoute une zone de secours supplémentaire ((0.0003)) pour éviter une fausse rupture. 4. Stop-loss par lots: deux objectifs de stop-loss de multiples différents (de 1.0 et 1.5) sont définis, les premiers positions quittent le terrain lorsque les objectifs de stop-loss les plus bas sont atteints et les deuxièmes positions quittent le terrain lorsque les objectifs de stop-loss les plus élevés sont atteints. 5. Protection de fin de tendance: lorsque le prix tombe en dessous de l'EMA100, un signal de levée est déclenché pour toutes les positions afin d'éviter une perte d'inversion.
La stratégie a pour avantage de combiner plusieurs éléments clés du suivi des tendances et de la gestion des risques, mais elle nécessite toujours l'optimisation des paramètres et l'amélioration des règles en fonction de la situation réelle du marché. La stratégie est susceptible de maintenir une performance stable dans différents environnements de marché grâce à l'optimisation proposée.
/*backtest start: 2024-11-19 00:00:00 end: 2024-12-18 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("Golden Cross with Customizable TP/SL", overlay=true) // Parameters for EMA ema_short_length = 25 ema_mid_length = 50 ema_long_length = 100 // Parameters for stop-loss and take-profit lookback_bars = input.int(20, title="Lookback bars for lowest low") pip_buffer = input.float(0.0003, title="Stop-loss buffer (pips)") // Fixed default pip value (e.g., 3 pips for 5-digit pairs) tp_multiplier1 = input.float(1.0, title="Take-profit multiplier 1") tp_multiplier2 = input.float(1.5, title="Take-profit multiplier 2") // Calculate EMAs ema25 = ta.ema(close, ema_short_length) ema50 = ta.ema(close, ema_mid_length) ema100 = ta.ema(close, ema_long_length) // Golden Cross condition (EMA25 > EMA50 > EMA100) golden_cross = ema25 > ema50 and ema50 > ema100 // Entry condition: Candle crosses above EMA25 after a golden cross cross_above_ema25 = ta.crossover(close, ema25) entry_condition = golden_cross and cross_above_ema25 // Stop-loss and take-profit calculation lowest_low = ta.lowest(low, lookback_bars) var float entry_price = na var float stop_loss = na var float take_profit1 = na var float take_profit2 = na if (entry_condition) entry_price := close stop_loss := lowest_low - pip_buffer take_profit1 := entry_price + (entry_price - stop_loss) * tp_multiplier1 take_profit2 := entry_price + (entry_price - stop_loss) * tp_multiplier2 strategy.entry("Buy1", strategy.long, qty=0.5) // First 50% strategy.entry("Buy2", strategy.long, qty=0.5) // Second 50% // Separate exit conditions for each entry cross_below_ema100 = ta.crossunder(close, ema100) exit_condition1 = close >= take_profit1 exit_condition2 = close >= take_profit2 exit_condition_sl = close <= stop_loss if (exit_condition1 or cross_below_ema100) strategy.close("Buy1") if (exit_condition2 or cross_below_ema100 or exit_condition_sl) strategy.close("Buy2") // Plot EMAs plot(ema25, color=color.blue, title="EMA 25") plot(ema50, color=color.orange, title="EMA 50") plot(ema100, color=color.red, title="EMA 100")