Cette stratégie est un système de suivi des tendances basé sur de multiples indicateurs techniques, combinant des moyennes mobiles (EMA), un indice de mouvement directionnel (DMI), un oscillateur de prix décentralisé (DPO), un indice de force relative (RSI) et une plage moyenne réelle (ATR).
La stratégie utilise un système de moyenne mobile exponentielle triple (EMA) comme mécanisme de détermination de tendance de base, combiné à d'autres indicateurs techniques pour la confirmation de signaux multiples: 1. L'EMA rapide (10 jours) capte la dynamique des prix à court terme 2. L'EMA moyen (25 jours) sert de filtre de tendance à moyen terme 3. L'EMA lent (50 jours) définit la direction générale de la tendance 4. L'indice d'évolution de la tendance (14-jours) confirme la force de la direction de la tendance 5. Le DPO confirme que les prix dévient de la tendance 6. Le RSI (14-day) mesure la dynamique et les conditions de surachat/survente 7. ATR (14 jours) fixe des objectifs de stop-loss et de profit
Conditions relatives aux signaux commerciaux: - Longue: l'EMA rapide dépasse l'EMA moyen avec les deux supérieurs à l'EMA lente, ADX>25, RSI>50, DPO>0 - courte: EMA rapide passe sous EMA moyenne avec les deux sous EMA lente, ADX>25, RSI<50, DPO<0
Mesures de contrôle des risques: - Les arrêts dynamiques basés sur ATR s'adaptent à la volatilité du marché - Gestion des risques à proportion fixe - La confirmation croisée de plusieurs indicateurs réduit les faux signaux
Cette stratégie construit un système de trading complet en suivant la tendance grâce à la combinaison de plusieurs indicateurs techniques. Ses principales caractéristiques sont la confirmation stricte des signaux et un contrôle raisonnable des risques, adaptés au suivi des tendances à moyen et long terme sur des délais quotidiens. Bien qu'il y ait un certain retard dans les signaux, la stratégie démontre une performance globale robuste grâce à un contrôle strict des risques et à la confirmation de signaux multiples. Lors de l'application au trading en direct, une considération minutieuse doit être accordée à la sélection de l'environnement du marché et à l'optimisation des paramètres pour des instruments spécifiques.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-15 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Daily Strategy with Triple EMA, DMI, DPO, RSI, and ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Input parameters fastEmaLength = input.int(10, title="Fast EMA Length") mediumEmaLength = input.int(25, title="Medium EMA Length") slowEmaLength = input.int(50, title="Slow EMA Length") dmiLength = input.int(14, title="DMI Length") adxSmoothing = input.int(14, title="ADX Smoothing") dpoLength = input.int(14, title="DPO Length") rsiLength = input.int(14, title="RSI Length") atrLength = input.int(14, title="ATR Length") riskPercentage = input.float(2.0, title="Risk Percentage", step=0.1) atrMultiplier = input.float(1.5, title="ATR Multiplier for Stop Loss", step=0.1) tpMultiplier = input.float(2.0, title="ATR Multiplier for Take Profit", step=0.1) // Calculate EMAs fastEma = ta.ema(close, fastEmaLength) mediumEma = ta.ema(close, mediumEmaLength) slowEma = ta.ema(close, slowEmaLength) // Calculate other indicators [adx, diPlus, diMinus] = ta.dmi(dmiLength, adxSmoothing) dpo = close - ta.sma(close, dpoLength) rsi = ta.rsi(close, rsiLength) atr = ta.atr(atrLength) // Trading logic longCondition = ta.crossover(fastEma, mediumEma) and fastEma > slowEma and mediumEma > slowEma and adx > 25 and rsi > 50 and dpo > 0 shortCondition = ta.crossunder(fastEma, mediumEma) and fastEma < slowEma and mediumEma < slowEma and adx > 25 and rsi < 50 and dpo < 0 // Risk management riskAmount = (strategy.equity * riskPercentage) / 100 stopLoss = atr * atrMultiplier takeProfit = atr * tpMultiplier // Entry and exit logic if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("Exit Long", "Buy", stop=close - stopLoss, limit=close + takeProfit) if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("Exit Short", "Sell", stop=close + stopLoss, limit=close - takeProfit) // Plot indicators plot(fastEma, color=color.green, title="Fast EMA") plot(mediumEma, color=color.orange, title="Medium EMA") plot(slowEma, color=color.red, title="Slow EMA") hline(25, "ADX Threshold", color=color.gray, linestyle=hline.style_dotted)