Handelsstrategie für den Supertrend-Ausbruch

Schriftsteller:ChaoZhang, Datum: 2024-02-18 14:19:58
Tags:

img

Übersicht

Diese Strategie wird auf der Grundlage des Supertrend-Indikators entwickelt und kombiniert Preisaktion und die Richtung des Supertrend-Kanals, um Markttrends zu beurteilen und Handelssignale zu generieren, wenn sich die Kanalrichtung ändert.

Wenn der Preis durch den Supertrend-Kanal bricht, gehen Sie lang; wenn der Preis unter den unteren Kanal des Supertrends bricht, gehen Sie kurz.

Strategie Logik

Der Supertrend-Kanal besteht aus einer oberen und einer unteren Schiene. Der Bereich innerhalb des Kanals ist der Konsolidierungsbereich und der Bereich außerhalb ist der Trendbereich. Er verwendet den durchschnittlichen wahren Bereich multipliziert mit einem Faktor, um die Breite des Kanals zu bestimmen.

Wenn der Preis von unten durch die obere Schiene bricht, ist es ein Kaufsignal. Dies bedeutet, dass ein neuer Aufwärtstrend beginnt. Wenn der Preis von oben durch die untere Schiene bricht, ist es ein Verkaufssignal. Dies bedeutet, dass ein neuer Abwärtstrend beginnt.

Die Strategie verwendet den Supertrend-Indikator, um die Haupttrendrichtung zu beurteilen. Wenn sich die Kanalrichtung ändert, d.h. wenn der Preis durch die Kanalräder bricht, werden Handelssignale generiert. Dann verwenden Sie einen Trend-Tracking-Stop-Loss, um Gewinne zu erzielen.

Analyse der Vorteile

Dies ist eine relativ einfache und intuitive Breakout-Strategie, die folgende Vorteile hat:

  1. Verwenden Sie Supertrend-Kanäle, um die Haupttrendrichtung zu bestimmen und Lärmhandel zu vermeiden.

  2. Folgen Sie dem Trend, beurteilen Sie langfristige und kurze Chancen anhand der Beziehung des Preises zum Kanal.

  3. Sie verfügt über einen klaren Stop-Loss-Mechanismus zur effektiven Risikokontrolle.

  4. Die Stop-Loss-Methode ist Trend-Tracking-Stop-Loss, die die Gewinnverriegelung maximieren kann.

Risiken und Verbesserungen

Diese Strategie birgt auch einige Risiken, darunter vor allem:

  1. Eine falsche Einstellung der Parameter des Supertrends kann zu falschen Signalen führen.

  2. Breakout-Signale können kurzfristige Umkehrsignale sein, die zu Verlusten führen.

  3. Die Stop-Loss-Methode ist nur eine Trend-Tracking-Stop-Loss-Methode, die Verluste vorzeitig stoppen kann.

Zu den entsprechenden Verbesserungsmaßnahmen gehören:

  1. Daten aus verschiedenen Märkten testen und Parameter optimieren.

  2. Filtersignale in Kombination mit anderen Indikatoren.

  3. Beurteilen Sie die Zuverlässigkeit von Ausbruchssignalen in Kombination mit der Preisstruktur.

  4. Erhöhen Sie den Hintergrundstop-Loss, um Risiken weiter zu kontrollieren.

Zusammenfassung

Im Allgemeinen ist diese Strategie eine relativ einfache und intuitive Trendfolgestrategie. Sie verwendet Supertrend-Kanäle, um die Trendrichtung eindeutig zu bestimmen und erzeugt Signale, wenn der Kanal die Richtung ändert.

Im Vergleich zu anderen Indikatoren hat der Supertrend-Kanal eine bessere Toleranz für Kursschwankungen. Aber es gibt immer noch Gewinnraum für diese Strategie. Sie kann in Bezug auf Signalfilterung und Stop-Loss-Methoden optimiert werden, um die Stabilität weiter zu verbessern.


/*backtest
start: 2023-02-11 00:00:00
end: 2024-02-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Supertrend TEST Strategy", overlay = true, format=format.price, precision=2)

Periods = input(title="ATR Period", type=input.integer, defval=4)
src = input(hlc3, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=4.7)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=true)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
tp=close
sl=close

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 )
plotshape(buySignal and showsignals ? up : na, title="Лонг", text="Лонг", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white )
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 )
plotshape(sellSignal and showsignals ? dn : na, title="Шорт", text="Шорт", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white )
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



if (strategy.position_size > 0)
	tp:=tp[1]
	sl:=up
	strategy.exit("Long_TP/SL","Long",limit=tp, stop=sl)
	
if (strategy.position_size < 0)
	tp:=tp[1]
	sl:=dn
	strategy.exit("Short_TP/SL","Short",limit=tp, stop=sl)



if buySignal 
	tp:=close+(close-up)*0.382
    strategy.entry("Long", strategy.long,  limit=tp, comment=tostring(round(tp)))
if sellSignal
	tp:=close-(dn-close)*0.382
    strategy.entry("Short", strategy.short, limit=tp, comment=tostring(round(tp)))




Mehr