Doppelt exponentielle gleitende Durchschnitts-Multi-Target-Handelsstrategie

EMA SMA TP SL 移动平均线 止损 多目标策略 交叉信号
Erstellungsdatum: 2025-08-21 09:01:39 zuletzt geändert: 2025-08-21 09:01:39
Kopie: 0 Klicks: 212
2
konzentrieren Sie sich auf
319
Anhänger

Doppelt exponentielle gleitende Durchschnitts-Multi-Target-Handelsstrategie Doppelt exponentielle gleitende Durchschnitts-Multi-Target-Handelsstrategie

Überblick

Die Binary Moving Average Multi-Target Trading Strategie ist ein quantitatives Handelssystem, das auf einem Kurz- und Langzeit-Kreuzsignal basiert. Die Strategie nutzt die Kreuzung der 9-Zyklus- und 21-Zyklus-EMA als Einstiegssignal und setzt bis zu 10 Gewinnziele und einen Stop-Loss-Punkt ein, um Risiken zu verwalten und Gewinne zu maximieren. Die Strategie unterstützt gleichzeitig den Multi-Zweig-Trading, bei dem ein Zwei-Zweig-Trading geöffnet wird, wenn die kurzfristige EMA durch die langfristige EMA fällt, beim Untergang der kurzfristigen EMA durch die langfristige EMA, und beim Rückkreuz aussteigt.

Strategieprinzip

Die Kernprinzipien der Strategie basieren auf einem Index-Moving-Average-Kreuzungssystem, das wie folgt umgesetzt wird:

  1. Berechnen Sie zwei EMAs: ein schnelles EMA (mit 9 Zyklen) und ein langsames EMA (mit 21 Zyklen)
  2. Wenn ein schneller EMA über einen langsameren EMA fließt, wird ein Mehrfachsignal erzeugt.
  3. Wenn ein schneller EMA unterhalb eines langsameren EMA durchschreitet, wird ein Lücke-Signal erzeugt.
  4. Nach dem Eintritt berechnet die Strategie automatisch 10 Stufenzielpreise (TP1-TP10) und einen Stop-Loss-Preis basierend auf dem Eintrittspreis
  5. Die Strategie verwendet die gleiche Prozentsatz-Einstellung für Multi- und Leerpositionen, jedoch in die entgegengesetzte Richtung
  6. Bei Mehrköpfen ist die Stop-Loss-Einstellung 0,5% unter dem Einstiegspreis und die Gewinnziele variieren von 0,5% bis 5,0% über dem Einstiegspreis
  7. Für den Leerlauf ist der Stop-Loss-Satz 0,5% über dem Einstiegspreis festgelegt, und die Gewinnziele variieren von 0,5% bis 5,0% unter dem Einstiegspreis.
  8. Die Strategie kann auch beim Auftreten eines umgekehrten Kreuzsignals ausgeglichen werden.

Die Strategie verwendet eine systematische Risikomanagement-Methode, bei der 10% der Kontomittel bei jedem Handel standardmäßig verwendet werden, die Startkapitalhöhe auf 100.000 gesetzt wird und die Überlagerung verboten wird.

