Stratégie de trading dynamique de stop loss suiveur basée sur l'ATR

ATR EMA TS
Date de création: 2024-12-12 16:18:19 Dernière modification: 2024-12-12 16:18:19
Copier: 0 Nombre de clics: 384
1
Suivre
1617
Abonnés

Stratégie de trading dynamique de stop loss suiveur basée sur l’ATR

Aperçu

La stratégie est une stratégie de stop-loss de suivi dynamique basée sur l’indicateur ATR (Average True Range). Elle ajuste dynamiquement la position de stop-loss via les valeurs ATR et la confirmation des signaux de négociation en combinaison avec la moyenne EMA. La stratégie prend en charge une gestion de position flexible qui permet de personnaliser le nombre d’achats et de ventes en fonction de différents environnements de marché et de variétés de transactions.

Principe de stratégie

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

  1. Calculer la volatilité du marché avec l’indicateur ATR et ajuster la distance d’arrêt avec un facteur personnalisé par l’utilisateur
  2. Création d’une ligne de stop-loss dynamique qui s’ajuste automatiquement en fonction de l’évolution des prix
  3. Utilisez une ligne moyenne EMA et un croisement de la ligne de suivi pour confirmer un signal de transaction
  4. Génération d’un signal de transaction lorsque le prix a franchi la ligne de traçabilité et a été confirmé par l’EMA
  5. Contrôler le nombre de transactions par transaction via un système de gestion de position et suivre en temps réel l’état du portefeuille

Avantages stratégiques

  1. Adaptabilité - l’indicateur ATR est capable d’ajuster automatiquement la distance de rupture en fonction des fluctuations du marché, ce qui permet à la stratégie de bien fonctionner dans différentes conditions de marché
  2. Gestion des risques: un mécanisme de stop-loss dynamique permet de protéger efficacement les profits réalisés tout en limitant les pertes potentielles
  3. Flexibilité opérationnelle - prise en charge du nombre de transactions et des paramètres ATR personnalisés, qui peuvent être optimisés en fonction des caractéristiques des différentes variétés de transactions
  4. Signal fiable - confirmation de la ligne moyenne par l’EMA, réduisant l’impact des faux signaux
  5. Automatisation complète - les stratégies peuvent être entièrement automatisées et réduire les interférences émotionnelles humaines

Risque stratégique

  1. Risque de choc du marché - des faux signaux de rupture fréquents peuvent être générés dans les marchés à choc horizontal, entraînant des transactions excessives
  2. Risque de dérapage - un risque de dérapage plus important dans des conditions rapides qui affecte la performance de la stratégie
  3. Sensitivité des paramètres - le choix des cycles et des facteurs ATR a une influence majeure sur la performance de la stratégie
  4. Risque de gestion de fonds - risque de sur-effet de levier si le nombre de transactions est mal réglé
  5. Risque de fluctuation du marché - les stop-loss peuvent être brisés instantanément en période de forte volatilité

Orientation de l’optimisation de la stratégie

  1. Introduction d’un mécanisme de reconnaissance des environnements de marché qui utilise une combinaison différente de paramètres dans différents états de marché
  2. Ajout d’un facteur de transaction comme condition de filtrage du signal, améliorant la fiabilité du signal de transaction
  3. Optimisation des algorithmes de gestion des fonds, adaptation de la taille des positions en fonction de la dynamique de la volatilité
  4. Augmentation du filtrage temporel pour éviter les opérations à des moments inappropriés pour les transactions
  5. Développer un système d’optimisation des paramètres adaptatifs permettant un ajustement dynamique des paramètres

Résumer

La stratégie, combinée à l’indicateur ATR et à la ligne de parité EMA, construit un système fiable de suivi dynamique des pertes. Son avantage réside dans sa capacité à s’adapter aux fluctuations du marché, à disposer d’un mécanisme de gestion des risques parfait, tout en conservant la flexibilité de l’opération. Bien qu’il existe des risques inhérents, la stratégie est susceptible de maintenir une performance stable dans différents environnements de marché grâce à une optimisation et à un perfectionnement continus.

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

//@version=5
strategy(title='ADET GİRMELİ Trend İz Süren Stop Strategy', overlay=true, overlay=true,default_qty_type = strategy.fixed, default_qty_value = 1)

// Inputs
a = input(9, title='Key Value. "This changes the sensitivity"')
c = input(3, title='ATR Period')
h = input(false, title='Signals from Heikin Ashi Candles')

xATR = ta.atr(c)
nLoss = a * xATR

src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close

xATRTrailingStop = 0.0
iff_1 = src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss
iff_2 = src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) : iff_1
xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : iff_2

pos = 0
iff_3 = src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0)
pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1 : iff_3

xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue

ema = ta.ema(src, 1)
above = ta.crossover(ema, xATRTrailingStop)
below = ta.crossover(xATRTrailingStop, ema)

buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below

barbuy = src > xATRTrailingStop
barsell = src < xATRTrailingStop
// Alım ve Satım Sinyalleri
buySignal = src > xATRTrailingStop and above
sellSignal = src < xATRTrailingStop and below

// Kullanıcı girişi
sell_quantity = input.int(1, title="Sell Quantity", minval=1)
buy_quantity = input.int(1, title="Buy Quantity", minval=1)

// Portföy miktarı (örnek simülasyon verisi)
var portfolio_quantity = 0

// Sinyal üretimi (örnek sinyal, gerçek stratejinizle değiştirin)
indicator_signal = (src > xATRTrailingStop and above) ? "buy" : 
                   (src < xATRTrailingStop and below) ? "sell" : "hold"

// Şartlara göre al/sat
if indicator_signal == "buy" and portfolio_quantity < buy_quantity
    strategy.entry("Buy Order", strategy.long, qty=buy_quantity)
    portfolio_quantity := portfolio_quantity + buy_quantity

if indicator_signal == "sell" and portfolio_quantity >= sell_quantity
    strategy.close("Buy Order", qty=sell_quantity)
    portfolio_quantity := portfolio_quantity - sell_quantity
// Plot buy and sell signals
plotshape(buy, title='Buy', text='Buy', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(sell, title='Sell', text='Sell', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)

// Bar coloring
barcolor(barbuy ? color.rgb(6, 250, 14) : na)
barcolor(barsell ? color.red : na)

// Alerts
alertcondition(buy, 'UT Long', 'UT Long')
alertcondition(sell, 'UT Short', 'UT Short')

// Strategy Entry and Exit
if buy
    strategy.entry('Long', strategy.long)
if sell
    strategy.entry('Short', strategy.short)

// Optional Exit Conditions
if sell
    strategy.close('Long')
if buy
    strategy.close('Short')