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.
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.
L'utilisation de l'indicateur ATR pour déterminer les percées peut capturer efficacement les percées de la tendance des prix.
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.
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.
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.
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.
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.
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.
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.
L'analyse des risques est réalisée en utilisant les méthodes suivantes:
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) //------------