
Eine mehrstufige Preisbruch- und Rücknahme-Handelsstrategie ist ein Handelssystem, das auf dem Preisverhalten basiert und hauptsächlich darauf abzielt, bestimmte Preismuster zu identifizieren und an den Bruchpunkten exakt einzutreten. Die Strategie überwacht die Beziehung zwischen dem Eröffnungs-, Höchst- und Tiefstpreis sowie dem Schließungspreis des Diagramms, kombiniert mit der Analyse der Differenzpunkte, um die Zeit der Veränderung der Marktdynamik zu erfassen. Die Strategie verfügt über eine mehrstufige Urteilsmechanik, die Eintrittsbedingungen in drei verschiedenen Phasen setzt, und ist gleichzeitig mit einer symmetrischen mehrräumigen, bidirektionalen Handelslogik sowie einem Stop-Loss-Stoppmechanismus an festen Punkten ausgestattet.
Der Kern der Strategie ist die Identifizierung und Nutzung von Fortsetzungsgelegenheiten nach schnellen Preisschwankungen. Durch eine tiefere Analyse des Codes können wir sehen, dass die Strategie den folgenden Prinzipien folgt:
PositionserkennungDie Strategie unterteilt die Handelslogik in drei Phasen ((phase 1-3), die unterschiedliche Einstiegsbedingungen für verschiedene Phasen auslösen.
DurchbruchskonditionsprüfungBei mehrfachen Transaktionen werden vor allem folgende Bedingungen ermittelt:
Umgekehrte LogikDer Einstiegszeitpunkt wird durch die Überwachung des Verhältnisses zwischen dem Eröffnungspreis und dem Mindestpreis beurteilt.
Stoppschalter-EinstellungDie Strategie verwendet eine Stop-Loss-Strategie mit festen Punkten, wobei der Stop-Loss mit mehreren Köpfen 301 Punkte unter dem Einstiegspreis und der Stop-Loss 301 Punkte über dem vorherigen Schlusskurs eingestellt wird. Die Blank-Trading ist umgekehrt.
Nach einer eingehenden Analyse des Codes zeigte sich, dass diese Strategie folgende deutliche Vorteile aufweist:
Mehrstufige BeurteilungDurch drei verschiedene Phasen der Beurteilung wurde die Fehleinschätzung durch eine einzelne Bedingung vermieden und die Genauigkeit der Zulassung erhöht.
Ausrichtung und RückzugDie Strategie konzentriert sich sowohl auf die Durchbruchdynamik der Preise als auch auf mögliche Rückzugsbewegungen, wobei Angriff und Verteidigung ausgeglichen werden.
Die Parameter sind flexibelDurch die Einstellung der Punktwertparameter kann die Strategie an Märkte und Sorten mit unterschiedlichen Schwankungsmerkmalen angepasst werden, was den Anwendungsbereich der Strategie erhöht.
Zweiseitige TransaktionenDie Strategie beinhaltet eine gleichzeitige binäre Handelslogik, um die Marktchancen zu nutzen und nicht von einer einseitigen Tendenz eingeschränkt zu sein.
Eingebettetes RisikomanagementDie Risiken und die potenziellen Gewinne für jeden Handel werden durch die vorgegebene Stop-Loss-Stopp-Liste eindeutig kontrolliert.
Obwohl die Strategie so gut konzipiert ist, gibt es folgende potenzielle Risiken:
Fixe PunktstellungDie Lösung besteht darin, diese Parameter an die Eigenschaften der Sorte und die momentane Dynamik der Marktvolatilität anzupassen.
Falsche DurchbruchgefahrFalsche Durchbrüche, bei denen der Markt nach einem kurzen Durchbruch schnell zurückzieht, führen zu falschen Signalen. Solche Risiken können durch die Erhöhung von Bestätigungsindikatoren wie Transaktionsvolumen oder anderen Dynamikindikatoren verringert werden.
Folgeverluste möglichDie Lösung besteht darin, die Filter für die Marktumgebung zu erhöhen und den Handel in einem Marktschock zu reduzieren oder zu unterbrechen.
Ausführung der GleitpunkteDie Strategie beruht auf einem exakten Preispunkt. In der Praxis kann es zu Problemen mit Schlupfpunkten kommen, insbesondere in weniger flüssigen Märkten. Es wird empfohlen, Schlupfpunkte zu simulieren und die Einstiegsbedingungen in der Praxis angemessen zu lockern.
Komplexität der PositionsverfolgungMehrphasen-Design erhöht zwar die Genauigkeit, erhöht aber auch die logische Komplexität, was zu Verzögerungen oder Fehlern bei der Ausführung von Transaktionen führen kann. Regelmäßige Überprüfungen und vereinfachte Logik können die Ausführungseffizienz verbessern.
Hier sind einige mögliche Optimierungsmöglichkeiten für diese Strategie:
Anpassung der dynamischen ParameterDie Strategie kann besser an unterschiedliche Marktumgebungen angepasst werden, indem die Fixed-Point-Parameter in dynamische Parameter umgewandelt werden, die auf Marktschwankungen basieren (z. B. ATR-Indikatoren). Dadurch können die Trigger-Temperature in Zeiten niedrigerer Schwankungen verringert und die Trigger-Temperature in Zeiten hoher Schwankungen erhöht und die Anpassungsfähigkeit verbessert werden.
Mehr Filter für die MarktumgebungEinführung von Trend-Anzeigen (z. B. Moving Average Directions oder ADX-Anzeigen), Ausführung von Strategien nur in günstigen Marktbedingungen und Vermeidung von Handelsbedingungen unter ungünstigen Bedingungen.
Optimierung der Stop-Loss-EinstellungenEs kann in Erwägung gezogen werden, Tracking-Stops anstelle von Fixed-Stops zu verwenden, um einen größeren Spielraum für profitable Geschäfte zu ermöglichen und gleichzeitig die erzielten Gewinne zu schützen.
Hinzufügen von Bestätigungsfaktoren: Erhöhung des Umsatzes, Bestätigung der Marktstruktur oder anderer technischer Indikatoren bei Triggerung des Eintrittssignals und Verringerung der Auswirkungen falscher Signale.
ZeitfilterDas Programm wurde in zwei Schritten erweitert: Ein zusätzlicher Zeitfensterfilter für den Handel, der die öffnenden und abschließenden Zeiten der Märkte vermeidet, in denen es zu starken Schwankungen kommt, aber keine eindeutige Richtung gibt, und sich auf die Zeit konzentriert, in der der Handel stabiler ist.
Vereinfachung der PositionsumwandlungslogikDas Programm wurde in zwei Schritten erweitert: Neugestaltung der Phasenumwandlungslogik, Reduzierung unnötiger Statusprüfungen, Vereinfachung der Code-Struktur und Verbesserung der Ausführungseffizienz.
Die Mehrphasen-Präsent- und Rücktrittsstrategie ist ein gut strukturiertes Handelssystem, das durch eine mehrschichtige Analyse des Preisverhaltens günstige Handelsmöglichkeiten identifiziert. Die Kernvorteile liegen in der Mehrphasen-Urteilsmechanik, der Zwei-Wege-Handelskapazität und dem integrierten Risikomanagementsystem. Obwohl es Probleme wie die Anpassung festgelegter Parameter und das Risiko für falsche Durchbrüche gibt, werden die Optimierungsmaßnahmen wie die Einführung von dynamischen Parametern, Marktumfeldfilterungen und Bestätigungsfaktoren die Stabilität und Profitabilität der Strategie erheblich verbessern.
Die Strategie eignet sich besonders für mittel- und kurzfristige Händler, insbesondere für Händler, die auf die Preisbewegung achten und sich in den frühen Phasen von Dynamikveränderungen einmischen möchten. Durch die sorgfältige Anpassung der Parameter und das Hinzufügen geeigneter Filterbedingungen kann die Strategie zu einem zuverlässigen Handelssystem entwickelt werden, das eine stabile Quelle von Erträgen für quantifizierte Handelsportfolios bietet.
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
//@version=5
strategy("Custom Strategy", overlay=true, margin_long=1, margin_short=1, process_orders_on_close=true)
// 参数设置
point_value = input.float(0.0001, title="点值(例如:0.0001代表1个点)")
// 多单逻辑变量
var float long_ref_open = na
var float long_ref_high = na
var bool long_condition1 = false
var bool long_condition2 = false
var int long_phase = 0
// 空单逻辑变量
var float short_ref_open = na
var float short_ref_high = na
var bool short_condition1 = false
var bool short_condition2 = false
var int short_phase = 0
// 多单条件检查
// 多单第一条件检查
if not long_condition1 and not long_condition2
if high[1] - open[1] >= 300 * point_value
if low[1] <= high[1] - 50 * point_value
strategy.entry("Long", strategy.long)
else
long_ref_open := open[1]
long_ref_high := high[1]
long_phase := 1
else if close[1] - open[1] < 300 * point_value
long_phase := 2
// 多单第二条件检查
if long_phase == 1
if low <= long_ref_open + 250 * point_value
strategy.entry("Long", strategy.long)
long_phase := 0
if long_phase == 2
if high - close[1] >= 300 * point_value
if low <= high - 50 * point_value
strategy.entry("Long", strategy.long)
long_phase := 0
else
long_phase := 3
else
long_phase := 0
if long_phase == 3
if low <= open[2] + 250 * point_value
strategy.entry("Long", strategy.long)
long_phase := 0
// 空单条件检查(反向逻辑)
// 空单第一条件检查
if not short_condition1 and not short_condition2
if open[1] - low[1] >= 300 * point_value
if high[1] >= low[1] + 50 * point_value
strategy.entry("Short", strategy.short)
else
short_ref_open := open[1]
short_ref_high := low[1]
short_phase := 1
else if open[1] - close[1] < 300 * point_value
short_phase := 2
// 空单第二条件检查
if short_phase == 1
if high >= short_ref_open - 250 * point_value
strategy.entry("Short", strategy.short)
short_phase := 0
if short_phase == 2
if close[1] - low >= 300 * point_value
if high >= low + 50 * point_value
strategy.entry("Short", strategy.short)
short_phase := 0
else
short_phase := 3
else
short_phase := 0
if short_phase == 3
if high >= open[2] - 250 * point_value
strategy.entry("Short", strategy.short)
short_phase := 0
// 止损止盈逻辑
if strategy.position_size > 0
strategy.exit("Long Exit", "Long", stop = strategy.position_avg_price - 301 * point_value,limit = close[1] + 301 * point_value)
if strategy.position_size < 0
strategy.exit("Short Exit", "Short",stop = strategy.position_avg_price + 301 * point_value, limit = close[1] - 301 * point_value)