Dynamische Strategie zur Verzögerung der Fahrt

Schriftsteller:ChaoZhang, Datum: 2024-02-27 15:02:34
Tags:

img

Übersicht

Diese Strategie zielt darauf ab, die Trailing Stop-Funktion von Bitmex zu nutzen, um den Stop-Loss-Preis für genauere und flexiblere Stopps dynamisch anzupassen. Die Strategie wird nicht für Eintritte oder Ausgänge verwendet, sondern gibt vernünftige Stop-Loss-Bereiche unter verschiedenen Marktbedingungen an. Es wird vorgeschlagen, mit verschiedenen Werten zu testen. Die Strategie kann auch in bestehende Strategien integriert werden, die Eintritte / Ausgänge als Stop-Loss bewirken.

Strategie Logik

Die Strategie verwendet hauptsächlich 3 Indikatoren: höchsten Preis, niedrigsten Preis und Schlusskurs.longoffsetfür eine lange Haltestelle undshortoffsetDie 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 Kerzes Trailing-Stop-Preis = Schließpreis - lange Trailing-Stop-Distanz

  • 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 s höchster Preis - lange Trailing Stop-Distanz)

  • 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.

Analyse der Vorteile

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.

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

  1. Dynamische Stopps können Verluste nur unter normalen Marktbedingungen reduzieren, können aber nicht großen Ereignissen oder extremen Marktbedingungen standhalten.

  2. 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.

  3. 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.

Optimierungsrichtlinien

Diese Strategie kann in folgenden Aspekten optimiert werden:

  1. 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.

  2. 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.

  3. Einbeziehung von Handelsvolumenindikatoren: Zum Beispiel reduzieren Sie die Stoppdistanz bei Volumenanstiegen, um zu vermeiden, dass Sie durch Arbitrage gestoppt werden.

  4. 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.

Schlussfolgerung

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)



Mehr