Strategische Vorteile

  1. Ein einfaches und effektives EintrittssignalDie EMA-Kreuzung ist ein weit verbreitetes und verifiziertes Handelssignal, das leicht zu verstehen und zu implementieren ist. Die Parameter-Einstellungen für den 921-Zyklus können kurz- und mittelfristige Trends besser erfassen.
  2. Mehrziel-Profit-ManagementDas Ziel ist es, den Händlern zu ermöglichen, ihre Gewinne in verschiedenen Preisniveaus zu verteilen, indem sie ihre Gewinne teilweise sperren und möglichst lange halten.
  3. Strenge RisikokontrollenDie Einführung eines eindeutigen Stop-Loss-Punktes für jeden Handel begrenzt den maximalen Verlustanteil für einen einzelnen Handel und wirkt als Risikokontrolle.
  4. Visuelle UnterstützungStrategie: Die Strategie zeigt alle Eintrittssignale, Stop-Loss-Positionen und Zielpositionen klar auf dem Diagramm an, um den Händlern zu helfen, die Marktlage intuitiv zu verstehen.
  5. Zwei-Wege-TransaktionsfähigkeitDie Strategie unterstützt gleichzeitig den Multi-Stock-Handel und ermöglicht die Suche nach Chancen in verschiedenen Marktumgebungen.
  6. Anpassbarkeit der ParameterAlle wichtigen Parameter (einschließlich EMA-Zyklus, Stop-Loss-Ratio, Gewinnziel) können durch Eingabe angepasst werden, was die Flexibilität der Strategie erhöht.
  7. Voll automatisiertStrategie: Vollständige Automatisierung der Strategie, von der Signalerkennung über den Einstieg, die Einstellung von Stop-Loss- und Gewinnzielen bis zum Ausstieg, ohne menschliche Intervention.

Strategisches Risiko

  1. Falsche DurchbruchgefahrEMA-Kreuzungssysteme sind anfällig für falsche Signale, die zu häufigen Transaktionen und Verlusten führen können. Die Strategie hat keine Filter eingerichtet, um starke und schwache Signale zu unterscheiden.
  2. VerlustbewältigungDie derzeitige Strategie hat einen Standard-Stopp-Satz von 0,5%, der in den stark bewegten Märkten oder Sorten möglicherweise zu eng ist und leicht durch Marktgeräusche ausgelöst wird.
  3. EinzelindikatorabhängigkeitStrategie: Die Strategie verlässt sich nur auf EMA-Kreuzungen als Einstiegssignal, ohne Bestätigung in Verbindung mit anderen technischen Indikatoren oder Marktbedingungen, was das Risiko einer Fehleinschätzung erhöht.
  4. Vermögensverwaltung festDer Kontobestand ist mit 10% pro Transaktion fixiert und wird nicht dynamisch an die Marktvolatilität oder die Signalstärke angepasst, was möglicherweise nicht optimal genug ist.
  5. Mangelnde Erkenntnis des MarktumfeldsDie Strategie unterscheidet nicht zwischen Trend- und Schwingungsmärkten und erzeugt weiterhin Signale in einem Marktumfeld, das nicht für das EMA-Kreuzungssystem geeignet ist.
  6. Einmalige AusstiegsstrategieTP1: Obwohl mehrere Gewinnziele festgelegt wurden, wird die Strategie in der Tat nur bei der ersten Zielposition (TP1) platziert oder bei einer umgekehrten Kreuzung ausgeschaltet, ohne einen echten Batchgewinn zu erzielen.

Um diese Risiken zu mindern, empfiehlt es sich, zusätzliche Filterbedingungen wie Trendstärke-Indikatoren einzuführen und die Anpassung von Stop-Loss- und Zielpositionen an die dynamische Marktvolatilität zu berücksichtigen.

Richtung der Strategieoptimierung

  1. Filter hinzufügenEinführung von zusätzlichen technischen Indikatoren als Filter, wie der ADX (durchschnittliche Trendindex) zur Bestätigung der Trendstärke oder der relativ starken Indikatoren (RSI), um zu vermeiden, dass in überkauften und überverkauften Gebieten gehandelt wird.
  2. Dynamische Verlustminderung: Wechseln Sie den festen Prozentsatz-Stop in einen dynamischen Stop, der auf Marktschwankungen basiert, z. B. indem Sie den Stop-Distanz mit ATR (Average True Range) multiplizieren.
  3. Wirklich vielseitige GewinneDie Strategie wurde geändert, sodass man in verschiedenen Zielpositionen partiell, anstatt nur in der ersten Zielposition vollständig platzieren kann. Dies erfordert, dass jeder Handel in mehrere kleinere Positionen aufgeteilt wird.
  4. Erhöhung der TrenderkennungDas ist eine neue Methode, die sich auf die Entwicklung von Trends konzentriert.
  5. Optimierung der KapitalverwaltungDer Anteil des Geldes an jedem Handel wird dynamisch angepasst, je nach Signalstärke, Marktvolatilität oder Rücknahme, anstatt 10% zu verwenden.
  6. Hinzufügen eines ZeitfiltersEs ist wichtig, dass Sie sich vor der Markteinführung und nach der Markteinführung nicht in Zeiten hoher Volatilität handeln oder wichtige Wirtschaftsdaten vermeiden.
  7. Einführung von mobilen Stop-LossesWenn sich der Preis nach einer gewissen Entfernung in die günstige Richtung bewegt, wird der Stop-Loss-Punkt zu einem Gewinn-Verlust-Gleichgewicht oder einer günstigeren Position verschoben, um den Gewinn zu schützen.
  8. Erhöhung des Trendschutzes: In extremen Marktbedingungen wird ein Abwehrindikator als Warnsignal hinzugefügt, um zu vermeiden, eine Position zu halten, wenn sich der Markt stark umkehrt.

