Trendfolgestrategie basierend auf dem Crossover gleitender Durchschnitte
Übersicht
Diese Strategie verfolgt Trendbewegungen, indem sie zwei gleitende Durchschnitte mit unterschiedlichen Parametern berechnet und deren Schnittpunkte vergleicht, um die Preisrichtung zu bestimmen. Wenn der schnellere gleitende Durchschnitt den langsameren von unten nach oben durchbricht, wird dies als bullisches Signal gewertet; bricht der schnellere gleitende Durchschnitt den langsameren von oben nach unten, gilt dies als bärisches Signal. Die Strategie kann durch Parametereinstellungen auf verschiedene Zeiträume angewendet werden.
Strategieprinzip
Die Strategie vergleicht zwei gleitende Durchschnitte mit unterschiedlichen Parametern. Der erste gleitende Durchschnitt wird durch len1 und type1 definiert, der zweite durch len2 und type2. len1 und len2 stehen für die Periodenlängen der beiden gleitenden Durchschnitte, type1 und type2 für deren Berechnungsmethode.
Wenn der schnellere gleitende Durchschnitt den langsameren von unten nach oben durchbricht (goldenes Kreuz), wird ein bullisches Signal ausgelöst; bricht er von oben nach unten durch (Todeskreuz), wird ein bärisches Signal generiert.
Basierend auf der Richtung des Schnittpunkts werden Long- oder Short-Positionen eröffnet. Bei einem bullischen Signal wird, falls der Parameter needlong auf true gesetzt ist, eine Long-Position mit der Menge default_qty_value oder einem prozentualen Anteil des Eigenkapitals (percentage_of_equity) eröffnet. Bei einem bärischen Signal wird, falls needshort auf true gesetzt ist, entsprechend eine Short-Position eröffnet.
Strategievorteile
- Unterstützt 7 verschiedene Typen gleitender Durchschnitte und ermöglicht flexible Anpassung an Marktbedingungen.
- Parameter der beiden gleitenden Durchschnitte sind frei einstellbar, sodass langfristige und mittel-/kurzfristige Trends analysiert werden können.
- Signalregeln sind einfach und klar, leicht verständlich und umsetzbar.
- Unterstützt sowohl Long- als auch Short-Positionen, geeignet für Trendfolgehandel.
Risiken und Lösungen
-
Gleitende Durchschnitte haben eine inhärente Verzögerung, was zu verpassten Wendepunkten führen kann.
Lösung: Verkürzung der Periodenlängen der gleitenden Durchschnitte oder Kombination mit anderen Indikatoren. -
Nicht geeignet für Märkte mit hoher Volatilität und häufigen Richtungswechseln.
Lösung: Einführung von Filtern, um Handel in Seitwärtsmärkten zu vermeiden. -
Es besteht ein gewisses Risiko von Fehlsignalen.
Lösung: Kombination mit zusätzlichen Filtern, um die Zuverlässigkeit der Signale zu erhöhen.
Optimierungsmöglichkeiten
- Optimierung der Periodenkombinationen der gleitenden Durchschnitte, um die Auswirkungen verschiedener kurz- und langfristiger Parameter auf die Strategierendite zu testen.
- Testen der Performance verschiedener Typen gleitender Durchschnitte zur Identifizierung der besten Berechnungsmethode.
- Integration von Indikatoren wie Volumen oder Bollinger-Bändern, um die Signalqualität zu verbessern.
- Optimierung des Positionsmanagement-Ansatzes, insbesondere der festen prozentualen Eigenkapitalverwendung (
percentage_of_equity).
Zusammenfassung
Die Strategie nutzt die Schnittpunkte zweier gleitender Durchschnitte, um Preistrends zu bestimmen und entsprechende Long- oder Short-Positionen zu eröffnen, wodurch Trends erfasst und Gewinne mitgenommen werden. Die Vorteile liegen in den einfachen, klaren Signalregeln, der flexiblen Parametrierung und der breiten Anwendbarkeit, die eine Optimierung für verschiedene Marktumgebungen ermöglicht. Zu beachten sind die Verzögerung der gleitenden Durchschnitte und das Risiko von Seitwärtsmärkten; dies kann durch die Integration zusätzlicher Indikatoren zur Filterung gemindert werden, um die Signalqualität zu erhöhen.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title = "Noro's MAs Cross Tests v1.0", shorttitle = "MAs Cross tests 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0)
needlong = input(true, "long")- 1

