SuperTrend und DEMA-basierte Trendstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-08 16: 42:14
Tags:

img

Übersicht

Diese Strategie kombiniert den SuperTrend-Indikator und den DEMA-Indikator, um einen Trend nach der Handelsstrategie umzusetzen. Es erzeugt Kaufsignale, wenn der Preis durch das obere Band bricht, und Verkaufssignale, wenn der Preis durch das untere Band bricht. Der DEMA-Indikator wird verwendet, um falsche Signale auszufiltern. Diese Strategie funktioniert gut für Trending-Märkte und kann Trends effektiv verfolgen und Konsolidierungen ausfiltern.

Strategie Logik

Der Kern dieser Strategie beruht auf dem SuperTrend-Indikator, um die Trendrichtung der Preise zu bestimmen. Der SuperTrend-Indikator enthält den ATR-Indikator und kann Preistrends effektiv identifizieren. Wenn die Preise steigen, bildet sich ein oberes Band und wenn die Preise fallen, bildet sich ein unteres Band. Ein Ausbruch aus dem unteren Band signalisiert eine Trendwende und erzeugt ein Kaufsignal. Ein Ausbruch aus dem oberen Band signalisiert eine Trendwende und erzeugt ein Verkaufssignal.

Um falsche Signale auszufiltern, beinhaltet diese Strategie auch den DEMA-Indikator. Kaufsignale werden nur generiert, wenn die Preise durch das obere Band durchbrechen und über der DEMA-Linie liegen. Verkaufssignale werden nur generiert, wenn die Preise durch das untere Band durchbrechen und unter der DEMA-Linie liegen. Dies filtert effektiv falsche Signale in verschiedenen Märkten aus.

Insbesondere ist die Handelssignallogik wie folgt:

  1. Ein Ausbruch aus dem unteren Band signalisiert eine Trendumkehr und erzeugt ein Kaufsignal.
  2. Ein Ausbruch aus dem oberen Band signalisiert eine Trendumkehr und erzeugt ein Verkaufssignal.
  3. Ein tatsächliches Kaufsignal wird nur generiert, wenn das Kaufsignal angezeigt wird und der Preis über der DEMA-Linie liegt.
  4. Ein tatsächliches Verkaufssignal wird nur generiert, wenn das Verkaufssignal angezeigt wird und der Preis unterhalb der DEMA-Linie liegt.

Durch diese logische Gestaltung kann die Strategie den Trends in den Trendmärkten folgen und vermeiden, häufig Positionen in unterschiedlichen Märkten zu eröffnen.

Vorteile der Strategie

  • Kombiniert die Vorteile von SuperTrend und DEMA-Indikatoren, um Trendverfolgung und Signalfilterung zu erreichen.
  • Einfach zu optimieren SuperTrend-Parameter für verschiedene Produkte und Zeitrahmen.
  • Einfache Optimierung der DEMA-Parameter ohne wiederholte Tests.
  • Geeignet für Trendmärkte, kann Trends effektiv verfolgen.
  • Falsche Signale in verschiedenen Märkten werden durch den DEMA-Indikator herausgefiltert.
  • Einfache Logik und leicht zu verstehen und zu ändern.

Risiken der Strategie

  • Kann extreme Preisschwankungen nicht gut bewältigen.
  • Bei einer Umkehrung des Trends können Verluste entstehen.
  • Unpassende DEMA-Einstellungen können die besten Ein-/Ausgangspunkte verfehlen.
  • Unpassende SuperTrend-Parameter wie ATR-Periode können falsche Signale erzeugen.

Risikomanagement:

  • Optimieren Sie die DEMA- und SuperTrend-Parameter.
  • Verwenden Sie Stop-Loss-Orders, um Verluste zu begrenzen.
  • Hinzufügen von Bestätigungsmechanismen an wichtigen Stellen, um falsche Signale zu vermeiden.

Verbesserungsbereiche

Die Strategie kann in folgenden Aspekten verbessert werden:

  1. Test verschiedene ATR-Periodenkombinationen, um optimale Parameter zu finden.

  2. Test verschiedene Werte, um optimale Einstellungen zu ermitteln.

  3. Setzen Sie Stop-Loss basierend auf ATR-Werten, um übergroße Stopps zu verhindern.

  4. Hinzufügen von Signalfiltern. Erhöhen Sie die Bestätigung von anderen Indikatoren an wichtigen Punkten, um falsche Signale zu verhindern. Zum Beispiel fügen Sie die Bestätigung von Volumen an Trendumkehrpunkten hinzu.

  5. Verbesserung der Positionsgröße und dynamische Anpassung der Positionsgrößen anhand von Marktvolatilität und -risiken.

Schlussfolgerung

Diese Strategie kombiniert die Stärken der SuperTrend- und DEMA-Indikatoren, um eine quantitative Handelsstrategie zu implementieren, die auf Trendverfolgung und Signalfilterung basiert. Es gibt viel Raum für Optimierung durch Parameter-Tuning, Stop-Losses und Signalfilter, um die Stabilität und Rentabilität weiter zu verbessern. Die Strategielogik ist einfach und einfach zu implementieren mit kontrollierbaren Risiken.


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

//@version=5
strategy('Krish\'s Supertrend Strategy', overlay=true)

// Supertrend Settings
Periods = input(title='ATR Period', defval=10)
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
highlighting = input(title='Highlighter On/Off ?', defval=true)

atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2

up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up

dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.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.new(color.green, 0))
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.new(color.green, 0))
plotshape(buySignal and showsignals ? up : na, title='Buy', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))

dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
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.new(color.red, 0))
plotshape(sellSignal and showsignals ? dn : na, title='Sell', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))

// DEMA Settings
dema_length = 200
dema = ta.ema(close, dema_length)

// Long and Short Conditions
longCondition = buySignal and close > dema
shortCondition = sellSignal and close < dema

// Strategy Entry and Exit
strategy.entry('Long', strategy.long, when=longCondition)
strategy.entry('Short', strategy.short, when=shortCondition)

strategy.close('Long', when=ta.change(trend) or close < dema)
strategy.close('Short', when=ta.change(trend) or close > dema)

// Plotting
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 Highlighter', color=longFillColor, transp=90)
fill(mPlot, dnPlot, title='DownTrend Highlighter', color=shortFillColor, transp=90)

// Alerts (using plotshape for alerts in strategies)
plotshape(buySignal, title='SuperTrend Buy', color=color.new(color.green, 0), style=shape.triangleup, size=size.small)
plotshape(sellSignal, title='SuperTrend Sell', color=color.new(color.red, 0), style=shape.triangledown, size=size.small)
changeCond = trend != trend[1]
plotshape(changeCond, title='SuperTrend Direction Change', color=color.new(color.yellow, 0), style=shape.triangleup, size=size.small)




Mehr