Système de trading de suivi de tendance avec stop loss suiveur dynamique ATR

ATR EMA ROI TSL
Date de création: 2025-02-20 13:22:24 Dernière modification: 2025-02-20 14:53:21
Copier: 2 Nombre de clics: 445
2
Suivre
319
Abonnés

Système de trading de suivi de tendance avec stop loss suiveur dynamique ATR Système de trading de suivi de tendance avec stop loss suiveur dynamique ATR

Aperçu

Cette stratégie est un système de suivi de tendance basé sur l’ATR (Average True Range) qui suit de manière dynamique les arrêts de perte. Il combine la ligne moyenne EMA comme filtre de tendance et contrôle la génération de signaux en ajustant les paramètres de sensibilité et la période ATR. Le système prend en charge non seulement les transactions en plus, mais aussi en détail, et dispose d’un mécanisme de gestion des bénéfices parfait.

Principe de stratégie

  1. Utilisez l’indicateur ATR pour calculer l’amplitude des fluctuations de prix et déterminer la distance de suivi des arrêts de perte en fonction du coefficient de sensibilité (Key Value) défini
  2. Pour déterminer la direction de la tendance du marché à l’aide de l’EMA, ouvrez des ordres en surplus uniquement si le prix est au-dessus de la moyenne et des ordres en blanc uniquement si le prix est en dessous de la moyenne
  3. Un signal de transaction est déclenché lorsque le prix franchit la ligne de suivi des arrêts et suit la direction de la tendance
  4. Le système utilise une méthode de gestion des positions par tranches:
    • Si le bénéfice est de 20% à 50%, le stop loss est porté à la couverture des coûts.
    • Une partie des bénéfices a été clôturée et le Stop Loss a été resserré
    • Resserrer encore la protection de stop loss sur les bénéfices lorsque le profit est de 80% à 100%
    • Les bénéfices de plus de 100% sont des bénéfices à la clôture.

Avantages stratégiques

  1. Les arrêts de suivi dynamiques permettent de suivre efficacement les tendances, sans quitter le jeu trop tôt tout en protégeant les bénéfices.
  2. Les filtres de tendance de l’EMA réduisent efficacement le risque de fausses ruptures
  3. Le mécanisme de profit par tranches assure la réalisation des bénéfices tout en laissant la place à la tendance.
  4. Le soutien à la pratique de plus de trading bidirectionnel en CFD permet de saisir pleinement les opportunités du marché
  5. Les paramètres sont réglables pour s’adapter à différents environnements de marché

Risque stratégique

  1. Des pertes liées à la fréquence des transactions sur des marchés en crise
  2. Un revirement de tendance pourrait entraîner une reprise plus importante
  3. Des paramètres incorrects peuvent affecter les performances de la stratégie Suggestions de contrôle des risques :
  • Recommandé sur les marchés à tendance évidente
  • Paramètres soigneusement choisis, optimisés par rétro-analyse
  • Limite de retrait maximale
  • Considérer l’ajout de conditions de filtrage de l’environnement de marché

Orientation de l’optimisation de la stratégie

  1. Augmentation des mécanismes d’identification des environnements de marché et utilisation de paramètres différents selon les conditions du marché
  2. L’introduction d’indicateurs auxiliaires tels que le trafic augmente la fiabilité du signal
  3. Optimiser les mécanismes de gestion des bénéfices, en ajustant les objectifs de bénéfices en fonction de la dynamique des fluctuations
  4. Augmentation du filtrage temporel pour éviter les échanges à des moments défavorables
  5. Considérer l’ajout d’un filtre de volatilité pour réduire la fréquence de négociation en cas de volatilité excessive

Résumer

Il s’agit d’un système de suivi de tendance structuré et logiquement clair. Le suivi dynamique d’ATR et le filtrage des tendances EMA sont combinés pour mieux contrôler les risques tout en maîtrisant les tendances. La conception du mécanisme de profit par tranches reflète également une pensée de trading mature.

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

