Die Ressourcen sind geladen. Beförderung...

Strategie für eine doppelte Kreuzung von gleitenden Durchschnitten

Schriftsteller:ChaoZhang, Datum: 2024-01-04 15:03:14
Tags:

img

Übersicht

Diese Strategie verwendet einfache gleitende Durchschnitts-Crossovers und einen Durchschnitts-True-Range-Indikator, um Kauf- und Verkaufssignale zu generieren.

Strategie Logik

  1. Berechnung des 50-tägigen einfachen gleitenden Durchschnitts SMA1 und des 100-tägigen einfachen gleitenden Durchschnitts SMA2
  2. Wenn SMA1 über SMA2 überschreitet, wird ein Kaufsignal erzeugt.
  3. Berechnung des 14-Tage-ATR
  4. ATR multipliziert mit einem festgelegten Faktor wird als Stop-Loss-Punkt verwendet
  5. Wenn ein Kaufsignal ausgelöst wird, ist der Schlusskurs abzüglich des Stop-Loss-Punkts der Stop-Loss-Verkaufspunkt.

Es kann festgestellt werden, dass diese Strategie hauptsächlich auf die Trendbeurteilungsfähigkeit von gleitenden Durchschnitten und die Risikokontrollfähigkeit von ATR beruht.

Vorteile

  1. Einfache Logik, einfach umzusetzen, für Anfänger geeignet
  2. Gleitende Durchschnitte können Trends effektiv verfolgen
  3. ATR-Stop-Loss kann Verluste aus einzelnen Schwarzen Schwanen-Ereignissen effektiv kontrollieren
  4. Die Parameter können leicht für verschiedene Marktumgebungen angepasst werden

Risiken

  1. Es können viele falsche Signale während von Range-bound-Märkten ausgelöst werden, die Umkehrpunkte vermissen
  2. ATR reagiert möglicherweise nicht sensibel genug auf die sich rasch verändernden Märkte, was zu größeren Verlusten als erwartet führt
  3. Die Einstellungen der Parameter und der ATR-Multiplikator beruhen auf Erfahrung.
  4. Die doppelten gleitenden Durchschnitte selbst haben Verzögerungseffekt, können Wendepunkte verpassen

Risikomanagement:

  1. Verkürzung der gleitenden Durchschnittsperioden, um den Indikator empfindlicher zu machen
  2. Dynamische Anpassung des ATR-Multiplikators für flexiblere Stop-Loss
  3. Hinzufügen anderer Indikatoren, um falsche Signale zu filtern
  4. Betrieb basiert auf größeren Zeitrahmensstruktururteilen

Optimierungsrichtlinien

  1. Versuchen Sie andere Arten von gleitenden Durchschnitten, wie EMAs, die besser filtern
  2. Ein dynamischer Stop-Loss mit Keltner-Kanälen usw. als Ersatz für ATR
  3. Fügen Sie unterstützende Indikatoren wie Lautstärke zu Filtersignalen hinzu
  4. Identifizieren Sie Trendschlüsselpunkte mit Begriffen wie Elliott-Wellen, Unterstützungswiderstand usw.

Zusammenfassung

Dies ist eine typische Trend-Folge-Strategie, die gleitende Durchschnitte verwendet, um die Trendrichtung und den ATR-Stop-Loss zu bestimmen, um Risiken zu kontrollieren. Die Logik ist einfach und leicht zu verstehen. Aber sie hat bestimmte Verzögerungs- und Falschsignalrisiken. Verbesserungen können durch Parameter-Tuning, Indikatoroptimierung, Einbeziehung mehrer Faktoren usw. vorgenommen werden, um die Strategie anpassungsfähiger zu machen.


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

//@version=5
strategy("SMA and ATR Strategy", overlay=true)

// Step 1. Define strategy settings
lengthSMA1 = input.int(50, title="50 SMA Length")
lengthSMA2 = input.int(100, title="100 SMA Length")
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.int(4, title="ATR Multiplier")

// Step 2. Calculate strategy values
sma1 = ta.sma(close, lengthSMA1)
sma2 = ta.sma(close, lengthSMA2)
atr = ta.atr(atrLength)

// Step 3. Output strategy data
plot(sma1, color=color.blue, title="50 SMA")
plot(sma2, color=color.red, title="100 SMA")

// Step 4. Determine trading conditions
longCondition = ta.crossover(sma1, sma2)
shortCondition = ta.crossunder(sma1, sma2)

longStopLoss = close - (atr * atrMultiplier)
shortStopLoss = close + (atr * atrMultiplier)

// Step 5. Execute trades based on conditions
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", stop=longStopLoss)

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Buy", "Sell", stop=shortStopLoss)


Mehr