Stratégie de suivi des tendances et d'optimisation des bénéfices multi-indicateurs

SAR ATR MACD SMA DMI ADX
Date de création: 2024-12-11 17:22:57 Dernière modification: 2024-12-11 17:22:57
Copier: 0 Nombre de clics: 351
1
Suivre
1617
Abonnés

Stratégie de suivi des tendances et d’optimisation des bénéfices multi-indicateurs

Aperçu

La stratégie est un système de trading de suivi de tendance combinant plusieurs indicateurs techniques. Elle utilise principalement les indicateurs de dérivation parallèles (SAR), les moyennes mobiles (SMA) et les indicateurs de dynamique directionnelle (DMI) pour déterminer la tendance du marché et le moment d’entrée, et pour optimiser l’exit par des arrêts de pourcentage et des dérives MACD. L’idée centrale de la conception de la stratégie est de confirmer l’entrée après une tendance forte et de sortir à temps lorsque l’objectif de profit prévu est atteint ou que des signaux de revers de tendance apparaissent.

Principe de stratégie

La stratégie utilise un mécanisme de filtrage à plusieurs niveaux pour confirmer les signaux de transaction:

  1. Capture des signaux de trading initiaux par croisement des indicateurs SAR
  2. Utilisez les SMA à 50 cycles pour déterminer la direction de la tendance globale
  3. Utilisation de l’indicateur DMI pour confirmer la force et la direction de la tendance
  4. Les conditions d’entrée doivent être remplies en même temps: le prix est placé au-dessus du SAR, le prix est au-dessus du SMA et le DMI montre une tendance à plusieurs niveaux
  5. Mise en place d’un double mécanisme: réalisation d’un bénéfice objectif de 3% ou apparition d’un signal de dérivation MACD
  6. L’indicateur ATR est utilisé comme référence pour la volatilité du marché.

Avantages stratégiques

  1. La vérification croisée de multiples indicateurs techniques peut réduire efficacement les faux signaux
  2. Une combinaison de suivi des tendances et d’indicateurs dynamiques pour améliorer le taux de réussite des transactions
  3. Une stratégie de stop-loss à pourcentage fixe pour assurer la stabilité des profits
  4. Le MACD s’est éloigné du mécanisme de sortie pour éviter le retrait d’un renversement de tendance
  5. Les paramètres de la stratégie peuvent être ajustés de manière flexible en fonction des caractéristiques du marché
  6. Utilisation de l’ATR pour la surveillance de la volatilité et la fourniture d’informations sur l’état du marché

Risque stratégique

  1. Plusieurs indicateurs peuvent entraîner un décalage du signal
  2. Le taux fixe peut être retiré plus tôt dans une tendance forte.
  3. L’absence de mécanisme de coupe des pertes augmente l’ouverture de risque
  4. Le marché horizontal pourrait générer de faux signaux
  5. L’indicateur DMI pourrait générer des signaux trompeurs dans un marché en crise

Orientation de l’optimisation de la stratégie

  1. Introduction de mécanismes d’arrêt adaptatifs, tels que l’arrêt dynamique basé sur l’ATR
  2. Développer des filtres de volatilité pour ajuster la taille des positions pendant les périodes de forte volatilité
  3. Optimiser les paramètres MACD pour améliorer l’exactitude des jugements de retournement de tendance
  4. Ajoutez un mécanisme de confirmation du volume pour améliorer la fiabilité du signal
  5. Développer des mécanismes d’arrêt dynamique pour ajuster les bénéfices cibles en fonction des fluctuations du marché

Résumer

La stratégie, grâce à la collaboration synchrone de multiples indicateurs techniques, a construit un système de trading de suivi de tendance relativement complet. Son avantage réside dans la fiabilité de la reconnaissance des signaux et la flexibilité du contrôle des risques. Bien qu’il existe un certain risque de retard, la performance globale de la stratégie a une meilleure valeur d’application grâce à l’optimisation des paramètres et à l’adhésion à un mécanisme de gestion dynamique.

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

//@version=5
strategy("Swing Trading Strategy with DMI", overlay=true)

// Define parameters
sarStart = input.float(0.02, title="SAR Start")
sarIncrement = input.float(0.02, title="SAR Increment")
sarMax = input.float(0.2, title="SAR Max")
atrLength = input.int(10, title="ATR Length")
macdShort = input.int(12, title="MACD Short Length")
macdLong = input.int(26, title="MACD Long Length")
macdSignal = input.int(9, title="MACD Signal Length")
smaLength = input.int(50, title="SMA Length")
dmiLength = input.int(14, title="DMI Length")
adxSmoothing = input.int(14, title="ADX Smoothing") // Smoothing period for ADX
targetProfitPercentage = input.float(3.0, title="Target Profit Percentage")

// Calculate SAR
sar = ta.sar(sarStart, sarIncrement, sarMax)

// Calculate ATR
atr = ta.atr(atrLength)

// Calculate MACD
[macdLine, macdSignalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)

// Calculate SMA
sma = ta.sma(close, smaLength)
bullishTrend = close > sma

// Calculate DMI
[plusDI, minusDI, adx] = ta.dmi(dmiLength, adxSmoothing) // Specify ADX smoothing period

// Determine if DMI is bullish
dmiBullish = plusDI > minusDI

// Define buy signal
buySignal = ta.crossover(close, sar) and bullishTrend and dmiBullish

// Track buy price and position state
var float buyPrice = na
var bool inPosition = false

// Enter position
if (buySignal and not inPosition)
    buyPrice := close
    inPosition := true
    strategy.entry("Buy", strategy.long)

// Define target price (3% above the buy price)
targetPrice = na(buyPrice) ? na : buyPrice * (1 + targetProfitPercentage / 100)

// Define MACD sell signal
macdSellSignal = ta.crossunder(macdLine, macdSignalLine)

// Define sell signal
sellSignal = inPosition and (close >= targetPrice or macdSellSignal)

// Exit position
if (sellSignal)
    inPosition := false
    strategy.exit("Sell", "Buy", limit=targetPrice)

// Plot SAR on the chart
plot(sar, color=color.red, style=plot.style_cross, linewidth=2)

// Plot SMA (optional, for visualizing the trend)
plot(sma, color=color.blue, title="SMA")

// Plot DMI +DI and -DI
plot(plusDI, color=color.green, title="+DI")
plot(minusDI, color=color.red, title="-DI")

// Plot buy signal on the chart
//plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")

// Plot sell signal on the chart
//plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Optional: Plot background color for buy and sell signals
bgcolor(buySignal ? color.new(color.green, 90) : na, title="Buy Signal Background")
bgcolor(sellSignal ? color.new(color.red, 90) : na, title="Sell Signal Background")