Strategie zur Nachverfolgung von Supertrends in zwei Zeiträumen

Schriftsteller:ChaoZhang, Datum: 22.09.2023 14:27:52
Tags:

Übersicht

Dies ist eine doppelte Zeitrahmen-Supertrend-Tracking-Strategie. Es wendet Supertrend-Indikatoren in zwei verschiedenen Zeitabschnitten an, einer als Hauptzeitrahmen zur Bestimmung der Trendrichtung und einer als Hilfszeitrahmen zum Filtern von Einträgen. Es wird nur eingegeben, wenn die Supertrends in beiden Zeitrahmen in die gleiche Richtung sind, um Trendumkehrpunkte genauer zu erfassen.

Strategie Logik

Der Kernindikator dieser Strategie ist der Supertrend. Supertrend bestimmt die relative Trendrichtung der Preise durch Berechnung der Preisvolatilität.

Die spezifische Handelslogik lautet:

  1. Verwenden Sie die Richtung des Hauptzeitrahmens Supertrend als allgemeine Trendrichtung.

  2. Geben Sie ein, wenn der Hilfszeitbereich Supertrend ein Signal in die gleiche Richtung ausgibt.

  3. Setzen Sie Stop-Loss und nehmen Sie Gewinnpunkte.

  4. Aussteigen, wenn der Hauptzeitrahmen Supertrend wieder umdreht.

Durch die Kombination zweier Zeitrahmenindikatoren können einige Abweichungen für eine genauere Eingabe gefiltert werden.

Analyse der Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. Die Kombination von zwei Zeitrahmen ermöglicht eine genauere Bewertung des Trends.

  2. Supertrend ist empfindlich auf Trendänderungen mit präzisen Einträgen.

  3. Stop-Loss und Gewinne-Kontrolle-Risiko.

  4. Einfache und direkte Strategie-Logik, leicht zu verstehen.

  5. Die Parameter können für verschiedene Produkte angepasst werden.

Risikoanalyse

Die wichtigsten Risiken sind:

  1. Eine Verzögerung des Supertrends kann zu fehlerhaften Signalen führen.

  2. Bei einer unzulässigen Stop-Loss- und Take-Profit-Regelung kann es zu übermäßigen Trends oder zu vorzeitigen Stop-Loss-Regelungen kommen.

  3. Ein doppeltes Zeitrahmen kann einige kürzere Umkehrungen verpassen.

  4. Die Optimierung der Parameter beruht auf historischen Daten, es bestehen Risiken einer Überanpassung.

  5. Keine Berücksichtigung der Transaktionskosten.

Die Lösungen sind:

  1. Anpassung der Indikatorparameter, Hinzufügung anderer Indikatoren zur Kombinationsprüfung.

  2. Dynamisch optimieren Sie Stop Loss und Profit auf Basis von Backtest-Ergebnissen.

  3. Test kürzere Zeitrahmen als Hilfsurteil.

  4. Erweitern Sie den Datenbereich der Backtests, Multi-Markt-Backtest-Verifikation.

  5. Hinzu kommen Transaktionskosten wie Provision und Schlupf.

Optimierungsrichtlinien

Die Strategie kann weiter optimiert werden, indem

  1. Ich teste mehr Indikatorenkombinationen, um eine optimale Kombination zu finden.

  2. Maschinelles Lernen zur dynamischen Optimierung von Parametern.

  3. Optimierung von Stop-Loss und Take-Profit für bessere Risikoverhältnisse.

  4. Ich versuche mehr Zeiträume.

  5. Anpassung der Gewinnspanne und des Stop-Loss-Bereichs anhand der Anzahl der Trades.

  6. Zusätzliche Provision und Schlupflogik.

  7. Entwicklung von Werkzeugen zur Optimierung von grafischen Parametern.

Schlussfolgerung

Diese Strategie erreicht durch die Verwendung von Dual-Timeframe-Supertrend-Indikatoren eine relativ genaue Trendbeurteilung und Einträge. Sie steuert Risiken, indem sie Stop-Loss und Take-Profit festlegt. Die Strategie-Logik ist einfach und klar, leicht zu erweitern und zu optimieren. Sie kann durch die Einführung von mehr Indikatoren, die dynamische Optimierung von Parametern, das Hinzufügen von Transaktionskosten usw. weiter verbessert werden, um sie robuster zu machen. Insgesamt bietet diese Strategie eine nützliche Dual-Timeframe-Trend-Tracking-Idee, die einen guten Referenzwert hat.


/*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)



Mehr