Einfache Querschnittstrategie für gleitende Durchschnitte

Schriftsteller:ChaoZhang, Datum: 2023-11-14 16:17:16
Tags:

img

Übersicht

Diese Strategie erzeugt Kauf- und Verkaufssignale basierend auf dem goldenen Kreuz und dem Todeskreuz von mehreren einfachen gleitenden Durchschnitten (SMAs) mit verschiedenen Zeiträumen, um die Trendrichtung zu bestimmen. Sie verwendet 4 SMAs - 20-Tage-, 50-Tage-, 100-Tage- und 200-Tage-SMA. Wenn der kurzfristige SMA über den längerfristigen SMA überschreitet, wird er als goldenes Kreuz betrachtet und ein Kaufsignal ausgelöst. Wenn der kurzfristige SMA unter den längerfristigen SMA überschreitet, wird er als Todeskreuz betrachtet und ein Verkaufssignal ausgelöst.

Strategie Logik

Die Kernlogik dieser Strategie beruht auf folgenden Punkten:

  1. Berechnen Sie mehrere SMAs mit unterschiedlichen Zeiträumen, einschließlich 20-tägiger, 50-tägiger, 100-tägiger und 200-tägiger SMA.

  2. Überprüfen Sie die Crossover-Situationen zwischen den kurzfristigen SMA (20-Tage-SMA) und den längerfristigen SMA (50-Tage-, 100-Tage- und 200-Tage-SMA).

  3. Wenn der 20-Tage-SMA über den 50-Tage-SMA überschreitet, gilt er als goldenes Kreuz und ein Kaufsignal wird ausgelöst.

  4. Der größere Trend wird dadurch bestimmt, dass die längeren SMAs über den kürzeren SMAs bleiben, d. h. 50-tägige SMA > 20-tägige SMA.

  5. Bei den Eintrittssignalen gilt die Priorität: 20-tägiger SMA vs. 50-tägiger SMA > 20-tägiger SMA vs. 100-tägiger SMA > 20-tägiger SMA vs. 200-tägiger SMA.

  6. Das Ausstiegssignal wird erzeugt, wenn der 20-tägige SMA wieder unter den 50-tägigen SMA fällt.

Die Strategie stützt sich hauptsächlich auf SMA-Kreuzungen, um die Trendrichtung zu bestimmen. Goldene Kreuzungen in Bullenmärkten und Todeskreuzungen in Bärenmärkten können einen möglichen Trendstart signalisieren. Darüber hinaus dienen längerfristige SMAs, die über kurzfristigen SMAs bleiben, als Bestätigung des größeren Trends.

Vorteile der Strategie

Zu den Hauptvorteilen dieser Strategie gehören:

  1. Die Logik ist einfach und leicht zu verstehen und umzusetzen.

  2. Bei der Filterung von Marktlärm und bei der Identifizierung des Trends sind SMAs besser als EMAs.

  3. Die Verwendung von mehreren Zeitrahmen SMAs verbessert die Signalzuverlässigkeit.

  4. Die Einstellung der Priorität für Eingangssignale verhindert eine vorzeitige Eingabe.

  5. Anpassbare SMA-Perioden und Farben ermöglichen eine Optimierung der Strategie.

  6. Anwendbar auf mehrere Zeitrahmen für verschiedene Handelsstile.

  7. Das SMA-Crossover-System ist sehr effektiv bei der Bestimmung der wichtigsten Trendrichtung.

Risiken der Strategie

Einige mit dieser Strategie verbundene Risiken:

  1. Zu viele falsche Signale können während von Ranging-Märkten mit häufigen SMA-Kreuzungen auftreten.

  2. Festgelegte SMA-Perioden können sich nicht an Marktveränderungen anpassen, die Parameter sollten auf der Grundlage von Trend und Volatilität optimiert werden.

  3. Die SMA-Kreuzungen allein können nicht den genauen Einstieg bestimmen, andere Indikatoren wie MACD sollten berücksichtigt werden.

  4. Die SMAs haben einen verzögerten Charakter, die Eintrittszeit muss optimiert werden oder Limit-Orders sollten verwendet werden.

  5. Eine strikte Stop-Loss-Implementierung ist entscheidend für den Kapitalerhalt.

  6. Die Auswirkungen der Handelskosten auf die Rentabilität sollten berücksichtigt werden.

Verbesserung der Strategie