Durch diese Optimierungen kann die Stabilität und Profitabilität der Strategie deutlich verbessert und die Häufigkeit von Rücknahmen und verlustreichen Geschäften verringert werden.

Zusammenfassen

Die Multi-Target-Handelsstrategie ist ein klar strukturiertes, logisch einfaches, quantitatives Handelssystem, das auf klassischen EMA-Kreuzsignal basiert und mit einer Multi-Target-Profit-Management- und Stop-Loss-Einstellung unterstützt wird. Die Strategie ist für den mittelfristigen Trendhandel geeignet und funktioniert besser in klaren Trendmärkten.

Obwohl die Strategie relativ einfach gestaltet ist, enthält sie die Kernelemente der Handelsstrategie: Eintrittssignale, Ausstiegsbedingungen, Stop-Loss-Management und Gewinnziele. Die Hauptvorteile der Strategie liegen in der Klarheit der Handlung, der Leichtigkeit des Verständnisses und der Ausführung und der guten visuellen Unterstützung.

Die Strategie hat jedoch auch Einschränkungen wie die Abhängigkeit von einem einzigen Indikator, die fehlende Identifizierung des Marktumfelds und die unzureichende Flexibilität der Geldverwaltung. Die Strategie hat viel Optimierungsraum durch die Hinzufügung von Trendfiltern, die Optimierung von Stop-Loss-Mechanismen, die Realisierung von echten Gewinnserien und die Verbesserung der Geldverwaltungsmethoden.

Für den Händler kann die Strategie als Basisrahmen dienen, der individuell angepasst und optimiert werden kann, um bessere Handelsergebnisse zu erzielen, je nach individuellen Risikopräferenzen und Eigenschaften der Handelsvariante.

Strategiequellcode
/*backtest
start: 2024-08-21 00:00:00
end: 2025-08-20 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_OKX","currency":"BNB_USDT","balance":5000}]
*/

//@version=5
strategy("9/21 EMA with 10 Targets + Stoploss", 
     overlay = true,
     initial_capital = 100000,
     default_qty_type = strategy.percent_of_equity,
     default_qty_value = 10,
     pyramiding = 0)

// === Inputs ===
emaFastLen = input.int(9, "Fast EMA Length")
emaSlowLen = input.int(21, "Slow EMA Length")
slPercent  = input.float(0.5, "Stoploss %", step=0.1)

// 10 Targets
tp1Percent = input.float(0.5, "Target 1 %", step=0.1)
tp2Percent = input.float(1.0, "Target 2 %", step=0.1)
tp3Percent = input.float(1.5, "Target 3 %", step=0.1)
tp4Percent = input.float(2.0, "Target 4 %", step=0.1)
tp5Percent = input.float(2.5, "Target 5 %", step=0.1)
tp6Percent = input.float(3.0, "Target 6 %", step=0.1)
tp7Percent = input.float(3.5, "Target 7 %", step=0.1)
tp8Percent = input.float(4.0, "Target 8 %", step=0.1)
tp9Percent = input.float(4.5, "Target 9 %", step=0.1)
tp10Percent = input.float(5.0, "Target 10 %", step=0.1)

