Value Breakout Trailing Stop Loss Strategie: Ein automatisierter Handelsroboter basierend auf lokalen Extremwerten

TP SL TSL BTC 局部极值 追踪止损 挂单交易 时间过滤 价格突破
Erstellungsdatum: 2025-04-07 13:52:57 zuletzt geändert: 2025-04-07 13:52:57
Kopie: 0 Klicks: 413
2
konzentrieren Sie sich auf
319
Anhänger

Value Breakout Trailing Stop Loss Strategie: Ein automatisierter Handelsroboter basierend auf lokalen Extremwerten Value Breakout Trailing Stop Loss Strategie: Ein automatisierter Handelsroboter basierend auf lokalen Extremwerten

Überblick

Die Value Break Tracking Stop-Strategie ist ein speziell für den Handel mit digitalen Assets entwickeltes quantitatives Handelssystem, das Marktbruchbewegungen durch das Platzieren von Aufschlägen (Buy Stop Losses und Sell Stop Losses) an lokalen Preis-Extreme-Positionen erfasst. Die Strategie implementiert auch einen Tracking Stop-Loss-Mechanismus, der einen Schutzmechanismus aktiviert, um Gewinne zu sperren, sobald die Positionen ein vorgegebenes Gewinnniveau erreicht haben.

Strategieprinzip

