Duale Zeitrahmen-Super-Trendfolge-Strategie


Erstellungsdatum: 2023-09-22 14:27:52 zuletzt geändert: 2023-09-22 14:27:52
Kopie: 1 Klicks: 760
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Strategie ist eine Hypertrend-Tracking-Strategie mit zwei Zeitfenstern. Sie verwendet zwei Hypertrend-Indikatoren mit unterschiedlichen Perioden, wobei der eine als Hauptzeitfenster die Richtung der Tendenz beurteilt und der andere als Hilfszeitfenster zum Filtern eingesetzt wird. Die Hypertrend-Indikatoren der beiden Zeitfenster werden erst eingesetzt, wenn sie gleichzeitig sind, um die Trendwendepunkte genauer zu erfassen.

Strategieprinzip

Der Kern der Strategie ist der Hypertrend-Indikator. Der Hypertrend-Indikator berechnet die relative Trendrichtung der Preise durch die Berechnung der Preisdiversität. Die Strategie verwendet einen Hypertrend-Indikator für zwei Zeiträume und berechnet die Hypertrendlinie für den Haupt- und den Nebenzeitrahmen.

Die Transaktionslogik lautet wie folgt:

  1. Beurteilen Sie die Richtung der Übertrendlinie des Hauptzeitrahmens als die Richtung des Großtrends.

  2. Warten Sie, bis der zusätzliche Zeitrahmen übertritt, bis ein positionales Gleichgewichtssignal ausgegeben wird.

  3. Setzen Sie die Stop-Loss-Stopp-Punkt-Einstellung.

  4. Die Haupttaktlinie überschreitet die Trendlinie und dreht sich erneut.

Durch die Kombination der beiden Periodenindikatoren können einige Abweichungen gefiltert werden, um den Einstieg präziser zu machen.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Die Kombination von zwei Zeitfenstern ermöglicht eine bessere Beurteilung der Trends.

  2. Der Hypertrend-Indikator ist auf Trendänderungen empfindlich und präzise für den Einstieg.

  3. Ein Stop-Loss-Stop-Point-Set kann das Risiko kontrollieren.

  4. Die Strategie ist einfach, unkompliziert und leicht verständlich.

  5. Die Parameter können selbst optimiert werden, um sie an verschiedene Sorten anzupassen.

Risikoanalyse

Die Risiken dieser Strategie sind:

  1. Der Übertrendindikator ist mit einer Verzögerung in der Lage, ein Signal zu missverstehen.

  2. Eine falsche Einstellung des Schadensstoppers kann zu einer übermäßigen Nachholung oder einem vorsätzlichen Schadensstopp führen.

  3. Eine Kombination aus zwei Zeiträumen könnte eine kürzere Umkehrschance verpassen.

  4. Die Optimierung der Parameter ist auf historische Daten angewiesen, und es besteht das Risiko einer Überpassung.

  5. Die Auswirkungen der Transaktionskosten werden nicht berücksichtigt.

Entsprechende Lösungen:

  1. Anpassung der Parameter des Indikators und Einführung einer Validierung anderer Indikatorenkombinationen.

  2. Optimierung der Stop-Loss-Stoppposition auf Basis der dynamischen Rückmessdaten.

  3. Kurzer Testzyklus als Hilfsmittel zur Beurteilung.

  4. Erweiterung der Datenrückverfolgung und Validierung der Mehrmarktrückverfolgung.

  5. Die Kosten für Transaktionen wie Gebühren, Zuschläge usw. werden berechnet.

Optimierungsrichtung

Die Strategie kann weiter optimiert werden:

  1. Versuchen Sie, mehr Indikatoren zu kombinieren, um die optimale Kombination zu finden.

  2. Einführung von maschinellen Lernmethoden zur dynamischen Optimierung von Parametern.

  3. Optimierung der Stop-Loss-Strategie und Verbesserung der Gewinn- und Verlustquote.

  4. Versuchen Sie eine Kombination aus mehreren Zeiträumen.

  5. Anpassung des Stop-Loss-Bereichs an die Anzahl der Transaktionen.

  6. Die Berechnungslogik für die Einbeziehung von Gebühren und Gleitpunkten.

  7. Entwicklung von Werkzeugen zur Optimierung von Grafikparametern.

Zusammenfassen

Die Strategie ermöglicht eine präzisere Trendentscheidung und -Einträge durch Übertrend-Indikatoren in zwei Zeiträumen. Die Strategie-Logik ist einfach, klar und leicht zu optimieren. Im Nachhinein kann die Strategie verbessert werden, indem mehr Indikatoren, dynamische Optimierungsparameter und die Berechnung der Transaktionskosten hinzugefügt werden.

Strategiequellcode
/*backtest
start: 2023-08-22 00:00:00
end: 2023-09-21 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator

// strategy("Super Trend 2", overlay=true, default_qty_value=100)
TrendUp = 0.0
TrendDown = 0.0
Trend = 0.0
MTrendUp = 0.0
MTrendDown = 0.0
MTrend = 0.0

res = input(title="Main SuperTrend Time Frame",  defval="120")
Factor=input(1, minval=1,maxval = 100)
Pd=input(1, minval=1,maxval = 100)

tp = input(500,title="Take Profit")
sl = input(400,title="Stop Loss")


Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
MUp=security(syminfo.tickerid,res,hl2-(Factor*atr(Pd)))
MDn=security(syminfo.tickerid,res,hl2+(Factor*atr(Pd)))

Mclose=security(syminfo.tickerid,res,close)

TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

MTrendUp:=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp
MTrendDown:=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn

Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

MTrend := Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1)
MTsl = MTrend==1? MTrendUp: MTrendDown

linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")

Mlinecolor = MTrend == 1 ? blue : orange
plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend")

plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)

up = Trend == 1 and Trend[1] == -1 and MTrend == 1 
down = Trend == -1 and Trend[1] == 1 and MTrend == -1 
plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)


golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 
goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 

strategy.entry("Buy", strategy.long,when=golong)
strategy.exit("Close Buy","Buy",profit=tp,loss=sl)
   
   
strategy.entry("Sell", strategy.short,when=goshort)
strategy.exit("Close Sell","Sell",profit=tp,loss=sl)