Stratégie de suivi des tendances multi-indicateurs cross-dynamique stop-profit et stop-loss

EMA RSI ADX MACD ATR
Date de création: 2025-02-20 09:37:03 Dernière modification: 2025-02-27 17:52:08
Copier: 1 Nombre de clics: 382
2
Suivre
319
Abonnés

Stratégie de suivi des tendances multi-indicateurs cross-dynamique stop-profit et stop-loss Stratégie de suivi des tendances multi-indicateurs cross-dynamique stop-profit et stop-loss

Aperçu

Cette stratégie est une stratégie multi-points de marché en temps réel basée sur plusieurs indicateurs techniques. Elle utilise principalement les signaux croisés des moyennes mobiles rapides et lentes (EMA) en combinaison avec l’indice relativement faible (RSI), l’indice de tendance moyenne (ADX) et l’indice de tendance moyenne mobile (MACD) pour confirmer les signaux de négociation. La stratégie utilise également l’amplitude moyenne réelle (ATR) pour définir des niveaux de stop et d’arrêt dynamiques, pour la gestion du risque.

Principe de stratégie

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

  1. Utilisation d’un croisement EMA de 8 cycles et de 21 cycles comme signal d’entrée principal
  2. Confirmation de l’intensité de la tendance par l’ADX> 25
  3. Utilisation de la fourchette MACD pour déterminer la direction de la tendance
  4. Le RSI < 70 est utilisé pour éviter d’entrer dans une zone de survente.
  5. Utilisez 1,5 fois l’ATR comme arrêt et 2 fois l’ATR comme arrêt.
  6. La mise en place d’un mécanisme de suivi des pertes afin d’assurer le blocage des bénéfices

Avantages stratégiques

  1. Le mécanisme de confirmation multiple a considérablement amélioré la fiabilité des transactions
  2. Les paramètres de stop loss et de stop stop sont adaptés aux fluctuations du marché
  3. Fonction de suivi des pertes et de protection des profits réalisés
  4. Exécution des transactions uniquement après confirmation de la ligne K, pour réduire les faux signaux
  5. Le taux de détention des fonds est utilisé pour mieux contrôler les risques
  6. Le coût de transaction est pris en compte, ce qui est plus conforme à l’environnement de transaction réel.

Risque stratégique

  1. La multiplication des indicateurs pourrait entraîner la perte de certaines opportunités commerciales
  2. Les marchés en évolution rapide peuvent générer de fréquents faux signaux
  3. Un saut en hauteur peut entraîner une panne d’arrêt
  4. Les coûts de transaction peuvent affecter le rendement global de la stratégie
  5. Les stratégies unidirectionnelles peuvent être moins efficaces en période de baisse

Orientation de l’optimisation de la stratégie

  1. On peut envisager d’ajouter des filtres d’environnement de marché pour ajuster les paramètres selon les différentes conditions du marché
  2. L’introduction de l’indicateur de quantité d’acheminement comme signal de confirmation supplémentaire
  3. Optimisation des paramètres EMA et MACD pour les rendre plus adaptés aux différentes périodes
  4. Amélioration du mécanisme de prévention des pertes par lots
  5. Augmentation de la logique de gestion de position pour un contrôle de position plus flexible

Résumer

Il s’agit d’une stratégie de suivi de tendance conçue de manière rationnelle, en utilisant la combinaison de multiples indicateurs techniques, pour rechercher des gains stables tout en contrôlant les risques. L’avantage de la stratégie réside dans son mécanisme de confirmation et son système de gestion des risques, mais elle nécessite toujours une optimisation des paramètres et des améliorations logiques en fonction de la situation réelle du marché.

Code source de la stratégie
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Optimized Long-Only Strategy (Spot Market) - Candle Signals Only", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.1)

// INPUTS
fastEMA_len         = input.int(8, "Fast EMA Length", minval=1)
slowEMA_len         = input.int(21, "Slow EMA Length", minval=1)
rsiPeriod           = input.int(14, "RSI Period")
rsiOverbought       = input.int(70, "RSI Overbought Level", minval=50)
adxPeriod           = input.int(14, "ADX Period", minval=1)
adxThreshold        = input.int(25, "ADX Trend Strength Threshold", minval=1)
fastMACD            = input.int(12, "MACD Fast Length", minval=1)
slowMACD            = input.int(26, "MACD Slow Length", minval=1)
signalMACD          = input.int(9, "MACD Signal Length", minval=1)
atrPeriod           = input.int(14, "ATR Period", minval=1)
atrStopMultiplier   = input.float(1.5, "ATR Stop Loss Multiplier", step=0.1)
atrProfitMultiplier = input.float(2.0, "ATR Profit Target Multiplier", step=0.1)

// CALCULATIONS
emaFast   = ta.ema(close, fastEMA_len)
emaSlow   = ta.ema(close, slowEMA_len)
rsiValue  = ta.rsi(close, rsiPeriod)

// --- Custom ADX Calculation ---
up      = ta.change(high)
down    = -ta.change(low)
plusDM  = (up > down and up > 0) ? up : 0
minusDM = (down > up and down > 0) ? down : 0
trueRange = ta.tr(true)  // 'handle_na' parameter set to true
atrVal    = ta.rma(trueRange, adxPeriod)
plusDI    = 100 * ta.rma(plusDM, adxPeriod) / atrVal
minusDI   = 100 * ta.rma(minusDM, adxPeriod) / atrVal
dx        = 100 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
adxValue  = ta.rma(dx, adxPeriod)

// MACD Calculation (MACD line, signal line, histogram)
[macdLine, signalLine, _] = ta.macd(close, fastMACD, slowMACD, signalMACD)

// ATR for stops and targets
atrValue  = ta.atr(atrPeriod)

// TRADING CONDITION (Long Only, on confirmed candle)
longCondition = ta.crossover(emaFast, emaSlow) and (adxValue > adxThreshold) and (macdLine > signalLine) and (rsiValue < rsiOverbought)

// POSITION MANAGEMENT: Execute only on confirmed candles
if barstate.isconfirmed and longCondition
    strategy.entry("Long", strategy.long)
    longStop   = close - atrStopMultiplier * atrValue
    longTarget = close + atrProfitMultiplier * atrValue
    strategy.exit("Long Exit", from_entry="Long", stop=longStop, limit=longTarget, trail_points=atrValue * 0.5, trail_offset=atrValue * 0.3)

// PLOTTING
plot(emaFast, color=color.green, title="Fast EMA")
plot(emaSlow, color=color.red, title="Slow EMA")
plotshape(barstate.isconfirmed and longCondition, title="Buy Signal", style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", textcolor=color.white, size=size.tiny)