Stratégie de risque adaptative basée sur le croisement de tendance à double moyenne mobile combiné au filtre de momentum ADX

EMA ADX ATR DMI RR
Date de création: 2025-02-18 16:21:02 Dernière modification: 2025-02-18 16:21:02
Copier: 0 Nombre de clics: 389
1
Suivre
1617
Abonnés

Stratégie de risque adaptative basée sur le croisement de tendance à double moyenne mobile combiné au filtre de momentum ADX

Aperçu

La stratégie est un système de négociation qui combine un jugement de tendance bi-homogène, un filtrage dynamique de l’ADX et une gestion du risque adaptative. La stratégie utilise les moyennes mobiles indicielles de 50 et 200 cycles (EMA) comme base pour le jugement de tendance, la confirmation de la dynamique par les indicateurs ADX et DMI et l’ajustement des objectifs de stop-loss et de profit en fonction de la dynamique ATR.

Principe de stratégie

La logique centrale de la stratégie est divisée en trois parties:

  1. Détermination de la tendance: utilisation de la relation de position des EMA de 50 et 200 cycles pour déterminer la direction de la tendance actuelle, EMA50 étant la tendance à la hausse au-dessus de l’EMA200, et vice versa.
  2. Confirmation de la dynamique: Confirmation de la force de la tendance à l’aide des indicateurs ADX et DMI, en exigeant que l’ADX soit supérieur au seuil de réglage (défaut 25) et que le DI+ soit supérieur au DI- pour confirmer la tendance à la hausse et, au contraire, la tendance à la baisse.
  3. Le moment d’entrée: après la confirmation de la tendance, la croisée du prix avec l’EMA50 sert de signal d’entrée spécifique, la croix vers le haut fait plus, la croix vers le bas fait moins.

Avantages stratégiques

  1. Mécanisme de confirmation multiple: Réduire efficacement les faux signaux grâce à la confirmation multiple des tendances et des dynamiques.
  2. Gestion du risque adaptative: utilisation de l’ATR pour ajuster dynamiquement la position de stop-loss afin de rendre la gestion du risque plus conforme aux caractéristiques de la volatilité du marché.
  3. Optimisation du rapport risque/bénéfice: en prévoyant le rapport risque/bénéfice, s’assurer que les attentes de rendement de chaque transaction sont raisonnables.
  4. Prise en charge visuelle: la stratégie offre une représentation graphique complète, comprenant les lignes de tendance, les positions de stop loss et les marqueurs de signaux de négociation.

Risque stratégique

  1. Délai de renversement de tendance: En raison de l’utilisation d’une ligne moyenne à plus longue période, il peut y avoir un certain retard dans le renversement de tendance.
  2. Ne convient pas pour les marchés en tremblement: les faux signaux peuvent être fréquents dans les marchés en tremblement horizontal.
  3. Sensibilité des paramètres : l’efficacité de la stratégie est sensible aux paramètres définis, et les paramètres peuvent devoir être ajustés dans différents environnements de marché.

Orientation de l’optimisation de la stratégie

  1. Adaptation aux conditions du marché: vous pouvez ajouter des logiques de jugement aux conditions du marché et ajuster dynamiquement les paramètres dans différents environnements de volatilité.
  2. Amélioration du filtrage des signaux: la quantité de trafic ou d’autres indicateurs techniques peuvent être introduits comme conditions de filtrage auxiliaires.
  3. Optimisation des arrêts de perte: il est possible d’envisager d’utiliser des stratégies de stop-loss de suivi ou de stop-loss combiné pour améliorer la flexibilité de la gestion des risques.
  4. Construction par lots: un mécanisme d’entrée et de sortie par lots peut être mis en place, optimisant la gestion des fonds.

Résumer

Il s’agit d’une stratégie de suivi de tendance structurée et logiquement claire, qui permet une génération de signaux de négociation et un contrôle des risques plus fiables grâce à l’utilisation combinée de multiples indicateurs techniques. La stratégie est extensible et offre une plus grande marge d’optimisation.

Code source de la stratégie
/*backtest
start: 2025-02-10 00:00:00
end: 2025-02-17 00:00:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("XAUUSD 15m Trend Strategy", overlay=true, margin_long=100, margin_short=100)

// Input parameters
emaFast = input.int(50, "Fast EMA Period", minval=1)
emaSlow = input.int(200, "Slow EMA Period", minval=1)
adxThreshold = input.int(25, "ADX Threshold", minval=1)
lookback = input.int(5, "Swing Lookback Period", minval=1)
riskReward = input.float(1.5, "Risk Reward Ratio", minval=1.0)

// Calculate indicators
ema50 = ta.ema(close, emaFast)
ema200 = ta.ema(close, emaSlow)
[diPlus, diMinus, adx] = ta.dmi(14, 14)
atr = ta.atr(14)

// Trend conditions
uptrend = ema50 > ema200 and adx >= adxThreshold and diPlus > diMinus
downtrend = ema50 < ema200 and adx >= adxThreshold and diMinus > diPlus

// Entry conditions
longCondition = uptrend and ta.crossover(close, ema50)
shortCondition = downtrend and ta.crossunder(close, ema50)

// Calculate risk levels
longStop = ta.lowest(low, lookback) - atr * 0.5
longProfit = close + (close - longStop) * riskReward
shortStop = ta.highest(high, lookback) + atr * 0.5
shortProfit = close - (shortStop - close) * riskReward

// Execute trades
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", "Long", stop=longStop, limit=longProfit)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", "Short", stop=shortStop, limit=shortProfit)

// Plotting
plot(ema50, "EMA 50", color=color.blue)
plot(ema200, "EMA 200", color=color.orange)
plot(strategy.position_size > 0 ? longStop : na, "Long Stop", color=color.red, style=plot.style_linebr)
plot(strategy.position_size > 0 ? longProfit : na, "Long Target", color=color.green, style=plot.style_linebr)
plot(strategy.position_size < 0 ? shortStop : na, "Short Stop", color=color.red, style=plot.style_linebr)
plot(strategy.position_size < 0 ? shortProfit : na, "Short Target", color=color.green, style=plot.style_linebr)

// Signal markers
plotshape(longCondition, "Buy Signal", shape.triangleup, location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, "Sell Signal", shape.triangledown, location.abovebar, color=color.red, size=size.small)