Tout sur la stratégie de suivi de la tendance basée sur l'ATR et l'EMA

Auteur:ChaoZhang est là., Date: 2024-02-23 14h34 et 24h
Les étiquettes:

img

Résumé

L'idée de base de cette stratégie est d'utiliser la plage de fluctuation des prix calculée par l'indicateur ATR pour juger des percées des prix et l'indicateur EMA pour juger de la direction générale de la tendance, afin d'atteindre la tendance après le trading.

Principe de stratégie

Premièrement, cette stratégie utilise l'indicateur ATR pour calculer la fourchette de fluctuation des prix sur une certaine période. La limite supérieure de la fourchette ATR est SMA+ATR, et la limite inférieure est SMA-ATR.

Lorsque le prix franchit la limite supérieure ou inférieure de la gamme ATR, une opportunité de trading se produit. À ce moment-là, il est nécessaire de juger de la direction. S'il s'agit d'une percée ascendante, allez long. S'il s'agit d'une percée descendante, allez court. Pour s'assurer que la direction de la percée est cohérente avec la direction de la tendance, la stratégie utilise l'indicateur EMA pour déterminer la direction globale de la tendance.

Enfin, la stratégie utilise le prix qui franchit à nouveau la fourchette ATR comme signal de clôture. Après avoir passé long, fermer la position lorsque le prix tombe en dessous de la limite inférieure; après avoir passé court, fermer la position lorsque le prix dépasse la limite supérieure.

Les avantages de la stratégie

  1. L'utilisation de l'indicateur ATR pour déterminer les percées peut capturer efficacement les percées de la tendance des prix.

  2. L'ajout de l'indicateur EMA comme jugement directionnel évite de négocier contre la direction de la tendance, ce qui peut considérablement améliorer le taux de profit.

  3. L'utilisation de la rupture de prix au-dessus de la fourchette ATR comme méthode de stop loss peut maximiser le contrôle des risques.

Risques stratégiques

  1. Dans un marché volatil, la fourchette ATR peut être fréquemment dépassée, ce qui conduit facilement à des transactions invalides excessives et à des pertes plus importantes.

  2. L'EMA, comme indicateur pour juger de l'orientation de la tendance, a un certain retard. Il peut donc manquer des opportunités d'inversions de prix à court terme.

  3. La méthode de stop-loss consiste à repousser le prix au-dessus de la fourchette, ce qui peut facilement entraîner des pertes accrues en raison d'événements soudains.

Directions d'optimisation de la stratégie

  1. Envisagez de combiner d'autres indicateurs pour déterminer les tendances et les reculs afin d'éviter les erreurs de jugement singulières de l'EMA. tels que MACD, KDJ, etc.

  2. Il convient d'envisager d'ajuster les paramètres ATR en temps réel en fonction de la volatilité du marché afin que la fourchette ATR soit plus proche de la fluctuation réelle.

  3. L'analyse des risques est réalisée en utilisant les méthodes suivantes:

Résumé

L'idée générale de cette stratégie est claire, en utilisant l'indicateur ATR pour déterminer les percées de prix et en coopérant avec l'EMA pour déterminer la direction, il peut suivre efficacement les tendances; La méthode de stop loss est simple et facile à utiliser.


/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © cwagoner78
//@version=4
strategy("cATRpillar", overlay=true)
//------------

//inputs
lookback = input(title="Periods", type=input.integer, defval=37)
atrMult = input(title="Range Multiplier", type=input.float, defval=.2)
takeProfit = input(title="Take Profit", type=input.float, defval=5000)
stopLoss = input(title="Stop Loss", type=input.float, defval=2500)
lots = input(title="Lots to Trade", type=input.float, defval=1)
//------------

//indicators
atr=atr(lookback)*atrMult
sma=sma(close, lookback)
ema=ema(close,lookback*2)
rangeLo=sma-atr
rangeHi=sma+atr
//------------

//draw objects
p0 =plot(close, title="Close", color=#26A69A, linewidth=0, transp=80,style=plot.style_stepline)
p1 =plot(rangeHi, title="High", color=color.fuchsia, linewidth=0, transp=80,style=plot.style_stepline)
p2 =plot(rangeLo, title="Low", color=color.lime, linewidth=0, transp=80,style=plot.style_stepline)
p3 =plot(ema, title="EMA", color=color.white, linewidth=0, transp=80, style=plot.style_stepline)
fill(p1, p0, color=color.fuchsia)
fill(p0, p2, color=color.lime)
//------------

//Trading
atrShort=open[1] > rangeHi and open < rangeLo
atrLong=open[1] < rangeLo and open > rangeHi
exitLong=open>rangeLo
exitShort=open<rangeHi

//Long
longCondition=atrLong and open>ema+atr
strategy.entry(id="cATRpillar-Buy", long=true, when=longCondition)
longCloseCondition=exitLong
strategy.exit(id="cATRpillar-Exit", qty=lots, profit=takeProfit, loss=stopLoss, when=longCloseCondition)

//Short
shortCondition=atrShort and open<ema-atr
strategy.entry(id="cATRpillar-Sell", long=false, when=shortCondition)
shortCloseCondition=exitShort
strategy.exit(id="cATRpillar-Exit",  qty=lots, profit=takeProfit, loss=stopLoss, when=shortCloseCondition)

plotshape(shortCondition,  title= "Short", location=location.belowbar, color=color.fuchsia, transp=80, style=shape.triangledown, size=size.tiny)
plotshape(longCondition,  title= "Long", location=location.abovebar, color=color.lime, transp=80, style=shape.triangleup, size=size.tiny)
//------------







Plus de