// === EMA Calculation ===
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)

// === Entry Conditions ===
longCond  = ta.crossover(emaFast, emaSlow)
shortCond = ta.crossunder(emaFast, emaSlow)

// === Entry ===
if (longCond and strategy.position_size <= 0)
    strategy.entry("BUY", strategy.long)

if (shortCond and strategy.position_size >= 0)
    strategy.entry("SELL", strategy.short)

// === Series Variables for Targets ===
var float tp1 = na
var float tp2 = na
var float tp3 = na
var float tp4 = na
var float tp5 = na
var float tp6 = na
var float tp7 = na
var float tp8 = na
var float tp9 = na
var float tp10 = na
var float stopLevel = na

// === Long Positions ===
if strategy.position_size > 0
    stopLevel := strategy.position_avg_price * (1 - slPercent/100)
    tp1 := strategy.position_avg_price * (1 + tp1Percent/100)
    tp2 := strategy.position_avg_price * (1 + tp2Percent/100)
    tp3 := strategy.position_avg_price * (1 + tp3Percent/100)
    tp4 := strategy.position_avg_price * (1 + tp4Percent/100)
    tp5 := strategy.position_avg_price * (1 + tp5Percent/100)
    tp6 := strategy.position_avg_price * (1 + tp6Percent/100)
    tp7 := strategy.position_avg_price * (1 + tp7Percent/100)
    tp8 := strategy.position_avg_price * (1 + tp8Percent/100)
    tp9 := strategy.position_avg_price * (1 + tp9Percent/100)
    tp10 := strategy.position_avg_price * (1 + tp10Percent/100)

    strategy.exit("Exit Long", "BUY", stop=stopLevel, limit=tp1)

// === Short Positions ===
if strategy.position_size < 0
    stopLevel := strategy.position_avg_price * (1 + slPercent/100)
    tp1 := strategy.position_avg_price * (1 - tp1Percent/100)
    tp2 := strategy.position_avg_price * (1 - tp2Percent/100)
    tp3 := strategy.position_avg_price * (1 - tp3Percent/100)
    tp4 := strategy.position_avg_price * (1 - tp4Percent/100)
    tp5 := strategy.position_avg_price * (1 - tp5Percent/100)
    tp6 := strategy.position_avg_price * (1 - tp6Percent/100)
    tp7 := strategy.position_avg_price * (1 - tp7Percent/100)
    tp8 := strategy.position_avg_price * (1 - tp8Percent/100)
    tp9 := strategy.position_avg_price * (1 - tp9Percent/100)
    tp10 := strategy.position_avg_price * (1 - tp10Percent/100)

    strategy.exit("Exit Short", "SELL", stop=stopLevel, limit=tp1)

// === Plotting ===
plot(emaFast, "EMA 9", color=color.yellow, linewidth=2)
plot(emaSlow, "EMA 21", color=color.orange, linewidth=2)

// Global plots (avoid local scope error)
plot(tp1,  "TP1",  color=color.new(color.green, 0))
plot(tp2,  "TP2",  color=color.new(color.green, 10))
plot(tp3,  "TP3",  color=color.new(color.green, 20))
plot(tp4,  "TP4",  color=color.new(color.green, 30))
plot(tp5,  "TP5",  color=color.new(color.green, 40))
plot(tp6,  "TP6",  color=color.new(color.green, 50))
plot(tp7,  "TP7",  color=color.new(color.green, 60))
plot(tp8,  "TP8",  color=color.new(color.green, 70))
plot(tp9,  "TP9",  color=color.new(color.green, 80))
plot(tp10, "TP10", color=color.new(color.green, 90))
plot(stopLevel, "Stoploss", color=color.red, linewidth=2)

// Entry Signals
plotshape(longCond, title="BUY Signal", style=shape.labelup, color=color.green, text="BUY")
plotshape(shortCond, title="SELL Signal", style=shape.labeldown, color=color.red, text="SELL")