Einige Möglichkeiten, diese Strategie zu optimieren:

  1. Optimieren von SMA-Perioden dynamisch auf Basis von Marktbedingungen und ATR.

  2. Hinzufügen Sie andere Indikatoren wie MACD, RSI für den Einstieg Timing.

  3. Fügen Sie einen Trendfilter wie ADX hinzu, um falsche Signale während der Konsolidierung zu vermeiden.

  4. Optimieren Sie Stop-Loss-Methoden wie ATR-Stop oder Trailing Stop.

  5. Verwalten Sie die Positionsgröße dynamisch anhand der Kontogröße.

  6. Testen Sie optimale Parameter für verschiedene Anlageklassen.

  7. Einbeziehung mehrerer Zeitrahmen zur Gewährleistung der Konsistenz mit höheren Zeitrahmen.

Schlussfolgerung

Zusammengefasst ist dieses einfache SMA-Crossover-System bei der Bestimmung der Trendrichtung zuverlässig und für die meisten Trader geeignet. Es hat jedoch einige Verzögerungsprobleme und kann falsche Signale erzeugen. Wir sollten versuchen, den Eintrittszeitpunkt, den Stop-Loss, die Positionsgröße usw. zu verbessern, um es in wechselnden Marktumgebungen robust zu machen. Die Kombination mehrerer technischer Indikatoren und der Trendbewertung ist der Schlüssel zum Aufbau einer soliden Trendfolgestrategie.


/*backtest
start: 2023-10-14 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © xyzdesign1989
//@version=5
strategy("SMA crossover buy/sell [SCSM_Algo]", overlay=true, margin_long=3000, margin_short=3000)


BuyCond = ta.crossover(ta.sma(close, 20), ta.sma(close, 50)) and ta.sma(close, 20) > ta.sma(close, 50) and  ta.sma(close, 50) > ta.sma(close, 100) and  ta.sma(close, 100) > ta.sma(close, 200) or (ta.crossover(ta.sma(close, 20), ta.sma(close, 100)) and ta.sma(close, 20) > ta.sma(close, 50))
if (BuyCond)
    strategy.entry("SCSM 🤲 Buy", strategy.long)

SellCond = ta.crossunder(ta.sma(close, 20), ta.sma(close, 50))
if (SellCond)
    strategy.entry("الحمد للہ،Sell", strategy.short)

ma(source, length, type) =>
    type == "SMA" ? ta.sma(source, length) :
     type == "EMA" ? ta.ema(source, length) :
     type == "SMMA (RMA)" ? ta.rma(source, length) :
     type == "WMA" ? ta.wma(source, length) :
     type == "VWMA" ? ta.vwma(source, length) :
     na

show_ma1   = input(true   , "MA №1", inline="MA #1")
ma1_type   = input.string("SMA"  , ""     , inline="MA #1", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma1_source = input(close  , ""     , inline="MA #1")
ma1_length = input.int(20     , ""     , inline="MA #1", minval=1)
ma1_color  = input(#0929f6, ""     , inline="MA #1")
ma1 = ma(ma1_source, ma1_length, ma1_type)
plot(show_ma1 ? ma1 : na, color = ma1_color, title="MA №1")

show_ma2   = input(true   , "MA №2", inline="MA #2")
ma2_type   = input.string("SMA"  , ""     , inline="MA #2", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma2_source = input(close  , ""     , inline="MA #2")
ma2_length = input.int(50     , ""     , inline="MA #2", minval=1)
ma2_color  = input(#00fb04, ""     , inline="MA #2")
ma2 = ma(ma2_source, ma2_length, ma2_type)
plot(show_ma2 ? ma2 : na, color = ma2_color, title="MA №2")

show_ma3   = input(true   , "MA №3", inline="MA #3")
ma3_type   = input.string("SMA"  , ""     , inline="MA #3", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma3_source = input(close  , ""     , inline="MA #3")
ma3_length = input.int(100    , ""     , inline="MA #3", minval=1)
ma3_color  = input(#131313, ""     , inline="MA #3")
ma3 = ma(ma3_source, ma3_length, ma3_type)
plot(show_ma3 ? ma3 : na, color = ma3_color, title="MA №3")

show_ma4   = input(true   , "MA №4", inline="MA #4")
ma4_type   = input.string("SMA"  , ""     , inline="MA #4", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma4_source = input(close  , ""     , inline="MA #4")
ma4_length = input.int(200    , ""     , inline="MA #4", minval=1)
ma4_color  = input(#f60c0c, ""     , inline="MA #4")
ma4 = ma(ma4_source, ma4_length, ma4_type)
plot(show_ma4 ? ma4 : na, color = ma4_color, title="MA №4")

Mehr