
Die Multi-Time-Frame-Trend-Tracking-Strategie, die auf EMA und Supertrend basiert, ist ein umfassendes quantitatives Handelssystem, das hauptsächlich Markttrends erfasst und Handelssignale erzeugt, indem es mehrere Moving Averages und eine Kombination von Supertrend-Indikatoren verwendet. Die Strategie verwendet die Index-Moving Averages (EMA) aus drei verschiedenen Perioden als vorläufige Beurteilung der Trendrichtung, während die Supertrend-Indikatoren, die auf ATR (echte Schwankungsbreite) basieren, als Hauptgrund für Ein- und Ausstieg verwendet werden.
Die Kernprinzipien der Strategie basieren auf einer synchronisierten Bestätigung von mehrschichtigen technischen Kennzahlen, die hauptsächlich folgende Schlüsselkomponenten umfassen:
Mehrere EMA-KreuzungenDie Strategie verwendet Indikator-Moving-Averages aus drei verschiedenen Phasen (9, 15 und 15) zur Beurteilung der Gesamttrendrichtung des Marktes. Wenn ein schneller EMA (Phasen 9) über einem langsameren EMA (Phasen 15) liegt, wird er als Aufwärtstrend identifiziert; im Gegensatz dazu als Abwärtstrend.
Supertrend-IndikatorenDie Strategie basiert auf der Berechnung der oberen und unteren Orbitalen basierend auf der ATR (Average True Range), die bei einem Aufbruch in die Oberbahn in eine Mehrtrend und bei einem Abbruch in eine Kurztrend umgewandelt wird. Die Strategie verwendet die ATR von 10 Zyklen und die Multiplikatorparameter von 3,0.
TrendbestätigungsmechanismusDie Strategie erzeugt nur dann ein Handelssignal, wenn die EMA-Trendrichtung mit der Supertrend-Trendrichtung übereinstimmt, wodurch die Wahrscheinlichkeit für ein falsches Signal reduziert wird.
Logik der Signalgenerierung:
PositionsverwaltungDie Strategie verwendet den Prozentsatz der Kontogewinnquote ((100%) als Standard-Positionsgröße, was einen dynamischen Positionsanpassungsmechanismus basierend auf der Kontogröße bietet.
MehrfachbestätigungDurch die Anforderung, dass EMA-Trends mit Supertrend-Signalen übereinstimmen, wird die Wahrscheinlichkeit eines falschen Handelssignals deutlich reduziert und die Stabilität der Strategie erhöht.
Trend-Tracking-EffekteDie Strategie ist in der Lage, mittel- und langfristige Trends zu erfassen, insbesondere in einem hartnäckigen Markt, und ist in der Lage, die Trends zu verfolgen und lange genug zu halten, um beträchtliche Gewinne zu erzielen.
AnpassungsfähigkeitDer Supertrend-Indikator basiert auf der Berechnung des ATR und kann sich automatisch an die Marktvolatilität anpassen, so dass die Strategie in unterschiedlich schwankenden Umgebungen wirksam bleibt.
Gleichgewicht der HandelsfrequenzEs ist eine gute Balance zwischen der Häufigkeit der Transaktionen, die zu hohen Slippoints und Gebühren führt, und der Häufigkeit, die zu konservativ ist und wichtige Gelegenheiten verpasst.
VisualisierungStrategie: Die Farbgebundenen Bereiche zeigen den aktuellen Trendstatus visuell an, Grün zeigt den Aufwärtstrend, Rot den Abwärtstrend, was die Wahrnehmungsfähigkeit der Händler für den Marktzustand erhöht.
Kompatibilität mit Renko-DiagrammDie Strategie eignet sich besonders für die Verwendung in Kombination mit Renko-Charts, um die Auswirkungen von Marktlärm weiter zu reduzieren und die Signalqualität zu verbessern.
TrendumkehrrisikoIn einem bewegten Markt kann eine Strategie mit häufigen Falschbrüchen konfrontiert werden, die zu mehreren Einstiegs- und Ausstiegsgesprächen führen und zu fortlaufenden Verlusten führen. Hierzu kann die Einführung eines Fluktuationsfilters oder die Erhöhung der Bestätigungsbedingungen zur Verringerung falscher Signale in Betracht gezogen werden.
ParameterempfindlichkeitStrategie-Performance: Strategie-Performance ist empfindlich auf Parameter-Einstellungen wie EMA-Zyklen und ATR-Multiplikationen, wobei optimale Parameter unter verschiedenen Marktbedingungen stark variieren können. Es wird empfohlen, eine robuste Kombination von Parametern unter verschiedenen Marktbedingungen durch Rücktestung zu finden.
RückstandsproblemeAls Trend-Tracking-Strategie gibt es eine gewisse Signalrückständigkeit, die zu Beginn des Trends einen Teil des Trends verpasst oder am Ende des Trends einen Teil der Gewinne zurückgibt. Es kann in Betracht gezogen werden, eine mehr sensible kurzfristige Kennzahl als Hilfsmittel zu verwenden, um die Ein- und Ausstiegszeiten zu optimieren.
PositionsrisikenEs ist empfehlenswert, ein dynamisches Positionsmanagement einzuführen, das die Positionsgröße an die Marktvolatilität und die Stärke der Handelssignale anpasst.
Fehlende SchadensbegrenzungDer Code enthält keine eindeutigen Stop-Loss-Einstellungen, die bei einem plötzlichen Trendwechsel zu größeren Verlusten führen können. Die entsprechenden Stop-Loss-Konditionen sollten hinzugefügt werden, um die maximale Verlustmenge für einen einzelnen Handel zu begrenzen.
Auswahl der Parameter zur DiversifizierungDerzeit werden die beiden EMA-Zyklen in der Strategie auf die gleichen Werte gesetzt. Es wird empfohlen, sie auf unterschiedliche Werte wie 9, 15 und 21 zu unterscheiden, um ein klareres Trend-Level-Urteil zu erhalten.
Filterbedingungen hinzugefügtEs kann in Betracht gezogen werden, zusätzliche Bedingungen wie die Bestätigung der Quantität, die Filterung der Volatilität oder die Beurteilung der Marktstruktur hinzuzufügen, um die Falschsignale weiter zu reduzieren. Zum Beispiel ist der Handel nur erlaubt, wenn die Marktvolatilität in einem bestimmten Bereich liegt.
Optimierung der PositionsführungEinführung einer dynamischen ATR-basierten Positionsverwaltung, die Positionen bei hoher Volatilität reduziert und bei niedriger Volatilität erhöht, um Risiko und Ertrag auszugleichen.
Hinzufügen von Stop-Loss- und Stop-Stop-MechanismenDas System wurde in den USA entwickelt, um die Risiken von ATR-basierten dynamischen Stop-Loss- und Stop-Off-Bedingungen auf der Grundlage des RRR zu optimieren und die Kapitalverwaltung und Risikokontrolle zu optimieren.
ZeitfilterAnalysieren Sie die Performance von Strategien für verschiedene Zeiträume, vermeiden Sie unwirksame oder riskante Handelszeiten und handeln Sie nur in Zeiten, in denen die Strategie am besten funktioniert.
Verbesserte TrendbeurteilungslogikDie derzeitige Strategie ist relativ einfach, um Trends zu beurteilen. Es kann in Betracht gezogen werden, kompliziertere Trendbeurteilungsmethoden zu verwenden, z. B. die Richtung von Trends in längeren Zeiträumen oder die Verwendung von Preistrukturen (Hoch-Low-Punkte) zur Unterstützung.
Optimierung der NamensspezifikationenDerzeit werden nicht standardisierte Variablen benannt (z.B. Curly_Fries, Popeyes usw.), die zu beschreibenden, professionellen Bezeichnungen umgewandelt werden sollten, um die Lesbarkeit und Wartbarkeit des Codes zu verbessern.
Die Multi-Time-Frame-Trend-Tracking-Strategie, die auf EMA und Supertrend basiert, ist ein rationell konzipiertes quantitatives Handelssystem, das Markttrends effektiv erfasst und Risiken kontrolliert, indem es die Moving Average Crossing System und die ATR-Kanal-Break-Strategie kombiniert. Die Strategie ist besonders geeignet für die Verwendung in Marktumgebungen mit klaren Trends und eignet sich besonders gut für Renko-Charts.
Die wichtigsten Vorteile der Strategie liegen in der Mehrfachindikatorbestätigung und der Anpassungsfähigkeit, die eine bessere Stabilität in verschiedenen Marktumgebungen gewährleistet. Gleichzeitig gibt es Probleme mit der Parameter-Sensitivität und dem Trendumkehrrisiko, die durch Parameteroptimierung, Erhöhung der Filterbedingungen und Verbesserung der Kapitalverwaltung optimiert werden müssen.
Besonders zu beachten sind die Erweiterung der Stop-Loss-Mechanismen, die Optimierung der Positionsmanagementstrategien und die Verbesserung der Variablenbenennung in den Codes. Durch diese Optimierungen werden die Risiko-Rendite-Eigenschaften und die langfristige Stabilität der Strategien voraussichtlich deutlich verbessert.
Für Trader, die eine Trend-Tracking-Strategie verwenden möchten, ist dies ein gutes Basis-Framework, das nach individuellen Risikopräferenzen und spezifischen Markteigenschaften weiter angepasst und optimiert werden kann.
/*backtest
start: 2025-03-31 00:00:00
end: 2025-04-01 00:00:00
period: 2m
basePeriod: 2m
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT"}]
*/
//@version=6
strategy('Supertrend Strategy for Renko', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
Curly_Fries = input(9, title='Fast')
Popeyes = input(15, title='Medium')
Chicken_Sandwich = input(15, 'Slow')
ema_150 = ta.ema(close, Curly_Fries)
ema_200 = ta.ema(close, Popeyes)
ema_250 = ta.ema(close, Chicken_Sandwich)
a = plot(ema_150, title='EMA9')
b = plot(ema_200, title='EMA15')
c = plot(ema_250, title='EMA15')
ups = ema_150 > ema_250
down = ema_150 < ema_250
mycolor = ups ? color.green : down ? color.red : na
fill(a, c, color=mycolor)
Periods = input(title='ATR Period', defval=10)
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
changeATR = input(title='Change ATR Calculation Method?', defval=true)
showsignals = input(title='Show Buy/Sell Signals?', defval=true)
highlighting = input(title='Highlighter On/Off?', defval=true)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title='Up Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
buySignal = trend == 1 and trend[1] == -1 and ups
sellSignal = trend == -1 and trend[1] == 1 and down
if buySignal
strategy.entry('Long', strategy.long)
if sellSignal
strategy.close('Long')
strategy.entry('Short', strategy.short)
if trend == 1
strategy.close('Short') // Chiude lo short se il trend diventa rialzista
longFillColor = highlighting ? trend == 1 ? color.green : color.white : color.white
shortFillColor = highlighting ? trend == -1 ? color.red : color.white : color.white
fill(upPlot, dnPlot, title='Trend Highlighter', color=longFillColor)
alertcondition(buySignal, title='SuperTrend Buy', message='SuperTrend Buy!')
alertcondition(sellSignal, title='SuperTrend Sell', message='SuperTrend Sell!')
changeCond = trend != trend[1]
alertcondition(changeCond, title='SuperTrend Direction Change', message='SuperTrend has changed direction!')