Die Strategie vergleicht die Richtung der Preisentwicklung durch Berechnung der durchschnittlichen realen Bandbreite von ATR mit den Preisen und kombiniert diese mit einem Moving Average-Hilfsurteil. Im Vergleich zu anderen Methoden zur Trendbeurteilung kann die Trendentwicklung schneller erfasst werden und die Rückkehr ist geringer.
Die Strategie beurteilt die Preisentwicklung in folgenden Schritten:
Berechnen Sie die ATR für den mittleren realen Bandbreite der letzten N Tage. Hier wird die ATR-Berechnung nach Wilders Definition verwendet, um die aktuellen Marktschwankungen besser widerzuspiegeln.
Die oberen und unteren Bahnlinien werden berechnet anhand der ATR- und ATK-Anpassungsfaktoren. Die oberen Bahnlinien sind Preise - ((atk multipliziert mit ATR); die unteren Bahnlinien sind Preise + ((atk multipliziert mit ATR).
Vergleichen Sie die Beziehung zwischen dem Preis und der oberen und unteren Bahnlinie, um die Richtung des Trends zu bestimmen. Der Preis, der die oberen Bahnlinien überschreitet, ist ein positives Signal; der Preis, der die unteren Bahnlinien überschreitet, ist ein negatives Signal.
Wenn ein Handelssignal auftritt, über- oder unterlaufen. Hier wird die Signalqualität durch die Kombination des Moving Averages bestimmt.
Ein Stop-Loss-Strategie-Risiko-Kontrolle wird eingesetzt.
Das Verhalten wird mit Farben markiert, um die Strategie zu unterstützen.
Die Strategie nutzt die Vorteile der ATR, um schnell zu erfassen, wie sich die Preisentwicklung entwickelt, und ermöglicht einen niedrigen Rückzug, was eine typische Trendverfolgung ist.
Diese Strategie hat folgende Vorteile:
Schnelle Reaktion auf Preisänderungen. ATR kann schnell auf aktuelle Trends reagieren, was dazu beiträgt, Trendänderungen rechtzeitig zu erfassen.
Der Rückzug ist gering. Auf und ab der Bahn gibt es eine gewisse Bufferzone, die die Wahrscheinlichkeit verringert, dass der Stoppschaden durchbrochen wird, und den Rückzug verringert.
Die Handelssignale sind eindeutig. Die Berechnung der Breakout-Spanne ist ein hochwertiges Handelssignal.
Der ATR-Zyklus und die Multiplikation sind anpassbar, um sich an unterschiedliche Marktbedingungen anzupassen.
Die Strategie ist intuitiv zu handhaben und zeigt den Status der Strategie anhand von Grafiken.
Optimierbarkeit: Die Optimierung kann durch die Einbindung von Modulen wie Mobile Stop, Filter usw. erfolgen.
Im Allgemeinen ist diese Strategie ein sehr praktischer Handelsprozess, der sich auf kleine Rückzüge und starke Vorteile bezieht, die sich auf die Beobachtung von Trendbewegungen eignen.
Die Strategie birgt einige Risiken:
Risiko von Trendfehlern. Bei Preisschwankungen können falsche Signale auftreten.
Die Risiken der Auswahl des Ausstiegspunktes. Es ist notwendig, einen vernünftigen Stopppunkt zu wählen, um vorzeitige Ausstieg zu verhindern.
Optimierungsrisiken durch Parameter. ATR-Zyklen und Multiplikatoren müssen wiederholt getestet und optimiert werden. Fehlende Einstellungen beeinträchtigen die Strategie-Performance.
Risiken bei zu hoher Handelsfrequenz. Bei starker Volatilität kann die Handelsfrequenz zu hoch sein.
Das Risiko einer negativen Wirkung. In einigen Märkten, in denen keine Trends sichtbar sind, kann die Wirkung schlechter sein.
Risiken der Festplattenanpassung. Bei der Festplattenoperation müssen auch Anpassungsoptimierungen für Gleitpunkte und Gebühren vorgenommen werden.
Systematische Risiken: Die Risikokontrolle des gesamten Systems muss berücksichtigt werden und kann nicht auf die Strategie allein angewiesen sein.
Diese Risiken können mit folgenden Maßnahmen bekämpft werden:
Optimierung der ATR-Parameter zur Verbesserung der Genauigkeit der Beurteilung.
In Kombination mit mehreren Zeiträumen wurde ein Trend festgestellt.
Der mobile Stop-Loss wird genutzt, um Gewinne zu sichern und Rücknahmen zu reduzieren.
Filterbedingungen werden verwendet, um die Häufigkeit des Handels zu kontrollieren.
Strategieparameter für die Anpassung an verschiedene Märkte.
Verschiedene Sorten zu testen und die besten Anwendungsmöglichkeiten zu finden.
Die Risiken der verschiedenen Arten von Transaktionen werden in der virtuellen Welt berücksichtigt.
Diese Strategie kann optimiert werden durch:
Die Einführung von Indikatoren wie der Durchschnittslinie filtert, um Fehlsignale zu reduzieren. Zusätzliche Beurteilungen von Indikatoren wie MACD, KDJ können hinzugefügt werden.
Optimieren von ATR-Parametern. Verschiedene ATR-Parametern können getestet werden, um optimale Werte zu finden.
Optimierung der Multiplikatorparameter. Verschiedene Multiplikatorparameter können getestet werden, um die Empfindlichkeit der erzeugten Signale zu bestimmen.
Eintritt in eine mobile Stop-Strategie. Dynamische Stopps basierend auf ATR oder Volatilität können den Rückzug weiter reduzieren.
In Kombination mit einer mehrfachen Zeitrahmenanalyse. Zusätzlich zu einer höheren Zeitrahmenmessung können sporadische Falschsignale gefiltert werden.
Die Anwendung von maschinellem Lernen verbessert die Signalbeurteilung. Die Modellbeurteilung von Kauf- und Verkaufssignalmodellen wird durch die Ausbildung von Modellen wie RNNs durchgeführt.
Die Parameter für die Variante werden angepasst. Zum Beispiel kann der ATR-Zyklus für schwankende Aktien angemessen verkürzt werden.
Optimierung der Eintrittspunkte.
Die Bindungskapazität ist ein Indikator für die Signalstärke, der durch die Zusammensetzung der Bindungskapazität beurteilt wird.
Hinzufügen von Stopp-Strategien. Bestimmung von Stopppunkten anhand von Trend-Energie-Indikatoren usw.
Die Supertrendstrategie ist eine typische Trendverfolgungsstrategie, die im Allgemeinen sehr praktisch ist, mit Vorteilen wie schnelle Reaktion, geringe Rückziehung und einfache Optimierung. Es ist jedoch auch darauf zu achten, dass Risiken wie Fehleinschätzung und Parameteroptimierung in der Praxis umfassend berücksichtigt werden. Durch weitere Optimierung kann die Strategie stabiler gemacht und in mehr Märkten bessere Erträge erzielt werden.
/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 6h
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/
// © KivancOzbilgic
//@version=4
strategy("SuperTrend STRATEGY", overlay=true)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 999)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => true
longCondition = buySignal
if (longCondition)
strategy.entry("BUY", strategy.long, when = window())
shortCondition = sellSignal
if (shortCondition)
strategy.entry("SELL", strategy.short, when = window())
buy1= barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)
//@version=3
//study(title="3 Moving Average Exponential", shorttitle="3 EMA", overlay=true)
//len1 = input(17, minval=1, title="Fast")
//len2 = input(72, minval=1, title="Medium")
len3 = input(305, minval=1, title="Slow")
//src1 = input(close, title="Source Fast")
//src2 = input(close, title="Source Medium")
src3 = input(close, title="Source Slow")
//out1 = ema(src1, len1)
//out2 = ema(src2, len2)
out3 = ema(src3, len3)
//plot(out1, title="EMA1", color=fuchsia)
//plot(out2, title="EMA2", color=orange)
plot(out3, title="EMA3", color=color.blue)