Die Ressourcen sind geladen. Beförderung...

Trendverfolgungsstrategie auf Basis von SMA und ATR

Schriftsteller:ChaoZhang, Datum: 2024-01-18 16:04:51
Tags:

img

I. Strategiebezeichnung

Die Strategie heißtTrendverfolgungsstrategie auf Basis von SMA und ATR.

II. Überblick über die Strategie

Diese Strategie verwendet den SMA-Indikator, um die Kursentwicklungsrichtung zu bestimmen, und setzt Stop-Loss-Positionen mit dem ATR-Indikator ein, um den Trend zu verfolgen.

III. Strategieprinzip

1. Eintrittssignale

(1) Gehen Sie lang, wenn der Schlusskurs steigt und über dem SMA liegt.
(2) Geht kurz, wenn der Schlusskurs fällt und unter dem SMA liegt.

2. Stop Loss Setting

Verwenden Sie den Wert des ATR-Indikators multipliziert mit dem eingestellten Stop-Loss-Multiplikator als Stop-Loss-Position.

3. Verlustfreies Aktualisieren

Nach dem Schließen jedes Balkens überprüfen Sie die Stop-Loss-Position und aktualisieren Sie sie auf einen Stop-Loss-Wert, der dem aktuellen Preis näher kommt.

4. Ausfahrtssignale

Aktive Stop-Loss, wenn der Preis die Stop-Loss-Linie berührt.

IV. Vorteile der Strategie

1. Starke Fähigkeit zur Trendverfolgung

Die dynamische Stop-Loss-Einstellung des ATR-Indikators ermöglicht die automatische Verfolgung von Trends.

2. Gute Kontrolle der Auslastung

Strenge Stop-Loss-Regeln helfen, den maximalen Drawdown pro Handel zu kontrollieren.

3. Einfache Einstellung von Parametern

Nur 3 Parameter machen Anpassung und Optimierung einfach.

V. Risiken der Strategie

1. Risiko, dass der Stop Loss zu locker ist

Wenn das Stop-Loss-Multiplikator zu hoch eingestellt ist, kann die Stop-Loss-Position zu locker sein und somit den Drawdown erhöhen.

2. Gefahren eines falschen Ausbruchs

Bei falschen Preisbrechungen kann die Trendrichtung verfehlt werden. Andere Indikatoren sollten verwendet werden, um Signale zu filtern.

3. Risiken der Optimierung von Parametern

Übermäßige Abhängigkeit von Parameteroptimierung kann zu Kurvenanpassung führen.

VI. Richtungen zur Optimierung der Strategie

1. Optimierung des Stop Loss Algorithmus

Andere Arten von Stop-Loss-Algorithmen können getestet werden, wie beispielsweise bewegliche Stop-Loss, proportionale Stop-Loss usw.

2. Hinzufügen von Filtersignalen

Andere Indikatoren können hinzugefügt werden, um falsche Ausbrüche zu filtern.

3. Bewertung der Parameterstabilität

Backtesting-Verlauf zur Bewertung der Anpassungsfähigkeit von Parametern an verschiedene Produkte und Zeitrahmen.

VII. Zusammenfassung

Die allgemeine Idee dieser Strategie ist klar. Sie beurteilt die Trendrichtung durch SMA und verwendet ATR, um Trends mit guter Drawdown-Kontrolle zu verfolgen. Sie eignet sich für den mittelfristigen und langfristigen Trendhandel.


/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-16 17:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan

//@version=5
strategy(title="SMA with ATR", overlay=true)

smaLen = input.int(100, title="SMA Length")

atrLen     = input.int(10, title="ATR Length")
stopOffset = input.float(4, title="Stop Offset Multiple", step=0.25)


smaValue  = ta.sma(close, smaLen)
stopValue = ta.atr(atrLen) * stopOffset


lowerCloses = close < close[1] and 
     close[1] < close[2] and
     close[2] < close[3]

enterLong = close > smaValue and 
     lowerCloses


longStop = 0.0
longStop := if enterLong and strategy.position_size < 1
    close - stopValue
else
    math.max(close - stopValue, longStop[1])


higherCloses = close > close[1] and 
     close[1] > close[2] and
     close[2] > close[3]

enterShort = close < smaValue and 
     higherCloses


shortStop = 0.0
shortStop := if enterShort and strategy.position_size > -1
    close + stopValue
else
    math.min(close + stopValue, shortStop[1])


plot(smaValue, color=#4169e1, linewidth=2, title="SMA")

plot(strategy.position_size > 0 ? longStop : na, color=color.lime,
     style=plot.style_linebr, title="Long stop", linewidth=2)

plot(strategy.position_size < 0 ? shortStop : na, color=color.red,
     style=plot.style_linebr, title="Short stop", linewidth=2)


if enterLong
    strategy.entry("EL", strategy.long)

if enterShort
    strategy.entry("ES", strategy.short)


if strategy.position_size > 0
    strategy.exit("SL Long", from_entry="EL", stop=longStop)

if strategy.position_size < 0
    strategy.exit("SL Short", from_entry="ES", stop=shortStop)


if enterLong
    strategy.cancel("Exit Short")

if enterShort
    strategy.cancel("Exit Long")


Mehr