Stratégie de trading croisée à double moyenne mobile suivant une tendance dynamique

SMA EMA RSI ADX ATR DMI
Date de création: 2025-02-08 15:18:58 Dernière modification: 2025-02-08 15:18:58
Copier: 0 Nombre de clics: 372
1
Suivre
1617
Abonnés

Stratégie de trading croisée à double moyenne mobile suivant une tendance dynamique

Aperçu

La stratégie est un système de suivi des tendances dynamiques basé sur l’analyse technique, utilisant principalement les lignes bi-médianes (la moyenne mobile simple à 200 jours et la moyenne mobile à 21 semaines de l’indice) pour identifier les tendances du marché. La stratégie permet une gestion dynamique des risques en intégrant l’indicateur de tendance relative faible (le RSI) et l’indicateur de tendance moyenne (l’ADX) comme filtres dynamiques et en combinant l’amplitude réelle (l’ATR) pour une capture précise des tendances à la hausse et un contrôle efficace des risques.

Principe de stratégie

La logique fondamentale de la stratégie repose sur les éléments clés suivants :

  1. La double confirmation de la moyenne mobile simple à 200 jours (SMA) et de la moyenne mobile indicielle à 21 semaines (EMA) est utilisée pour définir les conditions du marché à plusieurs têtes
  2. Le RSI > 50 assure une dynamique continue à la hausse
  3. La force de la tendance est vérifiée à l’aide de conditions de ADX> 25
  4. Le réglage dynamique des arrêts de perte basé sur l’ATR offre un contrôle des risques adapté aux fluctuations du marché
  5. Utilisation d’un mécanisme de coupe en pourcentage pour garantir la réalisation des bénéfices en temps opportun lorsque les bénéfices attendus sont atteints

Avantages stratégiques

  1. Le système a une bonne adaptabilité et peut adapter la position de stop loss en fonction des fluctuations dynamiques du marché
  2. Les croisements biuniversaux fournissent des signaux de confirmation de tendance fiables et réduisent efficacement le risque de fausse rupture
  3. La qualité du signal d’entrée a été considérablement améliorée grâce à la combinaison du RSI et de l’ADX
  4. Les paramètres de la stratégie sont hautement personnalisables et peuvent être optimisés en fonction des différentes conditions du marché
  5. La mise en place d’une négociation au niveau de la ligne solaire réduit les coûts de transaction et les effets de la volatilité à court terme.

Risque stratégique

  1. Des faux signaux fréquents peuvent être générés dans un marché volatil, augmentant les coûts de transaction
  2. Les stratégies de la ligne moyenne sont naturellement retardées et risquent de manquer une partie des gains au début de la tendance.
  3. Les conditions de filtrage multiples peuvent entraîner la perte de certaines opportunités de transactions potentielles.
  4. Les arrêts basés sur l’ATR peuvent être trop indulgents dans des marchés très volatils
  5. Le blocage des pourcentages fixes pourrait geler les bénéfices trop tôt dans une tendance forte

Orientation de l’optimisation de la stratégie

  1. On peut introduire des indicateurs de débit comme confirmation auxiliaire pour améliorer la fiabilité du signal.
  2. Considérer l’ajout d’un mécanisme de freinage dynamique pour mieux s’adapter aux différentes phases du marché
  3. Optimiser les paramètres du RSI et de l’ADX pour améliorer la rapidité des signaux
  4. La hiérarchisation de l’augmentation de la force de la tendance et la gestion dynamique des positions
  5. Introduction d’indicateurs de volatilité du marché afin d’adapter la fréquence des transactions en période de forte volatilité

Résumer

Il s’agit d’une stratégie de suivi de tendance conçue de manière rationnelle et logique, qui équilibre mieux les gains et les risques grâce à l’utilisation combinée de multiples indicateurs techniques. La stratégie est très personnalisable et convient à l’optimisation des paramètres pour maintenir son efficacité dans différents environnements de marché. Bien qu’il existe un certain risque de retard, l’ensemble de la stratégie présente une meilleure stabilité et fiabilité grâce à un mécanisme de contrôle des risques amélioré.

Code source de la stratégie
/*backtest
start: 2022-02-09 00:00:00
end: 2025-02-06 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("BTCUSDT Daily - Enhanced Bitcoin Bull Market Support [CYRANO]", shorttitle="BTCUSDT Daily BULL MARKET", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3)

// Inputs
smaLength = input.int(200, title="SMA Length (Bull Market)")
emaLength = input.int(147, title="EMA Length (21-Week Approximation)")
atrLength = input.int(14, title="ATR Length")
riskATR = input.float(2.0, title="ATR Multiplier for Stop Loss", step=0.1)
takeProfitPercent = input.float(10.0, title="Take Profit (%)", step=0.1)
rsiFilter = input.bool(true, title="Enable RSI Filter")
rsiLength = input.int(14, title="RSI Length")
adxFilter = input.bool(true, title="Enable ADX Filter")
adxThreshold = input.float(25, title="ADX Threshold")

// Date Range Filter
startDate = input(timestamp("2018-01-01 00:00 +0000"), title="Start Date")
endDate = input(timestamp("2069-12-31 00:00 +0000"), title="End Date")
inDateRange = true

// Moving Averages
sma200 = ta.sma(close, smaLength)
ema21w = ta.ema(close, emaLength)

// ATR Calculation
atr = ta.atr(atrLength)
stopLoss = close - (riskATR * atr)
takeProfit = close * (1 + takeProfitPercent / 100)

// RSI Filter
rsi = ta.rsi(close, rsiLength)
rsiCondition = rsiFilter ? rsi > 50 : true

// ADX Filter
[diplus, diminus, adx] = ta.dmi(14, 14)
adxCondition = adxFilter ? adx > adxThreshold : true

// Entry and Exit Conditions
buyCondition = inDateRange and close > sma200 and close > ema21w and rsiCondition and adxCondition
exitCondition = inDateRange and (close < sma200 or close < ema21w)

// Strategy Execution
if buyCondition
    strategy.entry("BUY", strategy.long, stop=stopLoss, limit=takeProfit)

if exitCondition
    strategy.close("BUY")

// Plot MAs
plot(sma200, title="200-Day SMA", color=color.blue, linewidth=2)
plot(ema21w, title="21-Week EMA", color=color.purple, linewidth=2)

// Background Highlight
bullColor = color.new(color.green, 80)
bearColor = color.new(color.red, 80)
bgcolor(close > sma200 and close > ema21w ? bullColor : bearColor, title="Bull Market Background")