Die Strategie basiert auf den Prinzipien des Preisverhaltens und des dynamischen Risikomanagements, wobei die Kernlogik in folgende Schlüsselbereiche unterteilt werden kann:

  1. Identifizierung lokaler ExtremeDie Strategie berechnet lokale Höchst- und Tiefpunkte in einem definierten Zeitfenster (BarsN-Parameter) als potenzielle Durchbruchspunkte. Konkret verwendet sie eine K-Linie (BarsN * 2 + 1) um lokale Höchst- und Tiefstpreise zu ermitteln.

  2. Aufhängung

    • BuyStop: Setzen Sie einen BuyStop an der Position des lokalen Höchststands, wenn der aktuelle Preis unter dem lokalen Höchststand ist, abzüglich der Auftragsentfernung von der Bufferzone.
    • SellStop: Verkaufen Sie einen Stop-Loss-Bill, wenn der aktuelle Preis höher ist als der lokale Tiefpunkt plus die Auftragsentfernung von der Bufferzone.
  3. Zeit-FilterStrategie: Die Strategie erlaubt Händlern, ihre Handelszeiten einzustellen und nur in den angegebenen Stunden zu handeln, was hilft, unerwünschte Zeiträume zu vermeiden.

  4. Berechnung der Gewinn- und Verlustquoten

    • Stopp-Punkt (TP): Berechnet als ein bestimmter Prozentsatz des aktuellen BTC-Preises.
    • Stopp-Loss (SL): berechnet als ein bestimmter Prozentsatz des aktuellen Preises (SLasPctBTC).
    • Auftragsentfernung von der Bufferzone: Setzen Sie bis zur Hälfte des Anschlagpunktes, um zu verhindern, dass ein Auftrag zu früh ausgelöst wird.
  5. Verfolgung von Stop-Loss-Mechanismen

    • Triggerpunkte: Wenn die Gewinne dieses Niveau erreichen, tritt der Tracking-Stopp in Kraft.
    • Tracking Distance ((TslPoints): Die Distanz zwischen dem Tracking-Stopp und dem aktuellen Preis.
    • Bei Multi-Head-Positionen gilt der Stop-Loss-Preis, wenn der Gewinn den Triggerpunkt überschreitet, abzüglich der Tracking-Distanz zum aktuellen Preis.
    • Für eine leere Position gilt der Stop-Loss-Preis, wenn der Gewinn über dem Triggerpunkt liegt, als der aktuelle Preis plus die Tracking-Distanz.

Strategische Vorteile

Nach einer eingehenden Analyse des Codes zeigte sich, dass diese Strategie folgende wesentliche Vorteile aufweist:

  1. Automatische Erfassung von DurchbrüchenDurch die Einstellung von Aufhängen auf den Schlüsselpreisen kann die Strategie automatisch Preissteigerungen erfassen, ohne dass die Märkte manuell überwacht werden.

  2. Dynamische RisikomanagementDie Einführung von Stop-Loss-Einstellungen basierend auf dem Prozentsatz des aktuellen Preises ermöglicht die Flexibilität des Risikomanagements für verschiedene Preise.

  3. GewinnschutzDurch die Verfolgung der Stop-Loss-Funktion kann die Strategie die bereits erzielten Gewinne effektiv sperren und die Rücknahme reduzieren, während sie den Gewinnraum behält.

  4. ZeitfilterfunktionEs ermöglicht den Händlern, die besten Handelszeiten zu wählen, je nach Markteigenschaften, und vermeidet den Handel in Zeiten mit geringer Volatilität oder unberechenbar.

  5. Äußerst anpassungsfähigDie Strategieparameter können an die Marktbedingungen angepasst werden, z. B. die Berechnungsfenster für lokale Höchstwerte, die Stop-Loss-Prozentsätze usw., um sie an unterschiedliche Marktbedingungen anzupassen.

  6. Disziplinarer EinsatzAls eine automatisierte Strategie eliminiert es den Einfluss von emotionalen Faktoren auf die Handelsentscheidungen und führt die Geschäfte streng nach den vorgegebenen Regeln aus.

Strategisches Risiko

Obwohl die Strategie viele Vorteile hat, gibt es einige potenzielle Risiken und Einschränkungen:

  1. Falsche DurchbruchgefahrDie Lösung besteht darin, die Bestätigungsindikatoren zu erhöhen oder die Größe der Auftragsentfernung von der Bufferzone anzupassen, um die Wahrscheinlichkeit zu verringern, dass ein Falschbruch ausgelöst wird.

  2. ParameterempfindlichkeitStrategie-Leistung ist stark von Parameter-Einstellungen wie BarsN, TPasPctBTC und SLasPctBTC abhängig. Unpassende Parameter können zu schlechter Leistung führen. Es wird empfohlen, die optimale Parameterkombination durch Rücktests zu finden.

  3. Unvollständige Verwaltung der Gelder: Obwohl die Parameter “RiskPercent” im Code definiert sind, werden sie nicht für die Berechnung der Positionsgröße verwendet.

  4. Die Kapazität für extreme Situationen ist begrenzt.In extremen Marktbedingungen oder bei hoher Volatilität können einfache lokale Grenzüberschreitungen und feste prozentuale Stop-Losses nicht ausreichen, um das Risiko effektiv zu verwalten.

  5. Gleitpunkte und AusführungsverzögerungenDie Ausführung von Aufträgen kann in der Realität zu Schlupfpunkten oder Verzögerungen kommen, die die Strategie beeinträchtigen.

  6. Abhängigkeit vom BinnenmarktDie Strategie wurde für bestimmte Vermögenswerte konzipiert und ist möglicherweise nicht für andere Vermögenswerte mit anderen Marktmerkmalen geeignet.

Richtung der Strategieoptimierung

Die Strategie kann auf der Grundlage von Code-Analysen in folgende Richtungen optimiert werden:

  1. Dynamische Positionsverwaltung: Implementierung einer dynamischen Positionsgrößenberechnung basierend auf den Parametern RiskPercent und Anpassung der Positionsgröße an die Größe des Kontos und das aktuelle Marktrisiko, um eine genauere Risikokontrolle zu ermöglichen.

  2. MehrfachbestätigungEinführung zusätzlicher technischer Indikatoren zur Bestätigung von Durchbrüchen, wie z. B. Durchbruch der Transaktionsmenge, Dynamik- oder Trendindikatoren, um falsche Durchbruchshandlungen zu reduzieren.

  3. AnpassungsparameterDie Einführung von Parametern, die sich automatisch an die Marktvolatilität oder andere Marktmerkmale anpassen, um die Strategie besser an unterschiedliche Marktbedingungen anzupassen.

  4. Bündelung der AnsteckungsmaßnahmenEs wurde ein Scatter-Stop-Mechanismus eingeführt, der es ermöglicht, dass einige Positionen bei unterschiedlichen Gewinnniveaus aussteigen, um einen Teil der Gewinne zu sperren und gleichzeitig einen größeren Gewinnraum zu behalten.

  5. Marktzustand-FilterEs ist möglich, dass die Anbieter von Trends und Schwankungen in den verschiedenen Märkten ihre Strategieparameter anpassen oder den Handel unterbrechen.

  6. Stop-Loss-OptimierungDie dynamische Stop-Loss basiert auf der ATR oder auf anderen Volatilitätsindikatoren, um die Stop-Loss-Rationalität zu verbessern.

  7. Rahmen für Rückmeldung und OptimierungEs wurde ein umfassenderer Rahmen für die Rückmeldung entwickelt, um die Performance von Strategien in verschiedenen Zeitabschnitten und unter verschiedenen Parametern zu bewerten und die optimale Kombination von Parametern zu finden.

Zusammenfassen

Die Value Break Tracking Stop Strategy ist ein kunstvoll konzipiertes automatisiertes Handelssystem, das Risiken durch die Erfassung lokaler Maximalwert-Breakouts und die Anwendung von Stop-Tracking verwaltet. Seine Kernvorteile liegen in der automatisierten Ausführung, der dynamischen Risikomanagement- und Gewinnschutzmechanismen, die es zu einem potenziell effektiven Handelsinstrument machen.

Die Effektivität einer Strategie hängt jedoch stark von den Parameter- und Marktbedingungen ab. Die Robustheit und Anpassungsfähigkeit einer Strategie kann durch die Umsetzung empfohlener Optimierungsmaßnahmen wie dynamisches Positionsmanagement, mehrfache Bestätigungsmechanismen und Anpassungsparameter deutlich verbessert werden.

Für Händler ist es empfehlenswert, vor der Anwendung auf dem Markt ausreichend Rückmeldungen zu machen, um die Kombination von Parametern zu finden, die für die aktuelle Marktumgebung am besten geeignet sind, und die Kombination mit anderen Analysewerkzeugen zu berücksichtigen, um die Handelssignale zu bestätigen. Gleichzeitig wird die Strategie kontinuierlich überwacht und bewertet.

Strategiequellcode
/*backtest
start: 2025-01-01 00:00:00
end: 2025-04-06 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("BTC Trading Robot", overlay=true, pyramiding=1, initial_capital=100000)

//============== Input Groups ==============//
// Trading Profile
group_trading = "BTC"
systemType = input.int(1, title="Trading System (1:BTC)", group=group_trading)

// Common Trading Inputs
group_common = "Trading Inputs"
RiskPercent   = input.float(4.0, title="Risk as % of trading capital", group=group_common)
TradeComment  = input.string("BTC trading robot", title="Trade Comment", group=group_common)
SHInput       = input.int(0, title="Start Hour (0 = no filter)", group=group_common)
EHInput       = input.int(0, title="End Hour (0 = no filter)", group=group_common)

// Gold Related Inputs
group_BTC = "BTC Related Input"
TPasPctBTC         = input.float(0.2, title="TP as % of Price", group=group_BTC)
SLasPctBTC         = input.float(0.1, title="SL as % of Price", group=group_BTC)
TSLasPctofTPBTC   = input.float(5.0, title="Trail SL as % of TP", group=group_BTC)
TSLTgrasPctofTPBTC = input.float(7.0, title="Trail Tgra  SL as % of TP", group=group_BTC)

// Other parameters
BarsN = 5
OrderDistPoints = 100.0

//============== Calculate Trade Parameters ==============//
var float Tppoints = 0.0
var float Slpoints = 0.0
var float TslTriggerPoints = 0.0
var float TslPoints = 0.0

price = close

// Adjust parameters based on system type (using 1 for Gold)
if systemType == 1
    Tppoints := price * TPasPctBTC
    Slpoints := price * SLasPctBTC
    OrderDistPoints := Tppoints / 2.0
    TslPoints := Tppoints * TSLTgrasPctofTPBTC / 100.0
    TslTriggerPoints := Tppoints * TSLTgrasPctofTPBTC / 100.0

//============== Time Filter ==============//
currentHour = hour(time)
inSession = true
if SHInput != 0 and currentHour < SHInput
    inSession := false
if EHInput != 0 and currentHour >= EHInput
    inSession := false

//============== Find Local High and Low ==============//
localHigh = ta.highest(high, BarsN * 2 + 1)
localLow  = ta.lowest(low,  BarsN * 2 + 1)

//============== Entry Orders ==============//
if inSession and strategy.position_size == 0
    // For a BuyStop order: only submit if current price is less than the desired entry level minus a buffer.
    if price < localHigh - OrderDistPoints * syminfo.mintick
        strategy.order("BuyStop", strategy.long, stop=localHigh, comment="BuyStop")
    // For a SellStop order: only submit if current price is greater than the desired entry level plus a buffer.
    if price > localLow + OrderDistPoints * syminfo.mintick
        strategy.order("SellStop", strategy.short, stop=localLow, comment="SellStop")
    
//============== Trailing Stop Logic ==============//
if strategy.position_size > 0  // Long positions
    longProfit = price - strategy.position_avg_price
    if longProfit > TslTriggerPoints * syminfo.mintick
        strategy.exit("Long Exit", from_entry="BuyStop", stop=price - TslPoints * syminfo.mintick, limit=strategy.position_avg_price + Tppoints * syminfo.mintick)
        
if strategy.position_size < 0  // Short positions
    shortProfit = strategy.position_avg_price - price
    if shortProfit > TslTriggerPoints * syminfo.mintick
        strategy.exit("Short Exit", from_entry="SellStop", stop=price + TslPoints * syminfo.mintick, limit=strategy.position_avg_price - Tppoints * syminfo.mintick)