Der Kerngedanke dieser Strategie besteht darin, den vom ATR-Indikator berechneten Preisschwankungsbereich zu verwenden, um Preisdurchbrüche zu beurteilen, und den EMA-Indikator, um die allgemeine Trendrichtung zu beurteilen, um einen Trend nach dem Handel zu erzielen. Wenn der Preis die obere oder untere Grenze des ATR-Bereichs durchbricht, wenn die Durchbruchsschwelle mit der EMA-Richtung übereinstimmt, nehmen Sie lange oder kurze Positionen. Die Schlusskondition ist, dass der Preis erneut durch die ATR-Bereich durchbricht.
Erstens verwendet diese Strategie den ATR-Indikator, um den Kursschwankungsbereich über einen bestimmten Zeitraum zu berechnen. Die obere Grenze des ATR-Bereichs ist SMA+ATR und die untere Grenze ist SMA-ATR.
Wenn der Preis die obere oder untere Grenze des ATR-Bereichs durchbricht, tritt eine Handelsmöglichkeit auf. Zu diesem Zeitpunkt ist es notwendig, die Richtung zu beurteilen. Wenn es sich um einen Aufbruch handelt, gehen Sie lang. Wenn es sich um einen Abbruch handelt, gehen Sie kurz. Um sicherzustellen, dass die Durchbruchrichtung mit der Trendrichtung übereinstimmt, verwendet die Strategie den EMA-Indikator, um die allgemeine Trendrichtung zu bestimmen. Nur wenn die Durchbruchrichtung mit der EMA-Richtung übereinstimmt, wird eine Position eingenommen.
Schließlich verwendet die Strategie den Preis, der erneut durch die ATR-Range durchbricht, als Schlusssignal.
Die Verwendung des ATR-Indikators zur Ermittlung von Durchbrüchen kann die Durchbrüche des Kurstrends effektiv erfassen.
Durch das Hinzufügen des EMA-Indikators als richtungsorientiertes Urteil wird vermieden, gegen die Trendrichtung zu handeln, was die Gewinnrate erheblich verbessern kann.
Die Verwendung des Preisrückgangs über den ATR-Bereich als Stop-Loss-Methode kann die Risikokontrolle maximieren.
Auf einem volatilen Markt kann die ATR-Bereichsbreite häufig überschritten werden, was leicht zu übermäßigen ungültigen Trades und größeren Verlusten führt.
Der EMA als Indikator für die Beurteilung der Trendrichtung ist etwas zurückgeblieben, so dass er Möglichkeiten für kurzfristige Kursumkehrungen verpassen kann.
Die Stop-Loss-Methode ist ein Preisrückgang über den Bereich, der aufgrund plötzlicher Ereignisse leicht zu vergrößerten Verlusten führen kann.
Es sollte in Betracht gezogen werden, andere Indikatoren zu kombinieren, um Trends und Rückgänge zu ermitteln, um einzigartige EMA-Bewertungsfehler wie MACD, KDJ usw. zu vermeiden.
Es sollte in Betracht gezogen werden, die ATR-Parameter in Echtzeit entsprechend der Marktvolatilität anzupassen, damit der ATR-Bereich der tatsächlichen Schwankung näher kommt.
Überlegen Sie, ob Sie eine bewegliche Stop-Loss-Methode verwenden, um den Stop-Loss-Punkt kontinuierlich anzupassen, um die Risikokontrolle einzelner Verluste zu maximieren.
Die Gesamtidee dieser Strategie ist klar, indem der ATR-Indikator verwendet wird, um Preisdurchbrüche zu bestimmen und mit der EMA zusammenzuarbeiten, um die Richtung zu bestimmen, kann er Trends effektiv verfolgen; Die Stop-Loss-Methode ist einfach und einfach zu bedienen. Aber gleichzeitig gibt es bestimmte Risiken und einen großen Raum für Optimierung, die weitere Tests und Anpassungen erfordern. Im Allgemeinen ist diese Strategie für Trendhändler geeignet, die hohe Gewinnraten anstreben.
/*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) //------------