
Die Multi-Cycle-Return-Point-Identifizierung und Automatische-Trading-Strategie ist ein quantitatives Trading-System, das auf der Erkennung von Magic-9⁄13-Mustern und Richtungs-Return-Points (DRP) basiert. Die Strategie fängt Markt-Return-Signale auf, indem sie Preis-Kontinuität-Muster und Dynamik-Veränderungspunkte erkennt, und führt die Transaktionen automatisch aus. Die Strategie basiert auf der Kombination von traditionellen technischen Analyse-Konzepten mit modernen quantitativen Methoden, um potenzielle Markt-Return-Punkte zu identifizieren, um zu Beginn eines Preis-Return-Punktes in den Markt zu gelangen.
Die Kernprinzipien der Strategie basieren auf zwei wichtigen technischen Kennzahlen: dem Magic-9⁄13-Modus und dem Richtungsumkehrpunkt (DRP).
Magic-9⁄13 Modulerkennung:
Dreh-Rück-Punkt (DRP) Berechnung:
Handelssignale erzeugt:
Risikomanagement:
Hilfsfunktion:
Früher Erkennen von MarktumkehrDurch die Kombination des Magic-9⁄13-Modus mit dem Richtungsumkehrpunkt ist es möglich, die Signale in den frühen Phasen der Marktumkehr zu erfassen und eine bessere Einstiegszeit zu bieten.
MehrfachbestätigungDie Strategie erfordert die gleichzeitige Erfüllung zweier unabhängiger Bedingungen (Magic-Modus und Richtungsumkehrpunktüberschreitung), reduziert die Wahrscheinlichkeit von Falschsignalen und erhöht die Qualität des Handels.
Automatisierte RisikokontrolleDie integrierte Stop-Loss- und Stop-Stop-Funktion verhindert, dass das Risiko eines einzelnen Handels ohne manuelle Intervention kontrolliert wird und emotionale Handelsentscheidungen getroffen werden.
Visualisierung von HandelssignalenDie Handelssignale werden durch die Farbänderung der Etiketten und Diagramme visuell dargestellt, um den Händlern die Möglichkeit zu geben, potenzielle Handelsmöglichkeiten schnell zu erkennen.
Anpassbarkeit der ParameterDie Strategie bietet die Option, die zwei wichtigen Parameter, die Länge und die Rücklauflänge, anzupassen, um den Händlern die Optimierung für verschiedene Marktbedingungen und Handelsarten zu ermöglichen.
DatenverarbeitungsstabilitätEs enthält Mechanismen für die Bearbeitung von NA-Werten, die die Stabilität der Strategie unter verschiedenen Datenbedingungen verbessern.
Zyklische AnpassungsfähigkeitStrategie: Die Strategie kann auf Diagramme für verschiedene Zeiträume angewendet werden, von Minuten- bis Tagesdiagrammen, was eine flexible Auswahl an Handelszeiträumen ermöglicht.
ParameterempfindlichkeitStrategie-Performance hängt stark von der Einstellung der Parameter für die Länge und die Rücklauflänge ab. Unterschiedliche Marktumgebungen können unterschiedliche Parameterkombinationen erfordern. Die falsche Parameter-Einstellung kann zu überhändlerischen oder verpassten Handelsmöglichkeiten führen.
Risiken von MarktschwankungenDie Lösung: Die Einstellung des Stop-Loss-Punktes auf eine dynamische, nicht auf eine feste Anzahl von Punkten basierende Werte der Marktfluktuation (z. B. ATR).
Entwicklung der MarktentwicklungDie Strategie richtet sich hauptsächlich an die Design-Umkehrpunkte, die häufig falsche Signale in starken Trendmärkten erzeugen können. Lösung: Hinzufügen von Trendfiltern, die nur dann ein Handelssignal auslösen, wenn bestätigt wird, dass der Markt nicht in einem starken Trend ist.
Rutschpunkte und LiquiditätsrisikenLösungsansatz: Erhöhung der Liquiditätsfilterbedingungen oder Berücksichtigung von Schlupffaktoren bei der Ausführung von Aufträgen.
Risiko einer Über-AnpassungDie Strategie verwendet mehrere Bedingungen und Parameter, wodurch das Risiko besteht, dass die historischen Daten übermäßig angepasst werden. Lösung: Die Stabilität der Strategie wird durch Out-of-sample-Testing und Forward-Testing überprüft.
Kontinuierliche SignalansammlungenLösung: Implementierung eines Signalfiltermechanismus, der die Anzahl der Ausführungen eines Signals in derselben Richtung in kurzer Zeit einschränkt.
Fixed Stop-Loss-BegrenzungLösungen: Implementierung eines dynamischen Stop-Stop-Mechanismus, der auf Marktfluktuationen basiert, oder die Einführung einer Stop-Loss-Strategie, die auf Verlust verfolgt.
Anpassung der dynamischen Parameter:
Trendfilter hinzufügen:
Optimieren Sie den Stop-Loss- und Take-Profit-Mechanismus:
Erhöhung des Filtervolumens:
Zeit-Filter:
Positionsmanagement hinzugefügt:
Signalstärke-Rating realisiert:
Erhöhung der Marktbestätigung:
Die Multi-Zyklus-Wendepunkt-Erkennung und die automatische Handelsstrategie ist ein quantitatives Handelssystem, das auf einer Kombination von technischen Kennzahlen basiert und die potenziellen Wendepunkte des Marktes durch die Identifizierung des Magic-9⁄13-Modells in Kombination mit der Analyse der Wendepunkte erfasst. Die Kernvorteile der Strategie liegen in ihren mehrfachen Bestätigungsmechanismen und integrierten Risikomanagementfunktionen, die in der Lage sind, relativ zuverlässige Handelssignale in den frühen Zeiten der Marktwende bereitzustellen und gleichzeitig das Risiko durch die automatische Stop-Loss-Kontrolle zu kontrollieren.
Die Strategie ist jedoch auch mit Einschränkungen konfrontiert, wie Parameter-Sensitivität, Marktumfeldanpassungsfähigkeit und festen Stop-Loss-Stufen. Durch die Implementierung von Optimierungsmaßnahmen wie dynamische Parameteranpassungen, zusätzliche Trendfilter, Optimierung von Stop-Loss-Stufen und Erhöhung der Bestätigung von Transaktionen können die Anpassungsfähigkeit und Leistungsstabilität der Strategie erheblich verbessert werden.
Für Händler bietet die Strategie einen Rahmen, um systematisch Marktwendepunkte zu erfassen, jedoch mit einer vernünftigen Parameteranpassung und -optimierung in Kombination mit persönlichen Risikopräferenzen und Marktverständnis. In der Praxis wird empfohlen, die Strategie zunächst in Simulationen ausreichend zu testen, um die Eigenschaften der Strategie in verschiedenen Marktumgebungen zu verstehen, und dann schrittweise auf den echten Handel anzuwenden. Durch ständige Optimierung und Verbesserung kann die Strategie zu einem wirksamen Werkzeug in der Toolkit des Händlers werden, insbesondere bei der Erfassung von Marktwendepunkten.
/*backtest
start: 2025-06-05 00:00:00
end: 2025-06-05 15:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy('L3 Magic-9/13 Strategy', overlay=true, max_bars_back=4000, max_labels_count=500)
// 输入参数
length_input = input.int(title='Length', defval=9, minval=1)
lookback_length = input.int(title='Lookback Length', defval=4, minval=1)
// 获取第一个非 NA 值的函数
get_first_non_na_value(values, length) =>
result = float(na)
if length >= 1
for i = 0 to length - 1
if na(result) or not na(values[i])
result := values[i]
result
// 计算连续条件出现次数的函数
count_consecutive_occurrences(condition, length) =>
count = 0
for i = 1 to length
if condition[i - 1]
count += 1
count
// 检查条件是否在给定周期内出现的函数
check_condition_occurrence(condition, length) =>
occurrence = count_consecutive_occurrences(condition, length) != 0 ? 1 : 0
occurrence
// 基于回溯周期过滤出现次数的函数
filter_occurrences(condition, lookback_period) =>
output = 0.0
temp = 0
for i = lookback_period to 0
if temp > 0
output := 0.0
temp := temp[1] - 1
else
if not condition[i]
output := 0.0
else
output := 1.0
temp := lookback_period + 1
output_bool = output == 1 ? true : false
output_bool
// Magic-9/13 逻辑
high_9 = count_consecutive_occurrences(close > get_first_non_na_value(close, 4), 9) == 9 and count_consecutive_occurrences(close > get_first_non_na_value(close, 4), 10) == 9
low_9 = count_consecutive_occurrences(close < get_first_non_na_value(close, 4), 9) == 9 and count_consecutive_occurrences(close < get_first_non_na_value(close, 4), 10) == 9
// 计算方向反转点
up_count = 0
down_count = 0
for i = 0 to length_input - 1
up_count += (nz(close[i]) > nz(close[i + lookback_length]) ? 1 : 0)
down_count += (nz(close[i]) < nz(close[i + lookback_length]) ? 1 : 0)
directional_reversal_point = down_count == length_input ? 1 : up_count == length_input ? -1 : 0
// 定义交易信号
buy_signal = check_condition_occurrence(low_9, 2) and ta.crossover(directional_reversal_point, 0)
sell_signal = check_condition_occurrence(high_9, 2) and ta.crossunder(directional_reversal_point, 0)
// 执行交易
if (buy_signal)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit", "Buy", limit=close + 10 * syminfo.pointvalue, stop=close - 10 * syminfo.pointvalue)
if (sell_signal)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit", "Sell", limit=close - 10 * syminfo.pointvalue, stop=close + 10 * syminfo.pointvalue)
// 绘制标签
labels = buy_signal ? label.new(bar_index, low, 'B', color=color.new(color.red, 40), textcolor=color.white, style=label.style_label_up, yloc=yloc.price, size=size.small) : sell_signal ? label.new(bar_index, high, 'S', color=color.new(color.lime, 40), textcolor=color.white, style=label.style_label_down, yloc=yloc.price, size=size.small) : na
// 绘制蜡烛图颜色
signal = directional_reversal_point > 0 or up_count > down_count ? 1 : directional_reversal_point < 0 or down_count > up_count ? -1 : 0
drp_color = signal > 0 ? color.green : signal < 0 ? color.red : color.black
barcolor(drp_color)