Langfristige Handelsstrategie basierend auf SuperTrend


Erstellungsdatum: 2023-09-20 17:14:33 zuletzt geändert: 2023-09-20 17:14:33
Kopie: 0 Klicks: 770
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Strategie identifiziert Long-Line-Entrittschancen durch den SuperTrend-Indikator. Sie nutzt die durchschnittliche reelle Bandbreite ATR und die Multiplikation, um dynamische Unterstützungsstellen zu ermitteln und eine Long-Position zu eröffnen. Die Strategie konzentriert sich auf Long-Position-Handelschancen.

Strategieprinzip

  1. Auf- und Abwärtstrend berechnet nach ATR-Zyklen und -Multiplizierungen. Bei einem Aufwärtstrend ist der Kurs hoch, bei einem Abwärtstrend ist er niedrig.

  2. Berechnen Sie den aktuellen Trend, 1 ist der Aufwärtstrend, -1 ist der Abwärtstrend. Bei einem Kursbruch wird der Trend von einem Rückschlag umgedreht, der ein Kaufsignal auslöst. Bei einem Rückschlag wird der Trend von einem Rückschlag umgedreht, der ein Verkaufssignal auslöst.

  3. In Kombination mit einem Moving Average als Trendfilter, bei einem Breakout ein Preis höher als der MA gefordert, um zu kaufen, bei einem Breakout ein Preis niedriger als der MA gefordert, um zu verkaufen, um falsche Breakouts zu vermeiden.

  4. Trends, Handelssignale usw. werden visuell angezeigt, um das Urteilsvermögen zu unterstützen

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Mit dem SuperTrend-Indikator kann der Preiswechsel dynamisch verfolgt und die Trendwende zeitnah reflektiert werden.

  2. Die ATR-Stopp-Methode kann die Stop-Loss-Position an die Marktfluktuation anpassen, um die Gewinne zu sperren.

  3. In Kombination mit MA-Abtrennung von False Breakouts kann der Lärm von Marktschwankungen und Handelssignalen wirksam gefiltert werden.

  4. Die visuelle Gestaltung zeigt die Handelsstrategie und die Marktlage intuitiv dar und ist einfach zu bedienen.

  5. Es ist sehr gut geeignet, um eine Position auf einer langen Linie zu halten.

Risikoanalyse

Diese Strategie birgt folgende Risiken:

  1. Die SuperTrend-Indikatoren sind parametersensibel und werden häufig von mehreren Airlines angepasst. Häufige Transaktionen können auftreten.

  2. Die Stop-Line wird häufig bei Erschütterungen ausgelöst.

  3. Die Transaktionskosten sind für kleine Beträge höher als für kleine Beträge.

  4. Das Risiko eines Rückziehens ist höher, wenn kein Stop-Loss eingerichtet ist.

  5. Die Trendwelle hat vielleicht einige Chancen verpasst.

Das Risiko kann durch folgende Maßnahmen verringert werden:

  1. Optimierung der ATR-Parameter zur Verringerung der Frequenz der Multilinear-Anpassungen.

  2. Zusätzliche Filterung der äquivalenten K-Leitung verhindert, dass sie durch hochfrequente, kleinere Schwingungen unterbrochen wird.

  3. Setzen Sie einen Stop-Loss-Stoppschalter, um den Gewinn zu schützen.

  4. Die Bewegungsabschnittszyklen werden entsprechend angepasst, um die Filterwirkung auszugleichen.

  5. Optimierung der Kapitalverwaltung und Reduzierung der Auswirkungen der Transaktionskosten.

Optimierungsrichtung

Diese Strategie kann optimiert werden durch:

  1. Verschiedene Preisquellen, wie z.B. Schlusskurs, Höchstpreis usw. werden getestet.

  2. Versuchen Sie es mit anderen dynamischen Stop-Loss-Indikatoren, z. B. dem Chandelier Exit.

  3. Erweiterung der Module für die Positionsverwaltung und Optimierung der Kapitalnutzung.

  4. Refine-Eintrittszeiten in Kombination mit Volatilität.

  5. Das ist ein Modul, um Risiken zu kontrollieren.

  6. Anpassungsparameter für verschiedene Märkte.

  7. Die Parameteroptimierung von Algorithmen für maschinelles Lernen wird untersucht.

  8. In Kombination mit anderen Indikatoren kann die Filtergenauigkeit verbessert werden.

Zusammenfassen

Die Strategie nutzt SuperTrend, um dynamische Stop-Loss-Beschlüsse zu erstellen, und unterstützt von MA, um Trendfilter zu verwenden, um zu erkennen, wann die lange Linie zu kaufen ist. Die visuelle Gestaltung vereinfacht die Bedienung. Durch optimierte Parameter-Einstellungen und Funktionserweiterungen kann es zu einer stabilen und zuverlässigen Longline-Handelsstrategie werden.

Strategiequellcode
/*backtest
start: 2020-09-13 00:00:00
end: 2023-09-19 00:00:00
period: 3d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("SuperTrend Long Strategy", overlay=true, initial_capital=50000, currency=currency.USD, default_qty_type=strategy.cash, default_qty_value=50000)

Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR = input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true)

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

// Moving Average as Trend Filter
periodes_ma = input(title="Moving Average Period", type=input.integer, defval=20)
src_ma = input(title="Moving Average Source", type=input.source, defval=close)
ma = sma(src_ma, periodes_ma)

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 and close > ma
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))

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 and close < ma
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))

mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.new(color.green, 70) : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.new(color.red, 70) : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor)

FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 999)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 999)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       

window()  => time >= start and time <= finish ? true : false

longCondition = buySignal
if (longCondition)
    strategy.entry("BUY", strategy.long, when = window())

shortCondition = sellSignal
if (shortCondition)
    strategy.close("BUY")
    strategy.entry("SELL", strategy.short, when = window())

buy1 = barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)