
Die Strategie ist ein auf mehreren technischen Indikatoren basierendes Handelssystem, das eine Kombination aus Index-Moving Average (EMA) -Kreuzung, Center-Point-Referenzpreis (CPR), Handelsvolumen-Filterung und automatischer Stop-Loss-/Stopp-Einstellung enthält. Die Kernlogik der Strategie besteht darin, die Marktrichtung durch die Kreuzung von EMA-Schnelllinie und -Slowlinie zu bestimmen, während die CPR als zusätzliche Preisreferenzpunkte verwendet wird, um das Signal zu bestätigen, und die Marktaktivität durch den Handelsvolumen-Filter zu bestätigen.
Die Kernlogik der Strategie basiert auf folgenden Schlüsselkomponenten:
EMA KreuzungssystemDie Strategie verwendet den Index-Moving-Average (EMA) mit 20 und 50 Perioden als Haupttrendindikator. Wenn ein schneller EMA (mit 20 Perioden) einen langsamen EMA (mit 50 Perioden) durchbricht, erzeugt dies ein Mehr-Signal. Wenn ein schneller EMA einen langsamen EMA unterbricht, erzeugt dies ein Fehlsignal. Dies ist eine klassische Mittellinien-Kreuzung-Strategie, um Trendwendepunkte zu erfassen.
CPR (Zentralpunkt-Referenzpreis) bestätigtCPR besteht aus drei wichtigen Preisniveaus: Pivot, Lower Center, BC, und Upper Center, TC. Diese Niveaus basieren auf den Höhen, Tiefen und Schlusskurs des Vortages. In mehreren Fällen verlangt die Strategie, dass der Preis über dem Pivotpunkt liegen muss.
Filter für die TransaktionsmengeUm zu vermeiden, dass die Handelsmenge zu klein ist, setzt die Strategie die Bedingung, dass die Handelsmenge größer als die 20-Tage-Durchschnittsmenge sein muss. Eine hohe Handelsmenge bedeutet in der Regel eine hohe Marktbeteiligung und erhöht die Zuverlässigkeit der Preisentwicklung. Der Benutzer kann wählen, ob dieser Filter aktiviert ist.
Automatische Verlust-/StoppschaltungDie Strategie setzt einen festen Prozentsatz an Stop-Loss und Stop-Off auf Basis des Einstiegspreises ein. Die Standardeinstellung sieht den Stop-Loss bei 1,5% unter dem Einstiegspreis und den Stop-Off bei 3% über dem Einstiegspreis vor. Dies führt zu einem Risiko-Rendite-Verhältnis von 1:2, was im Einklang mit den Prinzipien eines gesunden Risikomanagements steht.
SignalvisualisierungDie Strategie zeigt die Kauf- und Verkaufssignale in Form von Tags und Formen auf der Grafik, so dass der Händler die Eintrittspunkte klar sehen kann.
Die Logik der Transaktionsdurchführung ist einfach: Wenn die Bedingungen für mehrere Positionen erfüllt sind (eine EMA-Kreuzung, ein Preis über dem Pfahlpunkt, ein Transaktionsvolumen), tritt die Strategie in einen mehrköpfigen Position ein und setzt gleichzeitig Stop-Loss- und Stop-Orders. Wenn die Bedingungen für einen Leerstand erfüllt sind (eine EMA-Kreuzung, ein Preis unter dem Pfahlpunkt, ein Transaktionsvolumen), tritt die Strategie in einen Leerstand ein und setzt ebenfalls entsprechende Stop-Loss- und Stop-Orders.
MehrfachbestätigungDie Strategie kombiniert Trendindikatoren (EMA), Preisniveauindikatoren (CPR) und Handelsvolumenindikatoren zu einem mehrfachen Bestätigungssystem. Dies reduziert die Wahrscheinlichkeit von Falschsignalen und erhöht die Zuverlässigkeit des Handels. Ein einzelner Indikator kann falsche Signale erzeugen, aber die Bestätigung mehrerer verschiedener Arten von Indikatoren erhöht die Wahrscheinlichkeit eines erfolgreichen Handels.
AnpassungsfähigkeitDurch anpassbare Parameter (wie EMA-Länge, Stop-Loss-Prozentsatz, Stop-Stop-Prozentsatz und die Verwendung von Volumenfiltern) kann die Strategie an unterschiedliche Marktumgebungen und die Risikopräferenzen der Händler angepasst werden. Dies macht die Strategie sowohl für volatile als auch für relativ stabile Märkte geeignet.
Risikomanagement-IntegrationDie Strategie enthält eine automatische Stop-Loss- und Stop-Stop-Mechanik, die in vielen grundlegenden Strategien fehlt. Dies stellt sicher, dass jeder Handel mit vordefinierten Risiko- und Renditezielen abgeschlossen wird und dass emotionale Entscheidungen keine Auswirkungen auf die Handelsergebnisse haben.
Visualisierung von HandelssignalenStrategie: Die Strategie zeigt die Handelssignale intuitiv auf den Diagrammen an, so dass Händler die Ein- und Ausstiegspunkte leicht identifizieren können, um die Strategie zu reflektieren und anzupassen.
Code ist einfach und effizientStrategie-Code ist klar strukturiert, logisch modular und leicht zu verstehen und zu ändern. Dies ermöglicht es sogar Händlern mit begrenzter Programmiererfahrung, die Funktionsweise der Strategie zu verstehen und sie an ihre Bedürfnisse anzupassen.
Weit verbreitetDie Strategie ist für verschiedene Handelsarten, einschließlich Futures und Aktien, ohne spezielle Anpassungen für bestimmte Märkte erforderlich. Diese Allgemeingültigkeit ermöglicht es der Strategie, in verschiedenen Marktumgebungen relativ stabile Leistungen zu erzielen.
Falsche KreuzungDie EMA-Kreuzungsstrategie kann mehrere falsche Kreuzungssignale erzeugen, die zu einer Reihe von Verlustgeschäften führen. Obwohl CPR und die Handelsvolumenfilter helfen, diese falschen Signale zu reduzieren, ist dies in Märkten, in denen es keinen klaren Trend gibt, immer noch ein erhebliches Risiko. Die Lösung besteht darin, den Handel in einem horizontalen Markt auszusetzen oder zusätzliche Trendbestätigungsindikatoren hinzuzufügen.
Einschränkungen des festen Stop-LossesDie Strategie besteht darin, einen festen Prozentsatz Stop-Off zu verwenden, der auf den Einstiegspreis basiert, was möglicherweise nicht für alle Marktbedingungen und -fluktuationen geeignet ist. In hochvolatilen Märkten kann ein fester Prozentsatz Stop-Off zu eng sein; in niedrigvolatilen Märkten kann es zu locker sein. Eine mögliche Lösung besteht darin, einen dynamischen Stop-Off zu verwenden, der auf dem ATR (Average True Range) basiert und besser auf Marktvolatilität abgestimmt ist.
Ausrutschpunkte und AusführungsrisikenStrategie: Es wird angenommen, dass alle Orders zum angegebenen Preis ausgeführt werden können, aber es kann zu Ausrutschen und Verzögerungen bei der Ausführung im tatsächlichen Handel kommen, insbesondere in Märkten mit begrenzter Liquidität. Dies kann dazu führen, dass die tatsächlichen Handelsergebnisse von den Rückmessergebnissen abweichen. Um dieses Risiko zu verringern, können konservative Einstellungen im tatsächlichen Handel verwendet werden, z. B. die Erhöhung der Stop-Loss-Range oder die Verringerung der Position.
Überoptimierung der ParameterDie Performance einer Strategie ist stark von den gewählten Parametern abhängig: EMA-Länge, Stop-Loss-Percentage usw. Überoptimierte Parameter können dazu führen, dass sie bei der Rückprüfung gut abschneiden, aber bei der tatsächlichen Abwicklung schlecht abschneiden. Die Lösung besteht darin, eine längere Rückmesszeit zu verwenden und die Stärke der Strategie unter mehreren Marktbedingungen zu testen.
Die Grenzen der CPRStrategie: Die Berechnung der CPR mit Tagelinesdaten, die bei Transaktionen innerhalb des Tages oder kürzerer Zeiträume möglicherweise nicht flexibel oder schnell genug reagieren. Eine mögliche Lösung ist die Anpassung der Berechnungszyklen der CPR an den verwendeten Zeitrahmen.
Falsche SignalzahlenDie einfachen Bedingungen, die auf einem Handelsvolumen über dem 20-Tage-Durchschnitt basieren, reichen möglicherweise nicht aus, um die Marktaktivität genau zu beurteilen. An einigen außergewöhnlichen Handelstagen kann es zu einem Handelsvolumenanstieg kommen, der jedoch keine echte Trendbestätigung darstellt. Es kann in Betracht gezogen werden, eine komplexere Analyse des Handelsvolumens zu erstellen, z. B. den Trend des Handelsvolumens oder die relative Veränderungsrate des Handelsvolumens.
Verbesserte TrenderkennungDie aktuelle Strategie beruht hauptsächlich auf EMA-Kreuz-Identifizierungstrends. Es kann in Betracht gezogen werden, zusätzliche Trendindikatoren wie ADX zu verwenden, um sicherzustellen, dass nur in stark trendigen Märkten gehandelt wird. Dies hilft, falsche Signale in Querbrettmärkten zu filtern und die Qualität der Transaktionen zu verbessern, anstatt die Menge.
Dynamische Verlust- und StoppschlägeStellvertretung von Stop-and-Stop-Anzeigen mit einem festen Prozentsatz von Volatilität wie ATR, um die Volatilität verschiedener Marktumgebungen besser anzupassen. So kann beispielsweise ein Stop-Loss auf das 2-fache des ATR gesetzt und ein Stop-Off auf das 4-fache des ATR gesetzt werden, um den gleichen Risiko-Rendite-Verhältnis zu halten, aber besser an die Marktbedingungen anzupassen.
Erweiterte Analyse von TransaktionenDer Filter für den Transaktionsvolumen kann verbessert werden, so dass nicht nur die Größe des Transaktionsvolumens, sondern auch die Tendenz des Transaktionsvolumens und die Preis-Transaktionsvolumen-Beziehung berücksichtigt werden. Zum Beispiel können Bedingungen hinzugefügt werden, die verlangen, dass der Anstieg des Transaktionsvolumens mit der Richtung der Preisentwicklung übereinstimmt, oder kompliziertere Transaktionsvolumen-Indikatoren wie OBV (Energieflut) verwendet werden.
Optimierung der ZulassungszeitEs kann in Betracht gezogen werden, die Bestätigungsbedingungen hinzuzufügen, z. B. die Wartezeit für die Rückführung des Preises zu einem kritischen Unterstützungs-/Widerstandswert oder die Wartezeit von 1-2 Zyklen für die Bestätigung, um das Risiko eines falschen Durchbruchs zu verringern. Dies kann durch die Verzögerung des Eintrittssignals oder die Hinzufügung einer Bestätigung des Preismodells erreicht werden.
Hinzufügen eines MarktumfeldfiltersEs ist möglich, die Logik der Marktumgebung zu ergänzen, um beispielsweise den aktuellen Marktzustand anhand von Volatilitätsindikatoren (wie VIX oder ATR) zu beurteilen und in verschiedenen Marktumgebungen unterschiedliche Parameter-Einstellungen zu verwenden oder sogar den Handel auszusetzen. In einem sehr volatilen Markt können beispielsweise breitere Stop-Loss- und konservativere Positionsgrößen erforderlich sein.
Verlust von SimulationsvolumenUm die Anwendbarkeit der Strategie in Märkten zu verbessern, in denen keine oder unzuverlässige Transaktionsvolumen-Daten vorliegen, kann eine Alternative entwickelt werden, die keine Transaktionsvolumen benötigt, z. B. die Verwendung von Preisschwankungsbereichen oder anderen technischen Indikatoren anstelle der Transaktionsvolumen-Bestätigung.
Zeitfilter hinzufügenBetrachten Sie die Möglichkeit, Zeitfilter zu verwenden, um den Handel vor und nach Markteintritten zu vermeiden oder die Veröffentlichung wichtiger Wirtschaftsdaten zu vermeiden. Dies kann durch Überprüfung der aktuellen Handelszeiten und Einstellung von Zeitfenstern, die den Handel erlauben, erreicht werden.
Die Handelsstrategie, die auf EMA-Kreuzung, CPR und Volumenfilter basiert, bietet ein umfassendes Handelssystem-Framework, das Trendverfolgung, Preisniveau-Bestätigung und Handelsvolumen-Verifizierung kombiniert und Risikomanagementfunktionen integriert. Die Kernvorteile der Strategie liegen in ihren mehrfachen Bestätigungsmechanismen und automatischen Stop-Loss-/Stop-Sets, die zur Erhöhung der Zuverlässigkeit und Disziplin bei den Geschäften beitragen.
Wie bei allen Handelsstrategien gibt es jedoch einige Herausforderungen, wie die Gefahr von Falschsignalen und die Einschränkungen festgelegter Parameter. Durch die oben genannten Optimierungsrichtungen, insbesondere durch verbesserte Trenderkennung, dynamische Stop-Loss-/Stop-Adjustments und verstärkte Marktumfeldfilterungen, kann die Robustheit und Anpassungsfähigkeit der Strategie weiter verbessert werden.
Die Strategie bietet den Händlern einen guten Ausgangspunkt, um sie individuell nach ihrem individuellen Handelsstil und ihren Marktpräferenzen anpassen zu können. Vor allem sollte bei jeder Änderung der Strategie ein solides Prinzip des Risikomanagements beibehalten werden, überoptimierte Parameter vermieden werden und vor dem Handel in der Praxis eine ausreichende Rückmeldung und Simulationsprüfung durchgeführt werden.
/*backtest
start: 2024-05-20 00:00:00
end: 2025-05-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDC"}]
*/
//@version=6
strategy("Backtest: EMA + CPR + Volume + SL/Target", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=1)
// === INPUTS === //
emaFastLen = input.int(20, title="Fast EMA (20)")
emaSlowLen = input.int(50, title="Slow EMA (50)")
showCPR = input.bool(true, title="Show CPR?")
slPct = input.float(1.5, title="Stop Loss %") / 100
tpPct = input.float(3.0, title="Target %") / 100
useVolume = input.bool(true, title="Use Volume Filter?")
// === EMAs === //
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
bullishCross = ta.crossover(emaFast, emaSlow)
bearishCross = ta.crossunder(emaFast, emaSlow)
plot(emaFast, color=color.orange, title="EMA 20")
plot(emaSlow, color=color.blue, title="EMA 50")
// === CPR === //
prevHigh = request.security(syminfo.tickerid, "D", high[1])
prevLow = request.security(syminfo.tickerid, "D", low[1])
prevClose = request.security(syminfo.tickerid, "D", close[1])
pivot = (prevHigh + prevLow + prevClose) / 3
bc = (prevHigh + prevLow) / 2
tc = (pivot * 2) - bc
plot(showCPR ? pivot : na, color=color.gray, title="Pivot")
plot(showCPR ? bc : na, color=color.gray, title="CPR BC")
plot(showCPR ? tc : na, color=color.gray, title="CPR TC")
// === Volume Filter === //
volOK = not useVolume or (volume > ta.sma(volume, 20))
// === BUY / SELL CONDITIONS === //
longCondition = bullishCross and close > pivot and volOK
shortCondition = bearishCross and close < pivot and volOK
// === TRADE EXECUTION === //
if (longCondition)
strategy.entry("BUY", strategy.long)
strategy.exit("TP/SL", from_entry="BUY", stop=close * (1 - slPct), limit=close * (1 + tpPct))
if (shortCondition)
strategy.entry("SELL", strategy.short)
strategy.exit("TP/SL", from_entry="SELL", stop=close * (1 + slPct), limit=close * (1 - tpPct))
// === VISUAL SIGNALS === //
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")