
Die High-Level-Zonen-Quantitative-Trading-Strategie ist ein automatisiertes Trading-System, das auf der Graphiktechnik basiert. Die Kernidee besteht darin, Handelssignale zu erzeugen, die durch die Identifizierung bestimmter Schieberegeln und Preise, die in diese Schieberegeln eintreten, erzeugt werden. Die Strategie sucht nach potenziellen Kauf- und Verkaufsmöglichkeiten in den Märkten, indem sie die Beziehung zwischen Schieberegeln und Schieberegeln analysiert, kombiniert mit Preisverhalten.
Das Kernprinzip der Strategie ist die Identifizierung und Nutzung einer speziellen Preisspanne, der “Displacement Zone”, um zu handeln.
Identifizierung der VerlagerungsanzeigeStrategie zuerst durchisBullishDisplacement()UndisBearishDisplacement()Die Funktion identifiziert positiven und negativen Verlagerungsstränge. Diese Stränge sind durch bestimmte Multiplikatoren von Wesenheiten gekennzeichnet, die größer sind als die Schattenstränge (kontrolliert durch die Sensitivitätsparameter).
Ohne KreuzDurch:isDoji()Die Funktion filtert Kreuzsternlinien mit höherer Unsicherheit ab und konzentriert sich nur auf eindeutige Trendsignale. Der Kriterium für Kreuzsterns ist, dass das Verhältnis der Entität zum Gesamtbereich kleiner als der festgelegte Schwellenwert ist (default 10%).
Aufbau von AbwanderungsgebietenDie Strategie zeichnet die Höhen und Tiefen der letzten beiden Positions- oder Positionsverlagerungslinien auf und bildet damit die oberen und unteren Grenzen der Verlagerungsregion.
Regionaler StatusverfolgungVerwendungsstatusvariablen:inBearZoneUndinBullZone) Verfolgen Sie, ob sich die Preise innerhalb der Verschiebungszone befinden.
Eingangssignal erzeugtDas ist ein Handelssignal, das erzeugt wird, wenn der Preis von einer bestimmten Richtung in eine Verschiebungszone eintritt.
Automatisierte TransaktionsdurchführungDie Strategie führt den Handel automatisch aus, sobald das Signal ausgelöst wird, und setzt die Stand-Stop-Position (12 Punkte) und die Stand-Loss-Position (1 Punkt) fest.
Wenn wir den Code der Strategie genauer analysieren, können wir folgende wesentliche Vorteile feststellen:
Klarheit in der Logik der PreisstrukturDie Strategie basiert auf dem Konzept der Verlagerungszonen und der Verlagerungszonen, die Handelslogik ist intuitiv, klar und leicht zu verstehen und anzuwenden.
Flexibilität der ParameterisierungDie Strategie kann an unterschiedliche Marktbedingungen und persönliche Risikopräferenzen angepasst werden.
Automatisierte RisikomanagementEin integriertes, fest installiertes Stop-Loss-System mit einem Risiko-Rendite-Verhältnis von 12:1 für jeden Handel trägt zur langfristigen Stabilität der Geldverwaltung bei.
Visualisierung von HandelssignalenDie Strategie zeigt die Kauf- und Verkaufssignale sowie die Grenzen der Verschiebungszonen durch grafische Markierungen, um den Händlern ein visuelles Verständnis der Marktlage zu ermöglichen.
Die Strategie, bei der Preise durchbrechen und zurücktretenDie Angabe der Verschiebungsregionen wurde nicht nur identifiziert, sondern auch durch die Kombination von technischen Analysen, die nach einem Preisbruch zurückgehen, wurde die Signalqualität verbessert.
Vermeiden Sie die Geräusche der MärkteDie Angabe des “Fehlersignals” im unsicheren Marktumfeld wird durch die Filterung der Kreuz-Sterne reduziert.
Obwohl die Strategie so konzipiert ist, gibt es folgende potenzielle Risiken:
Das Risiko ist zu gering.Die Strategie hat nur einen Stop-Loss-Satz von 1 Punkten, der in hochflüchtigen Märkten zu eng sein kann und leicht durch Marktgeräusche ausgelöst werden kann, was zu häufigen Stop-Losses führt. Lösung: Anpassung des Stop-Loss-Multiplikators an die Schwankungen der Handelsvarianten.
ParameterempfindlichkeitLösungsansatz: Optimierung der Parameter durch Rückmeldung, um die optimale Parameterkombination für bestimmte Marktbedingungen zu finden.
Risiken von fortlaufenden VerlustenIn einem wackligen Markt können sich häufig Verschiebungszonen bilden, die jedoch nicht dauerhaft zu Trends werden können, was zu einem kontinuierlichen Stopp führt. Lösung: Hinzufügen von Filterbedingungen für die Marktumgebung, wie z. B. die Bestätigung von Trendindikatoren.
Mangel an dynamischen StoppsDie Lösung: Ein dynamischer Stop-Mechanismus basierend auf ATR oder Volatilität.
Übermäßige Abhängigkeit von historischen VerlagerungenStrategie: Nur die beiden jüngsten Verschiebungen zu erfassen, wobei möglicherweise längerfristige Preisstrukturen ignoriert werden. Lösung: Erwägen Sie, den Zeitrahmen für die Aufzeichnung der Verschiebungen zu erweitern.
Auf der Grundlage der Code-Analyse gibt es folgende Optimierungsmöglichkeiten für die Strategie:
Dynamische RisikomanagementDer Vorteil besteht darin, vorzeitige Verluste bei niedrigen Schwankungen zu reduzieren und ausreichend Schutz bei hohen Schwankungen zu bieten.
Filterzeit erhöhenIn die Strategie einzufügen: Zeitwirksamkeitskontrolle, Verlagerungszonen sollten umgestellt oder reduziert werden, wenn sie sich zu lange gebildet haben, ohne dass ein Signal ausgelöst wurde. Dies verhindert, dass Handelsentscheidungen auf der Grundlage veralteter Informationen getroffen werden.
Einführung der LieferbestätigungDie Transaktionsmenge wird als Hilfsindikator für die Signalbestätigung verwendet, um die Signalqualität zu verbessern. Die Transaktionsmenge kann die Effektivität der Preisbewegung überprüfen.
Mehrfache ZeitrahmenanalyseDas Ergebnis: Die Signalrichtung des aktuellen Zeitrahmens wird mit der Trendrichtung des höheren Zeitrahmens kombiniert und nur dann gehandelt, wenn die Richtung übereinstimmt, um die Gewinnrate zu erhöhen.
Anpassungs-ParametersystemDie Implementierung eines Mechanismus zur automatischen Anpassung der Sensitivitätsparameter an die jüngsten Marktverhältnisse ermöglicht die Anpassung der Strategie an die Marktveränderungen. Dies liegt daran, dass verschiedene Parameter in verschiedenen Marktphasen (Trends, Zonenvibrationen) benötigt werden.
Erhöhung der SchadensicherheitEs ist möglich, dass ein System entwickelt wird, das den Handel nach einer bestimmten Anzahl von Verlusten in Folge für eine gewisse Zeit aussetzt oder die Parameter anpasst, um dauerhafte Verluste unter ungünstigen Marktbedingungen zu vermeiden.
Die High-Level-Zonen-Quantitative-Trading-Strategie ist eine systematisierte Handelsmethode, die auf der Preisstruktur und der Pivot-Graphik basiert und Handelssignale erzeugt, indem sie bestimmte Leerlauflinien und Modelle der Preisbewegung identifiziert. Die Strategie kontrolliert das Risiko durch eine feste Stop-Loss-Mechanismus und unterstützt die Handelsentscheidung durch visuelle Tools.
Die Hauptvorteile der Strategie liegen in der Logikklarheit, der Parameterflexibilität und der Automatisierung des Risikomanagements, aber es gibt auch potenzielle Risiken wie zu kleine Stop-Loss-Einstellungen und Parameter-Sensitivität. Durch die Einführung von Optimierungsmaßnahmen wie dynamisches Risikomanagement, Zeitfilter, Lieferumfangbestätigung, Multi-Time-Framework-Analyse und adaptive Parameter-Systeme können die Robustheit und die Profitabilität der Strategie erheblich verbessert werden.
Für Investoren, die systematische Transaktionen auf der Grundlage technischer Analysen anstreben, bietet die Strategie für hochgradig verlagerte Gebiete einen erwähnenswerten Rahmen, insbesondere wenn sie in Verbindung mit entsprechenden Optimierungen eine höhere Wahrscheinlichkeit hat, in verschiedenen Marktumgebungen eine stabile Leistung zu erzielen.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-05-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
//@version=6
strategy("Advanced Displacement Zone Strategy", overlay=true)
// === PARAMETERS ===
sensitivity = input.float(1.2, title="Displacement Strength Multiplier")
dojiThreshold = input.float(0.1, title="Doji Body-to-Range Threshold (e.g., 0.1 = 10%)")
// === FUNCTIONS ===
isDoji() =>
candleRange = high - low
body = math.abs(close - open)
candleRange > 0 and (body / candleRange) <= dojiThreshold
isBullishDisplacement() =>
body = close - open
wick = (high - low) - math.abs(body)
not isDoji() and body > 0 and body > wick * sensitivity
isBearishDisplacement() =>
body = open - close
wick = (high - low) - math.abs(body)
not isDoji() and body > 0 and body > wick * sensitivity
// === STATE TRACKING ===
var float lastBullWick = na
var float secondLastBullWick = na
var float lastBearWick = na
var float secondLastBearWick = na
var bool inBearZone = false
var bool inBullZone = false
// === DETECT DISPLACEMENT CANDLES ===
if isBullishDisplacement()
secondLastBullWick := lastBullWick
lastBullWick := high
inBullZone := true
inBearZone := false
if isBearishDisplacement()
secondLastBearWick := lastBearWick
lastBearWick := low
inBearZone := true
inBullZone := false
// === WAITING ZONE BOUNDARIES ===
bullZoneHigh = math.max(lastBullWick, secondLastBullWick)
bullZoneLow = math.min(lastBullWick, secondLastBullWick)
bearZoneHigh = math.max(lastBearWick, secondLastBearWick)
bearZoneLow = math.min(lastBearWick, secondLastBearWick)
// === ZONE LOGIC ===
inBullZoneNow = close > bullZoneLow and close < bullZoneHigh
inBearZoneNow = close > bearZoneLow and close < bearZoneHigh
wasBelowBearZone = close[1] < bearZoneLow and close > bearZoneLow and not inBearZoneNow
wasAboveBullZone = close[1] > bullZoneHigh and close < bullZoneHigh and not inBullZoneNow
// === SIGNAL CONDITIONS ===
sellSignal = inBearZone and wasBelowBearZone
buySignal = inBullZone and wasAboveBullZone
// === STRATEGY EXECUTION ===
if buySignal
strategy.entry("Buy", strategy.long)
strategy.exit("Sell", from_entry="Buy", stop=close - 1, limit=close + 12) // Fixed Stop Loss at 5 points, Take Profit at 12 points
if sellSignal
strategy.entry("Sell", strategy.short)
strategy.exit("Buy", from_entry="Sell", stop=close + 1, limit=close - 12) // Fixed Stop Loss at 5 points, Take Profit at 12 points
// === PLOTS ===
plotshape(buySignal, title="Buy", location=location.belowbar, style=shape.arrowup, color=color.green, size=size.small, text="BUY")
plotshape(sellSignal, title="Sell", location=location.abovebar, style=shape.arrowdown, color=color.red, size=size.small, text="SELL")
plot(inBullZone ? bullZoneHigh : na, title="Bull Zone High", color=color.green, linewidth=1)
plot(inBullZone ? bullZoneLow : na, title="Bull Zone Low", color=color.green, linewidth=1)
plot(inBearZone ? bearZoneHigh : na, title="Bear Zone High", color=color.red, linewidth=1)
plot(inBearZone ? bearZoneLow : na, title="Bear Zone Low", color=color.red, linewidth=1)