Trend nach der Handelsstrategie des gleitenden Durchschnitts

Schriftsteller:ChaoZhang, Datum: 2024-01-05 13:48:07
Tags:

img

Übersicht

Diese Strategie ist ein Trend, der der gleitenden Durchschnittshandelsstrategie folgt. Sie verwendet gleitende Durchschnitte der höchsten und niedrigsten Preise mit verschiedenen Parameter-Einstellungen, um Markttrends zu bestimmen und Handelssignale an Wendepunkten zu generieren.

Strategie Logik

Die Strategie verwendet einfache gleitende Durchschnitte der höchsten und niedrigsten Preise mit verschiedenen Parametern, um Markttrends zu definieren.

  1. Das h1- und l1-System verfolgt den Trend von oben. h1 ist der einfache gleitende Durchschnitt der höchsten Preise, der als oberer Trendband fungiert; l1 wird durch h1 abzüglich des ATR-Wertes konstruiert, der als unterer Band dient. Ein langes Signal wird erzeugt, wenn der Preis über h1 bricht, und ein schließendes Signal wird erzeugt, wenn der Preis unter l1 fällt.

  2. Das h2- und l2-System verfolgt den Trend von nach unten. h2 ist der einfache gleitende Durchschnitt der niedrigsten Preise, der als untere Band fungiert; l2 wird durch h2 plus den ATR-Wert konstruiert, der als obere Band dient. Ein kurzes Signal wird erzeugt, wenn der Preis unter h2 bricht, und ein schließendes Signal wird erzeugt, wenn der Preis über l2 steigt.

Die Dual-Band-Systeme können Trendwendepunkte genauer identifizieren und einige laute Trades herausfiltern.

Analyse der Vorteile

Zu den Hauptvorteilen dieser Strategie gehören:

  1. Das Dual-Band-System filtert Lärm und identifiziert Wendepunkte genauer.
  2. Der ATR verfolgt die Volatilität dynamisch und ermöglicht eine effektive Stop-Loss-Kontrolle pro Handel.
  3. Die Logik ist einfach und leicht verständlich, geeignet für Anfänger.
  4. Die Parameter können flexibel angepasst werden, um sich an unterschiedliche Marktbedingungen anzupassen.

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Die Breakout-Signale aus den Bands könnten sich verzögern und die Gelegenheiten in den frühen Trendphasen verpassen.
  2. Bewegliche Durchschnittswerte haben eine geringere Fähigkeit, kurve Trends zu erfassen.
  3. Die Handelskosten werden nicht berücksichtigt, die bei einem Hochfrequenzhandel hoch sein könnten.

Lösungen:

  1. Verkürzung der gleitenden Durchschnittszeiten für empfindlichere Signale.
  2. Einbeziehen Sie andere Indikatoren wie MACD, um Trendtypen zu bestimmen und zu vermeiden, dass in den verschiedenen Zonen zu viel gehandelt wird.
  3. Anpassung der Positionsgröße an eine niedrigere Handelsfrequenz.

Optimierungsrichtlinien

Die Strategie kann aus folgenden Gesichtspunkten optimiert werden:

  1. Verwenden von Algorithmen für maschinelles Lernen, um Parameter automatisch anzupassen, um sich an sich ändernde Märkte anzupassen.
  2. Um falsche Ausbrüche zu vermeiden, muss das Handelsvolumen berücksichtigt werden.
  3. Hinzufügen von Mikropositionsgrößenregeln, um die Positionsgröße mit der Trendstärke zu verknüpfen.
  4. Optimieren Sie Stop-Loss-Mechanismen mit Trailing-Stops usw.

Schlussfolgerung

Der Grundgedanke besteht darin, Trendwendepunkte zu identifizieren und durch Dual-Band-Filterung und dynamische ATR-Stopps pro Trade-Verlust zu kontrollieren.


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

//@version=4
strategy("I Like Winners And Love Loosers!", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

highest_length = input(200, type=input.integer, minval=1, title="Highest Length")
highest_average = input(10, type=input.integer, minval=1, title="Highest Average Length")

lowest_length = input(200, type=input.integer, minval=1, title="Lowest Length")
lowest_average = input(10, type=input.integer, minval=1, title="Lowest Average Length")

atr_length = input(14, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(2, type=input.integer, minval=1, title="ATR Multiplier")
a = atr(atr_length) * atr_multiplier

h1 = sma(highest(high, highest_length), highest_average)
l1 = h1 - a

h2 = sma(lowest(low, lowest_length), lowest_average)
l2 = h2 + a

buy1_signal = crossover(close, h1)
sell1_signal = crossunder(close, l1)
strategy.entry("Buy", strategy.long, when=buy1_signal)
strategy.close("Buy", when=sell1_signal)

buy2_signal = crossunder(close, h2)
sell2_signal = crossover(close, l2)
strategy.entry("Sell", strategy.short, when=buy2_signal)
strategy.close("Sell", when=sell2_signal)

y1 = plot(h1, title="H1", color=color.green, transp=50, linewidth=2)
y2 = plot(l1, title="L1", color=color.red, transp=50, linewidth=2)
y3 = plot(h2, title="H2", color=color.green, transp=50, linewidth=2)
y4 = plot(l2, title="L2", color=color.red, transp=50, linewidth=2)

fill(y1,y2,color=color.green)
fill(y3,y4,color=color.red)


Mehr