Supertrend-Tracking-Strategie


Erstellungsdatum: 2023-12-26 15:58:55 zuletzt geändert: 2023-12-26 15:58:55
Kopie: 1 Klicks: 611
1
konzentrieren Sie sich auf
1623
Anhänger

Supertrend-Tracking-Strategie

Überblick

Die Strategie ist eine Supertrend-Strategie der Tracking-Art, wobei die Hauptidee darin besteht, Supertrend-Indikatoren in Kombination mit verschiedenen Parameter-Einstellungen zu verfolgen, um die Tracking-Effekte zu erzielen, und die Filter-Indikatoren zur Risikokontrolle zu nutzen. Die Kernidee der Strategie ist einfach, praktisch und leicht verständlich und ist für Anfänger geeignet.

Strategieprinzip

Diese Strategie besteht aus drei Gruppen von Supertrend-Indikatoren mit unterschiedlichen Parameter-Sätzen. Die erste Gruppe von Haupt-Supertrend-Indikatoren verwendet die Standardparameter, um die Richtung der Markttrends zu bestimmen. Die zweite Gruppe von Neben-Supertrend-Indikatoren ermöglicht es, Preisänderungen sensibler zu verfolgen, indem sie die ATR-Zyklen reduzieren und die ATR-Multiplikatoren erhöhen.

Wenn der Haupt-Super-Trend ein Kaufsignal ausgibt, wird ein Tracking-Buy durchgeführt, wenn der Neben-Super-Trend ein Signal gleichzeitig ausgibt und der Filter-Super-Trend in Richtung Aufwärts ist. Wenn der Haupt-Super-Trend ein Verkaufsignal ausgibt, wird ein Tracking-Sell durchgeführt, wenn der Neben-Super-Trend ein Signal gleichzeitig ausgibt und der Filter-Super-Trend in Richtung Abwärts ist.

Strategische Vorteile

  1. Die Strategie ist einfach, klar und leicht zu verstehen und für Anfänger geeignet.
  2. Strategie-Parameter-Einstellungen sind vernünftig, um Trends zu verfolgen und Risiken zu kontrollieren
  3. Strategische Signale sind genauer, zuverlässiger und gewinnen häufiger.
  4. Verschiedene Kombinationen von Parametern, um Tracking-Effekte zu erreichen
  5. Zusätzliche Filtermechanismen, um falsche Signale effektiv zu filtern und Risiken zu kontrollieren

Strategisches Risiko

  1. Das Systemrisiko der Aktien selbst
  2. Der Supertrend-Indikator könnte in einigen Märkten zurückbleiben
  3. Die falsche Einstellung der Parameter des ATR-Indikators kann zu einer Abweichung der Strategie-Signale führen
  4. Unzureichende Strategie-Trading-Volumen können zu einer schweren Schließung führen

Die wichtigsten Risiken sind:

  1. Aktien mit hoher Liquidität und hoher Volatilität wählen
  2. Optimierung der Parameter, um die mögliche Verzögerung zu verringern
  3. Optimierte Parameter-Tests zur Erhöhung der Signalgenauigkeit
  4. Um den Stop-Loss-Raum zu gewährleisten, erhöhen Sie den Umsatz entsprechend.

Richtung der Strategieoptimierung

  1. Verschiedene Kombinationen von ATR-Zyklusparametern zu testen und die Tracking-Effekte zu optimieren
  2. Versuchen Sie es mit einem anderen Volatilitätsindikator als dem ATR.
  3. Erhöhung oder Verringerung der Anzahl der Supertrend-Kombinationen, Testergebnisse
  4. Versuchen Sie, die Signalfilterung in Kombination mit anderen Kennzahlen zu optimieren
  5. Verschiedene Methoden zur Verringerung von Schäden ausprobieren und nach der besten Lösung suchen

Zusammenfassen

Die Gesamtkonzeption der Strategie ist klar und einfach. Durch verschiedene Parameter-Einstellungen von mehreren Supertrend-Indikatoren, die sich gegenseitig unterstützen, können Einstiegs- und Risikokontrollen realisiert werden. Die Strategie-Signal ist präziser, hat eine bessere Live-Performance, ist für Anfänger geeignet und kann auch als Vorlage für die Testoptimierung verschiedener Indikatoren und Parameter verwendet werden.

Strategiequellcode
/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

Periods = input(title="ATR Period", type=input.integer, defval=4)
src = input(hl2, 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

sPeriods=input(title="ATR Period", type=input.integer, defval=8)
sMultiplier=input(title="dop ATR Multiplier", type=input.float, step=0.1, defval=1.5)
satr2 = sma(tr, sPeriods)
satr= changeATR ? atr(sPeriods) : satr2
ssup=ohlc4-(sMultiplier*satr)
ssup1 = nz(ssup[1],ssup)
ssup := close[1] > ssup1 ? max(ssup,ssup1) : ssup
sdn=ohlc4+(sMultiplier*satr)
sdn1 = nz(sdn[1], sdn)
sdn := close[1] < sdn1 ? min(sdn, sdn1) : sdn
strend = 1
strend := nz(strend[1], strend)
strend := strend == -1 and close > sdn1 ? 1 : strend == 1 and close < ssup1 ? -1 : strend
sbuySignal = strend == 1 and strend[1] == -1
ssellSignal = strend == -1 and strend[1] == 1

fPeriods=input(title="ATR Period", type=input.integer, defval=10)
fMultiplier=input(title="filter ATR Multiplier", type=input.float, step=0.1, defval=5)
fatr2 = sma(tr, fPeriods)
fatr= changeATR ? atr(fPeriods) : fatr2
fup=ohlc4-(fMultiplier*fatr)
fup1 = nz(fup[1],fup)
fup := close[1] > fup1 ? max(fup,fup1) : fup
fdn=ohlc4+(fMultiplier*fatr)
fdn1 = nz(fdn[1], fdn)
fdn := close[1] < fdn1 ? min(fdn, fdn1) : fdn
ftrend = 1
ftrend := nz(ftrend[1], ftrend)
ftrend := ftrend == -1 and close > fdn1 ? 1 : ftrend == 1 and close < fup1 ? -1 : ftrend
fbuySignal = ftrend == 1 and ftrend[1] == -1
fsellSignal = ftrend == -1 and ftrend[1] == 1
tcolor=color.new(color.gray,50)
fdnPlot = plot(ftrend == 1 ? na : fdn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=tcolor)
fupPlot = plot(ftrend == 1 ? fup : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=tcolor)



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 and  ftrend==1) or (sbuySignal and trend==1 and  ftrend==1)) 
	tp:=close+(close-up)*0.382
    strategy.entry("Long", strategy.long,  limit=tp, comment=tostring(round(tp)))
if ((sellSignal and ftrend==-1) or (ssellSignal and trend==-1 and  ftrend==-1)) 
	tp:=close-(dn-close)*0.382
    strategy.entry("Short", strategy.short, limit=tp, comment=tostring(round(tp)))