
Die Kernidee dieser Strategie ist es, die Preisspanne, die durch die ATR-Indikatoren berechnet wird, zu verwenden, um einen Preisbruch zu ermitteln, und die EMA-Indikatoren, um die allgemeine Trendrichtung zu ermitteln, um den Trend zu verfolgen. Wenn der Preis entlang oder nach unten von der ATR-Spanne bricht, wird ein Plus oder ein Minus getätigt, wenn die Breakout-Richtung mit der EMA-Richtung übereinstimmt.
Zunächst berechnet die Strategie mit dem ATR-Indikator die Bandbreite der Preisfluktuation in einem bestimmten Zeitraum. Die obere Grenze des ATR-Bereichs ist SMA + ATR, die untere Grenze ist SMA-ATR.
Eine Handelsmöglichkeit wird gebildet, wenn der Preis von der ATR-Spanne entlang oder nach unten bricht. Zu diesem Zeitpunkt muss die Richtung ermittelt werden. Wenn es sich um einen Aufbruch handelt, wird mehr getan, wenn es sich um einen Abbruch handelt, wird nichts getan.
Schließlich wird die Strategie mit einem Preisrückbruch in die ATR-Bereich als Platzierungssignal verwendet. Ein Plus ist ein Platzierungssignal, wenn der Preis die untere Grenze überschreitet. Ein Defizit ist ein Platzierungssignal, wenn der Preis die obere Grenze überschreitet.
Der ATR-Indikator wird verwendet, um einen Durchbruch zu ermitteln. Der ATR-Bereich wird auf die Fluktuation eingestellt, ohne die normale Fluktuation zu stören.
Die Zugabe von EMAs als Richtungsbeurteilung und die Vermeidung von gegenwärtigen Handelsbewegungen kann die Gewinnrate erheblich erhöhen.
Die Verwendung von Preisen, die die ATR-Reihe überschreiten, als Stop-Loss-Methode kann das Risiko von Verlusten maximieren.
Die ATR-Bereichsbreite kann in einem konjunkturellen Zustand häufig durchbrochen werden, was zu zu vielen ungültigen Transaktionen und vergrößerten Verlusten führen kann.
Die EMA ist ein Indikator für die Richtung der Tendenz. Es gibt eine gewisse Verzögerung. Daher kann die Gelegenheit zur kurzfristigen Preisumkehr verpasst werden.
Die Stop-Loss-Methode ist ein Preisrückbruch, der durch unvorhergesehene Ereignisse verursacht werden kann, um Verluste zu vergrößern.
Trends und Rückschläge können in Kombination mit anderen Indikatoren berücksichtigt werden, um einen EMA-Einzelfehler zu vermeiden. Zum Beispiel MACD, KDJ usw.
Es kann in Erwägung gezogen werden, die ATR-Parameter in Echtzeit an die Marktfluktuation anzupassen, um die ATR-Bereiche näher an die tatsächlichen Schwankungen zu bringen.
Es ist möglich, die Stop-Loss-Methode mit einem mobilen Stop-Loss-System zu kombinieren, um den Stop-Loss-Punkt in Echtzeit anzupassen und das Einzelschädenrisiko so weit wie möglich zu kontrollieren.
Die Strategie ist klar konzipiert, nutzt die ATR-Indikatoren, um den Preisbruch zu bestimmen und die EMA-Bestimmung zu unterstützen, um den Trend effektiv zu verfolgen. Die Stop-Loss-Methode ist direkt und einfach zu bedienen.
/*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)
//------------