
Die Strategie erzeugt ein Kaufsignal, wenn der Preis eine EMA überschreitet, und ein Verkaufssignal, wenn der Preis eine EMA unterschreitet, indem sie den ATR-Indikator als Stop-Line berechnet und das Risiko mit dynamischen Stopps verwaltet.
Die Kernlogik der Strategie lautet:
Berechnung des ATR-Wertes als Stop-Loss-Linie für die Berechnung der Stop-Loss-Distanz nLoss
Der Preisquell wird nach der Heikin Ashi-Option h bestimmt, und der Schlusskurs wird als Schlusskurs verwendet, wenn die Heikin Ashi-Option ausgewählt ist
Definition von xATRTrailingStop als dynamische Tracking-Stopplinie, die die aktuelle K-Stopplinie bestimmt, indem sie den Preis mit der vorherigen K-Stopplinie vergleicht
Positionspositionen definieren, wenn der Preis die Stop-Line überschreitet, ist es 1 (mehr), wenn der Preis die Stop-Line unterschreitet, ist es -1 (frei), ansonsten ist es 0 (ohne Positionen)
Berechnen Sie den EMA-Durchschnittswert einer K-Linie und definieren Sie den Indikator als oberflächlich (Kaufsignal) und unterflächlich (Verkaufssignal)
Setzen Sie Ein- und Ausgänge, wenn ein Kauf- und Verkaufssignal auftritt
Die Barcolor-Funktion markiert die Farbe der K-Linie anhand der Position
Markierung von Signalen bei Kauf und Verkauf mit Plotshape
Die Strategie verwaltet das Risiko durch ATR-dynamische Stopps, die in der Lage sind, rechtzeitig einzutreten, wenn ein Trend auftritt, und rechtzeitig zu stoppen, wenn die Stop-Line ausgelöst wird.
Diese Strategie hat folgende Vorteile:
Mit dem ATR-Dynamischen Stop kann die Stop-Distance an die Höhe der Marktfluktuation angepasst werden, um einen zu radikalen Stop zu vermeiden, der durch kurzfristige Preisschwankungen ausgelöst wird, während ein Stop-Loss garantiert wird.
EMAs erzeugen Handelssignale, um unnötige Transaktionen durch falsche Durchbrüche zu filtern.
Ermöglicht die Auswahl von Heikin Ashi-Körpern als Preisquelle und kann Geräusche filtern, um Trends zu erkennen
Positionsmanagement ist klar, die Positionen sind klar und es wird vermieden, häufige Geschäfte zu verfolgen, die zu Verlusten führen.
Handelssignale und Stopps werden durch Zeichnungen, Markierungen und Farbgebung visuell angezeigt
Strategie-Logik ist einfach, klar und leicht zu verstehen und zu ändern
Anpassbare ATR-Zyklen und ATR-Stop-Loss-Multiplier für unterschiedliche Marktbedingungen
Insgesamt ist die Strategie die Integration von Trend-Tracking und Dynamische Stop-Loss-Technologie, die Trends effektiv zu identifizieren und Risiken zu verwalten, für den Handel mit der Verfolgung von mittleren und langen Trends geeignet.
Die Strategie birgt einige Risiken:
Die EMA-Gewinnlinie erzeugt Handelssignale, die möglicherweise nachlässig sind und eine kurze Linie verpassen
Die Stop-Loss-Distanz wird von der ATR festgelegt und ist bei Marktschwankungen häufig zu stoppen
Zwei-seitige Gebühren bei tatsächlichen Transaktionen ohne Berücksichtigung der Kosten beeinträchtigen die Gewinnentwicklung
Keine angemessene Positionskontrollen und Verbesserungen bei der Geldverwaltung
Effektivität ist abhängig von Parameteroptimierungen, die in verschiedenen Märkten angepasst werden müssen
In den USA ist der Markt in den letzten Jahren stark gesunken.
Strategie muss überwacht, eingegriffen oder gestoppt werden
Risiken können durch geeignete Optimierung von Parametern, Positionskontrollen in Kombination mit anderen Indikatoren, Filtersignalen usw. verringert werden. Die Positionsgröße muss im Live-Handel kontrolliert werden, die Strategiewirksamkeit kontinuierlich überwacht werden und bei Bedarf manuell eingegriffen oder geschlossen werden.
Diese Strategie kann in folgenden Bereichen optimiert werden:
Anpassung der ATR-Parameter, um die Stop-Loss-Distanz in verschiedenen Märkten zu optimieren
Verschiedene Gleichheitsindikatoren werden getestet, um falsche Signale weiter zu filtern.
Trendschätzungen hinzugefügt, Trends zu identifizieren und dann wieder einzutreten.
Positionskontrollen eingerichtet, um die Anzahl der Einwegpositionen zu begrenzen
Erhöhung der Bedingungen für die Eröffnung von Positionen, z. B. Handelsvolumen, Abweichung von der Durchschnittspreis
Kosten berücksichtigen und die Stop-Loss-Distanz auf Basis der Gebühren festlegen
Optimierung von Kauf- und Verkaufszeiten, kombiniert mit mehreren Signalen und Indikatoren
Teil- oder Bewegungsstopp
Hinzufügen von Parameteroptimierungsfunktionen, die automatisch Testparameter optimieren
Durch die integrierte Anwendung mehrerer technischer Indikatoren und Optimierungsmethoden kann die Strategie weiter verfeinert und in mehr Märkten stabiler wirken.
Die Strategie integriert dynamische Stop-Loss- und Trend-Tracking-Technologien und bietet die Vorteile eines effektiven Stop-Losses, einer reibungslosen Verfolgung und einer einfachen Verständnis und Optimierung. Sie ist für die Beobachtung von mittleren und langen Trendmodellen geeignet. Es ist jedoch wichtig, die Risiken zu kontrollieren und die Optimierungsparameter zu berücksichtigen.
/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol.
// Inputs
a = input(1, title = "Key Vaule. 'This changes the sensitivity'")
c = input(10, title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")
xATR = atr(c)
nLoss = a * xATR
src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close
xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss),
iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
pos = 0
pos := iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue
ema = ema(src,1)
above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)
buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below
barbuy = src > xATRTrailingStop
barsell = src < xATRTrailingStop
plotshape(buy, title = "Buy", text = 'Buy', style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny)
barcolor(barbuy ? color.green : na)
barcolor(barsell ? color.red : na)
strategy.entry("long", true, when = buy)
strategy.entry("short", false, when = sell)