Höchste Höchst/niedrigste Niedrigstop-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-03-08 14:32:30
Tags:

img

Übersicht

Diese Strategie setzt Stop-Loss-Punkte auf Basis der jüngsten Höchststände und Tiefstände, um schnell Trends zu betreten und Risiken streng zu kontrollieren. Sie tritt in Long-Positionen ein, wenn die Preise aufeinanderfolgend steigen, und in Short-Positionen, wenn die Preise aufeinanderfolgend fallen. Beim Halten von Positionen ist die Stop-Loss-Ebene für Long-Positionen die niedrigste der letzten paar Balken und die Stop-Loss-Ebene für Short-Positionen ist die höchste Höhe. Dieser dynamische Stop-Loss-Ansatz kann Trends effizient erfassen und gleichzeitig Verluste strikt begrenzen.

Strategieprinzipien

  1. VerwendeninputFunktion zur Einstellung der Lookback-PeriodenhiLenundloLenfür höchste Höchststände und tiefste Tiefstände auf 20 ausfallen.
  2. Berechnen Sie die höchste HöhehiHighsbis zum vorherigen Balken mitta.highest(high, hiLen)[1], und das niedrigste TiefloLowsVerwendungta.lowest(low, loLen)[1].
  3. Die Stop-Loss-Ebenen werden mitloLowsfür Longpositionen undhiHighsFür eine einfache Bestätigung sollten Sie nicht im flachen Zustand graphieren.
  4. Definition der Handelssignalbedingungen:
    • higherCloses: die letzten 3 Balken haben aufeinanderfolgend höhere Schließungen
    • lowerCloses: die letzten 3 Balken haben aufeinanderfolgend niedrigere Schließungen
    • isFlat: keine aktuelle Position
  5. Eintrag: Eintrag lang wennisFlatundhigherCloses, kurz eingeben, wennisFlatundlowerCloses.
  6. Stop-Loss: für Long-Positionen beiloLows; für Kurzpositionen:hiHighs.

Kurz gesagt, diese Strategie nutzt die jüngsten Höchst- und Tiefststände, um Rückstand zu setzen, schnell starke Trends einzugehen und Verluste streng zu begrenzen und so die Trendgewinne effizient zu erfassen.

Analyse der Vorteile

  1. Einfach und effektiv: Die Strategie hat eine klare und einfache Logik, die auf der Grundlage der Preise selbst Stopps setzt, um Trends effektiv zu erfassen.
  2. Schnelle Einführung: Eintritt auf 3 aufeinanderfolgenden Balken, die sich in die gleiche Richtung bewegen, ermöglicht den schnellen Eintritt in neue Trends.
  3. Strenge Stopps: Stopps werden zu jüngsten extremen Preisen festgelegt, die zur strengen Risikokontrolle eng an aktuelle Preise gebunden sind.
  4. Trailing-Stops: Stop-Level werden kontinuierlich mit den Preisen aktualisiert, um sowohl Gewinne zu erzielen als auch den Trendraum zu erhalten.
  5. Sehr anpassungsfähig: geeignet für verschiedene Märkte und Instrumente mit flexibel einstellbaren Parametern.

Risikoanalyse

  1. Unbeständiges Marktrisiko: Unbeständige Märkte können häufige Eintritte und Stopps verursachen, was die Leistung beeinträchtigt.
  2. Trendend-Risiko: Wenn ein Trend kurz davor steht, umzukehren, kann ein neuer Eintrag sofort mit Umkehrung und Verlust konfrontiert werden.
  3. Extreme Bewegungsrisiken: Bei extremen Überverkäufen oder Überkaufsabschlägen schützen Trailing Stops möglicherweise nicht gut Positionen.
  4. Parameterrisiko: unsachgemäße Parameter können zu häufigen Ein- und Ausgängen führen.

Optimierungsrichtlinien

  1. Trendidentifizierung: Hinzufügen von Trendindikatoren wie gleitenden Durchschnitten und Handel nur in der Haupttrendrichtung, um die Gewinnrate zu verbessern.
  2. Einbeziehung von Volatilität: Anpassung von Parametern auf der Grundlage von Volatilitätsindikatoren wie ATR an unterschiedliche Volatilitäten.
  3. Momentumbestätigung: Hinzufügen von Momentumindikatoren wie MACD, um Einträge nur mit Momentumunterstützung zu bestätigen.
  4. Optimieren Sie Stopps: Kombinieren Sie mit prozentuale Stopps für extreme Bewegungen; fügen Sie Schutzstopp hinzu, um Verluste pro Handel zu reduzieren.
  5. Positionsgröße: Optimierung der Positionsgröße, z. B. Anpassung der Größe anhand der Risikoniveaus zur Verbesserung des Risiko-Rendite-Verhältnisses.

Zusammenfassung

Diese höchste/niedrigste Stop-Low-Strategie setzt dynamische Stops basierend auf den Preisen selbst, um starke Trends effizient zu erfassen und Risiken streng zu kontrollieren. Ihre Vorteile sind Einfachheit, Effektivität, schnelle Einträge, strenge Stops und hohe Anpassungsfähigkeit. Sie funktioniert jedoch schlecht in unruhigen Märkten, Trendenden und extremen Bewegungen und erfordert Aufmerksamkeit für Parameter-Einstellungen. Zukünftige Verbesserungen können Trend- und Momentumbestätigung hinzufügen, Stops und Positionsgrößen optimieren. Insgesamt ist es eine einfache und effektive Strategie zur Balancierung von Trend-Erfassung und Risikokontrolle, die eine gründliche Forschung und Optimierung in der Praxis verdient.


/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Highest high/lowest low stop", overlay=true)

// STEP 1:
// Make inputs for length of highest high and lowest low
hiLen = input.int(20, title="Highest High Lookback", minval=2)
loLen = input.int(20, title="Lowest Low Lookback", minval=2)

// STEP 2:
// Calculate recent extreme high and low
hiHighs = ta.highest(high, hiLen)[1]
loLows  = ta.lowest(low, loLen)[1]

// Plot stop values for visual confirmation
plot(strategy.position_size > 0 ? loLows : na,
     style=plot.style_circles, color=color.green, linewidth=3,
     title="Lowest Low Stop")

plot(strategy.position_size < 0 ? hiHighs : na,
     style=plot.style_circles, color=color.red, linewidth=3,
     title="Highest High Stop")

// Trading conditions for this example strategy
higherCloses = close > close[1] and
     close[1] > close[2] and 
     close[2] > close[3]

lowerCloses = close < close[1] and
     close[1] < close[2] and 
     close[2] < close[3]

isFlat = strategy.position_size == 0

// Submit entry orders
if isFlat and higherCloses
    strategy.entry("EL", strategy.long)

if isFlat and lowerCloses
    strategy.entry("ES", strategy.short)

// STEP 3:
// Submit stops based on highest high and lowest low
if strategy.position_size > 0
    strategy.exit("XL HH", stop=loLows)

if strategy.position_size < 0
    strategy.exit("XS LL", stop=hiHighs)

Mehr