SuperTrend-Trend nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-09-24 13:19:47
Tags:

Übersicht

Diese Strategie verwendet den SuperTrend-Indikator, um die Kursentwicklungsrichtung zu bestimmen und Handelssignale zu erzeugen, die zur Kategorie der Trendfolgestrategie gehören.

Strategie Logik

  1. Berechnen Sie ATR und den Durchschnitt des höchsten Höchst- und des niedrigsten Tiefstands, um die oberen und unteren SuperTrend-Bänder anhand des Multiplikators zu bestimmen.

  2. Bestimmen Sie, ob der Preis über das obere Band oder unter das untere Band bricht, um die SuperTrend-Richtung zu ermitteln.

  3. Langes Signal, wenn der Preis über das untere Band überschreitet. Kurzes Signal, wenn der Preis unter das obere Band überschreitet.

  4. Sie können wählen, ob Sie die nächste Bar öffnen, wenn das Signal ausgelöst wird, oder sofort, wenn der Preis die SuperTrend-Bänder erreicht.

Vorteile

  1. SuperTrend identifiziert Trends deutlich, einfach zu programmieren.

  2. Flexible Einstiegsmöglichkeiten entsprechen den unterschiedlichen Präferenzen der Händler.

  3. Kann mittelfristige Trends schnell erfassen, geeignet zum Trendverfolgen.

  4. Häufiger Handel ermöglicht Erweiterungen und Verbesserungen.

Risiken

  1. SuperTrend verfehlt möglicherweise die besten Einträge.

  2. Eine hohe Handelsfrequenz führt zu höheren Schlupfkosten.

  3. Keine Risikokontrolle wie Stop Loss.

  4. Backtest nur auf Tesla 1-Minuten-Daten, schwer zu beweisen Strategie Gültigkeit.

Mögliche Lösungen:

  1. Passen Sie die Parameter an, um die Verzögerung zu reduzieren.

  2. Um die Kosten zu begrenzen, wird eine Schlupfkontrolle hinzugefügt.

  3. Einbeziehung von Stop-Loss für den Kontrollverlust pro Handel.

  4. Backtest für mehr Produkte und Zeitrahmen für die Robustheit.

Optimierungsrichtlinien

  1. Versuche verschiedene Parametersätze, um die Verzögerung zu reduzieren.

  2. Fügen Sie Filter hinzu, um Whipsaws zu vermeiden.

  3. Optimierung des Geldmanagements für höhere Effizienz.

  4. Einbeziehen von maschinellem Lernen, um die Supertrend-Richtung vorherzusagen.

  5. Hinzufügen anderer Indikatoren zur Überprüfung der Signale und Verbesserung der Stabilität.

Zusammenfassung

Diese Strategie verwendet SuperTrend, um die mittelfristige Trendrichtung für Handelssignale zu identifizieren, die typisch für Trendfolgestrategien ist. Der Gesamtrahmen ist einfach und effektiv, kann aber in Bereichen wie Einstiegsmöglichkeiten, Risikomanagement, Parameterwahl usw. weiter verbessert werden. Mit mehr historischen Daten über Produkte hinweg und integrierten Techniken wie maschinellem Lernen kann es die Stabilität und Rentabilität erheblich verbessern.


/*backtest
start: 2023-08-24 00:00:00
end: 2023-09-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("QuantNomad - SuperTrend - TSLA - 1m", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// INPUTS //
st_mult   = input(3,   title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(120, title = 'SuperTrend Period',     minval = 1)

// CALCULATIONS //
up_lev = hl2 - (st_mult * atr(st_period))
dn_lev = hl2 + (st_mult * atr(st_period))

up_trend   = 0.0
up_trend   := close[1] > up_trend[1]   ? max(up_lev, up_trend[1])   : up_lev

down_trend = 0.0
down_trend := close[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := close > down_trend[1] ? 1: close < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend ==1 ? up_trend : down_trend

// Plotting
plot(st_line, color = trend == 1 ? color.green : color.red , style = plot.style_line, linewidth = 2, title = "SuperTrend")

plotshape(crossover( close, st_line), location = location.belowbar, color = color.green)
plotshape(crossunder(close, st_line), location = location.abovebar, color = color.red)

// Strategy with "when"
//strategy.entry("long",  true,  when = crossover( close, down_trend[1]))
//strategy.entry("short", false, when = crossunder(close, up_trend[1]))

// Strategy with stop orders
strategy.entry("long",  true,  stop = down_trend[1])
strategy.entry("short", false, stop = up_trend[1])

Mehr