Diese Strategie zielt darauf ab, die Trailing Stop-Funktion von Bitmex
Die Strategie verwendet hauptsächlich 3 Indikatoren: höchsten Preis, niedrigsten Preis und Schlusskurs.longoffset
für eine lange Haltestelle undshortoffset
Die Standardeinstellung für die lange Strecke beträgt 228,5 Punkte und für die kurze Strecke 243,5 Punkte.
Dann verwendet die Strategie die folgende Logik, um den Trailing Stop Preis anzupassentrailstop
:
Wenn der niedrigste Preis der letzten Kerze niedriger ist als der Trailing Stop-Preis der vorherigen Kerze, und der niedrigste Preis der Kerze davor höher ist als der Trailing Stop-Preis der vorherigen 2 Kerzen, dann ist der Trailing Stop-Preis der aktuellen Kerze = Schließpreis + kurze Trailing Stop-Distanz
Wenn der höchste Preis der letzten Kerze höher ist als der Trailing-Stop-Preis der vorherigen Kerze, und der höchste Preis der Kerze davor niedriger ist als der Trailing-Stop-Preis der vorherigen 2 Kerzen, dann ist der aktuelle Kerze
Wenn der höchste Preis der letzten Kerze höher ist als der Trailing Stop-Preis der vorherigen Kerze, dann ist der Trailing Stop-Preis der aktuellen Kerze = max ((vorherige Kerze Trailing Stop-Preis, letzte Kerze
Wenn der niedrigste Preis der letzten Kerze niedriger ist als der Trailing-Stop-Preis der vorherigen Kerze, dann ist der Trailing-Stop-Preis der aktuellen Kerze = min ((vorheriger Trailing-Stop-Preis der Kerze, der niedrigste Preis der letzten Kerze + kurze Trailing-Stop-Distanz)
Ansonsten ist der aktuelle Stopppreis der Kerze = Schlusskurs
Dies ermöglicht eine dynamische Anpassung des Trailing Stop-Preises anhand der Veränderungen der höchsten und niedrigsten Marktpreise, um dynamische Stopps zu erzielen.
Der größte Vorteil dieser Strategie ist die Implementierung von wirklich dynamischen und flexiblen Trailing-Stops. Im Vergleich zu festen Stop-Loss-Preisen kann dynamisches Trailing den Stop-Loss-Bereich anhand von Marktschwankungen anpassen, unnötige Verluste aufgrund zu großer Stop-Distanzen vermeiden und gleichzeitig durch normale Preisschwankungen, wenn die Entfernung zu klein ist, nicht gestoppt werden. Dies reduziert unnötige Verluste und reduziert gleichzeitig die Wahrscheinlichkeit von vorzeitigen Stops.
Ein weiterer Vorteil ist, dass die Stop-Loss-Distanz anpassbar und optimierbar ist. Benutzer können nach den Eigenschaften verschiedener Produkte und Handelsstile für sich eigene Stop-Loss-Bereiche auswählen. Dies ermöglicht die Anwendung der Strategie auf eine breitere Palette von Szenarien.
Schließlich ist die Stop-Loss-Logik dieser Strategie einfach und klar, leicht verständlich und leicht weiterzuentwickeln und in andere Strategien zu integrieren.
Die wichtigsten Risiken dieser Strategie sind:
Dynamische Stopps können Verluste nur unter normalen Marktbedingungen reduzieren, können aber nicht großen Ereignissen oder extremen Marktbedingungen standhalten.
Wenn der Hinterhaltungsweg zu groß eingestellt wird, kann dies zu größeren Verlusten führen. Wenn er zu klein eingestellt wird, kann er vorzeitig aussteigen. Die Einstellung muss sorgfältig getestet und basierend auf den Produktmerkmalen optimiert werden.
In den ersten wenigen Kerzen nach Eröffnung einer Position kann aufgrund des Mechanismus der Trailing-Stopps die Stoppdistanz zu groß sein, was während dieses Zeitraums ein zusätzliches Risiko darstellt.
Diese Strategie kann in folgenden Aspekten optimiert werden:
Parameteroptimierung für verschiedene Produkte: Wählen Sie vernünftige lange und kurze Trailing Stop-Distanzen basierend auf Volatilität, Intraday-Bereich und anderen Metriken für verschiedene Produkte.
Reduzieren Sie das zusätzliche Risiko bei frühen Kerzen nach Eröffnung von Positionen: Begrenzen Sie den Einstellbereich der hinterliegenden Stoppdistanzen in den ersten Kerzen, um zu große Distanzen zu vermeiden.
Einbeziehung von Handelsvolumenindikatoren: Zum Beispiel reduzieren Sie die Stoppdistanz bei Volumenanstiegen, um zu vermeiden, dass Sie durch Arbitrage gestoppt werden.
Kombination mit anderen Eingangs-/Ausgangsstrategien: Die Hauptaufgabe dieser Strategie ist der Trailing-Stop-Loss. Sie kann mit anderen Strategien mit Ein- und Ausstiegsregeln integriert werden.
Diese Strategie implementiert einen dynamischen Trailing Stop Loss basierend auf Veränderungen der höchsten und niedrigsten Marktpreise. Sie kann unter normalen Marktbedingungen unnötige Verluste effektiv reduzieren und das Problem der zu großen oder zu kleinen festen Entfernungen lösen. Die wichtigsten Optimierungsrichtungen sind die Prüfung geeigneter Parameter für verschiedene Produkte und die Kontrolle von Risiken in den frühen Kerzen nach Eröffnung von Positionen. Die Stop Loss-Logik ist einfach und klar, leicht zu verstehen und in andere Strategien zu integrieren oder als Standalone als Stop Loss-Tool zu verwenden.
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //By River strategy("BitMex Trailing Stop Strategy", overlay=true) longoffset = input(defval=228.5, title="Long Trailing Stop Size", type=float, minval=0.5, maxval=1000, step=0.5) shortoffset = input(defval=243.5, title="Short Trailing Stop Size ", type=float, minval=0.5, maxval=1000, step=0.5) hiprice = request.security(syminfo.tickerid, "1", high) loprice = request.security(syminfo.tickerid, "1", low) price = request.security(syminfo.tickerid, "1", close) trailstop = price trailstop := (loprice <= trailstop[1] and loprice[1] >= trailstop[2]) ? price + shortoffset : ((hiprice >= trailstop[1] and hiprice[1] <= trailstop[2]) ? price - longoffset : (hiprice > trailstop[1] ? max(hiprice - longoffset, trailstop[1]) : (loprice < trailstop[1] ? min(loprice + shortoffset, trailstop[1]) : price))) trailcol = trailstop > price ? red : green plot(trailstop, color=trailcol) longCondition = trailcol == green alertcondition(longCondition, "Long Stop alert", "BUY") if (longCondition) strategy.entry("Long", strategy.long) shortCondition = trailcol == red alertcondition(shortCondition, "Short alert", "SELL") if (shortCondition) strategy.entry("Short", strategy.short)