Basierend auf der Crossover-Strategie mit doppeltem gleitendem Durchschnitt


Erstellungsdatum: 2024-03-11 12:06:22 zuletzt geändert: 2024-03-11 12:06:22
Kopie: 0 Klicks: 646
1
konzentrieren Sie sich auf
1617
Anhänger

Basierend auf der Crossover-Strategie mit doppeltem gleitendem Durchschnitt

Strategieübersicht

Die Doppel-Gleichgewichts-Kreuzungsstrategie ist eine klassische Trend-Tracking-Strategie. Die Strategie verwendet zwei unterschiedliche Perioden von Moving Averages, um Markttrends zu erfassen. Wenn die schnelle Mittellinie die langsame Mittellinie durchquert, erzeugt sie ein Mehr-Signal, wenn die schnelle Mittellinie die langsame Mittellinie durchquert, erzeugt sie ein Null-Signal.

Strategieprinzip

Der Strategiecode verwendet zwei Moving Averages, einen schnellen Mittelwert (Standard 14-Periode) und einen langsamen Mittelwert (Standard 28-Periode). Die Moving Average-Typen können aus einfachen Moving Averages (SMA), Index-Moving Averages (EMA), gewichteten Moving Averages (WMA) und relativen Moving Averages (RMA) bestehen.

Die Hauptlogik der Strategie lautet:

  1. Berechnung der Werte für schnelle und langsame Durchschnittslinien
  2. Wenn man eine schnelle Durchschnittslinie über eine langsame Durchschnittslinie durchbricht, erzeugt man ein Mehrwertsignal und eröffnet eine Mehrwertposition.
  3. Wenn die schnelle Mittellinie unter der langsamen Mittellinie durchschritten wird und eine Shorting erlaubt wird (allowShorting=true), wird ein Shorting-Signal erzeugt und eine Shorting-Position eröffnet.
  4. Wenn die schnelle Durchschnittslinie unter der langsamen Durchschnittslinie liegt und keine Leerstellung erlaubt ist (allowShorting=false), wird die Mehrkopfposition ausgeglichen

Mit dieser Logik kann die Strategie die wichtigsten Trends des Marktes verfolgen, indem sie mehrere Positionen im Aufwärtstrend hält, während der Abwärtstrend eine leere Position oder eine leere Position abwartet. Die Gleichlauf-Periode und -Art können entsprechend den verschiedenen Märkten und Handelsarten optimiert werden.

Strategische Vorteile

  1. Logik ist einfach, klar, leicht zu verstehen und umzusetzen
  2. Für trendige Märkte geeignet, mittel- und langfristige Markttrends effektiv zu erfassen
  3. Anpassbare Parameter für verschiedene Märkte und Handelsarten
  4. Ob Flexibilität bei der Auswahl der Leerlaufzeiten erlaubt ist, basierend auf Markteigenschaften und persönlichen Vorlieben
  5. Moving averages sind ein klassischer, weit verbreiteter und verifizierter Indikator für technische Analysen

Strategisches Risiko

  1. Häufige Schnittstellen können zu häufigen Transaktionen führen, die die Transaktionskosten erhöhen, wenn die Märkte im Umbruch sind
  2. Eine zu kurze oder zu lange Auswahl des schnellen Durchschnitts kann dazu führen, dass das Signal verzögert wird und die optimale Handelszeit verpasst wird.
  3. Strategie, bei der es zu einem Verlust in Folge kommen kann, wenn sich die Marktentwicklung ändert
  4. Fixed-mean-line-periodische Parameter, die sich möglicherweise nicht an dynamische Veränderungen des Marktes anpassen

Die folgenden Maßnahmen können gegen diese Risiken eingesetzt werden:

  1. Optimieren Sie die Parameter für die Durchschnittszyklus und wählen Sie die richtige langsame Durchschnittslänge für die Markteigenschaften
  2. In einem wackligen Markt können zusätzliche Filterbedingungen, wie ATR-Filter oder einseitige Querwinkel-Filter, in Betracht gezogen werden
  3. Rationaler Einsatz von Stop-Loss-Stopps, um das Risiko eines einzelnen Handels zu kontrollieren
  4. Regelmäßige Rückmeldung und Anpassung der Strategieparameter an Marktveränderungen

Strategieoptimierung

  1. Die Einführung von mehr technischen Indikatoren wie MACD, RSI und anderen, um eine Multifaktorstrategie zu entwickeln und die Signalgenauigkeit zu verbessern
  2. Optimierung des Positionsmanagements, beispielsweise Berücksichtigung von Faktoren wie ATR oder Volatilität, dynamische Anpassung der Positionsgröße
  3. Bei Marktschwankungen sollten Sie Trendmessgrößen wie den ADX verwenden, um nicht zu häufig zu handeln.
  4. Automatische Suche nach optimalen Parameterkombinationen mithilfe von Machine Learning oder Optimierungsalgorithmen

Diese Optimierungen können die Anpassungsfähigkeit und Stabilität der Strategie verbessern und sie besser an unterschiedliche Marktbedingungen anpassen. Allerdings ist zu beachten, dass eine Überoptimierung zu einer Überpassung der Strategie führen kann, die in der Praxis nicht so gut funktioniert.

Zusammenfassen

Die Doppel-Gleichgewichts-Kreuzung ist eine klassische Trend-Tracking-Strategie, die durch die Kreuzung von Moving Averages in zwei verschiedenen Perioden ein Handelssignal erzeugt. Sie ist einfach und leicht zu implementieren und ist für trendige Märkte geeignet. In einem unruhigen Markt kann es jedoch zu häufigen Geschäften und anhaltenden Verlusten kommen.

Strategiequellcode
/*backtest
start: 2024-02-09 00:00:00
end: 2024-03-10 00:00:00
period: 1h
basePeriod: 15m
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/
// © z4011

//@version=5
strategy("#2idagos", overlay=true, margin_long=100, margin_short=100)
allowShorting = input.bool(true, "Allow Shorting")
fastMALength = input.int(14, "Fast MA Length")
slowMALength = input.int(28, "Slow MA Length")
fastMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
slowMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"]) 

float fastMA = switch fastMAType
    "Simple" => ta.sma(close, fastMALength)
    "Exponential" => ta.ema(close, fastMALength)
    "Weighted" => ta.wma(close, fastMALength)
    "Relative" => ta.rma(close, fastMALength)

plot(fastMA, color = color.aqua, linewidth = 2)

float slowMA = switch slowMAType
    "Simple" => ta.sma(close, slowMALength)
    "Exponential" => ta.ema(close, slowMALength)
    "Weighted" => ta.wma(close, slowMALength)
    "Relative" => ta.rma(close, slowMALength)

plot(slowMA, color = color.blue, linewidth = 2)


longCondition = ta.crossover(fastMA, slowMA)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ta.crossunder(fastMA, slowMA) and allowShorting
if (shortCondition)
    strategy.entry("Short", strategy.short)

closeCondition = ta.crossunder(fastMA, slowMA) and not allowShorting
if (closeCondition)
    strategy.close("Long", "Close")