//@version=5
strategy("Enhanced UT Bot with Long & Short Trades", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Input Parameters
keyvalue = input.float(1.1, title="Key Value (Sensitivity)", step=0.1)
atrperiod = input.int(200, title="ATR Period")
emaPeriod = input.int(50, title="EMA Period")
roi_close = input.float(100, title="Close Trade at ROI (%)", step=1)

// ATR Calculation
src = close
xATR = ta.atr(atrperiod)
nLoss = keyvalue * xATR

// EMA for Trend Filtering
ema = ta.ema(src, emaPeriod)

// Trailing Stop Logic
var float xATRTrailingStop = na
if na(xATRTrailingStop)
    xATRTrailingStop := src - nLoss

if src > nz(xATRTrailingStop[1]) and src[1] > nz(xATRTrailingStop[1])
    xATRTrailingStop := math.max(nz(xATRTrailingStop[1]), src - nLoss)
else if src < nz(xATRTrailingStop[1]) and src[1] < nz(xATRTrailingStop[1])
    xATRTrailingStop := math.min(nz(xATRTrailingStop[1]), src + nLoss)
else
    xATRTrailingStop := src > nz(xATRTrailingStop[1]) ? src - nLoss : src + nLoss

// Buy/Sell Signal with Trend Filter
buySignal = ta.crossover(src, xATRTrailingStop) and src > ema
sellSignal = ta.crossunder(src, xATRTrailingStop) and src < ema

// Strategy Logic: Long Trades
if buySignal and strategy.position_size <= 0
    strategy.entry("Buy", strategy.long)

if sellSignal and strategy.position_size > 0
    strategy.close("Buy")

// Strategy Logic: Short Trades
if sellSignal and strategy.position_size >= 0
    strategy.entry("Sell", strategy.short)

if buySignal and strategy.position_size < 0
    strategy.close("Sell")

// ROI Calculation for Both Long and Short Trades
var float entryPrice = na
var bool isLong = na
if strategy.position_size > 0
    entryPrice := strategy.opentrades.entry_price(0)
    isLong := true
if strategy.position_size < 0
    entryPrice := strategy.opentrades.entry_price(0)
    isLong := false

// Calculate current profit
currentProfit = isLong ? (close - entryPrice) / entryPrice * 100 : (entryPrice - close) / entryPrice * 100

// Enhanced ROI Management
if strategy.position_size > 0 // Long Position
    if currentProfit >= 20 and currentProfit < 50
        stopLevel = entryPrice // Breakeven
        strategy.exit("TSL Breakeven", from_entry="Buy", stop=stopLevel)
    if currentProfit >= 50 and currentProfit < 80
        stopLevel = entryPrice * 1.30 // 30% ROI
        strategy.exit("TSL 30%", from_entry="Buy", stop=stopLevel)
        strategy.close("Partial Profit", qty_percent=50) // Take 50% profit
    if currentProfit >= 80 and currentProfit < roi_close
        stopLevel = entryPrice * 1.60 // 60% ROI
        strategy.exit("TSL 60%", from_entry="Buy", stop=stopLevel)
    if currentProfit >= roi_close
        strategy.close("Full Exit at 100% ROI")

if strategy.position_size < 0 // Short Position
    if currentProfit >= 20 and currentProfit < 50
        stopLevel = entryPrice // Breakeven
        strategy.exit("TSL Breakeven", from_entry="Sell", stop=stopLevel)
    if currentProfit >= 50 and currentProfit < 80
        stopLevel = entryPrice * 0.70 // 30% ROI (Short stop)
        strategy.exit("TSL 30%", from_entry="Sell", stop=stopLevel)
        strategy.close("Partial Profit", qty_percent=50) // Take 50% profit
    if currentProfit >= 80 and currentProfit < roi_close
        stopLevel = entryPrice * 0.40 // 60% ROI (Short stop)
        strategy.exit("TSL 60%", from_entry="Sell", stop=stopLevel)
    if currentProfit >= roi_close
        strategy.close("Full Exit at 100% ROI")

// Plotting
plot(xATRTrailingStop, color=buySignal ? color.green : sellSignal ? color.red : color.gray, title="Trailing Stop")
plot(ema, color=color.blue, title="EMA Trend Filter")
plotshape(buySignal, title="Buy Signal", style=shape.labelup, location=location.belowbar, color=color.green, text="Buy")
plotshape(sellSignal, title="Sell Signal", style=shape.labeldown, location=location.abovebar, color=color.red, text="Sell")