
Die Ehlers-Tripole-Bartwors-Filter-Kreuztrend-Quantifizierungs-Trading-Strategie ist eine auf der Signalverarbeitungstheorie basierende Methode der technischen Analyse, die John Ehlers-Tripole-Bartwors-Kreuzalgorithmen auf Finanzmärkten-Daten anwendet. Die Strategie erzeugt Handelssignalen durch Filter, die Preisschwankungen ausgleichen, potenzielle Markttrends erkennen und die Kreuzungspunkte zwischen den Wellenwerten und den Triggerwerten nutzen. Darüber hinaus integriert die Strategie eine Streuungsdetektionsmechanik, um routinemäßige und versteckte Multi-Bereichs-Marktsignale zu erfassen und die Genauigkeit von Handelsentscheidungen zu verbessern. Die Kernvorteile dieser Strategie liegen darin, Marktgeräusche effektiv zu reduzieren, die Zuverlässigkeit der Trenderkennung zu erhöhen und das Handelsrisiko durch genaue Ein- und Ausgangspunkte zu kontrollieren.
Die Ehlers Tripole Batworth-Filter liegt im Zentrum der Quantifizierungsstrategie für die Quantifizierung von Cross-Trend-Trading und liegt in ihrem einzigartigen mathematischen Modell. Die Batworth-Filter sind eine Art von Low-Trend-Filter, die in der Signalverarbeitung weit verbreitet ist und sich hauptsächlich durch die Frequenzantwort mit der größten Flachheit im Durchgangsband auszeichnet. In den Finanzmärkten ermöglicht diese Eigenschaft es, kurzfristige Preisschwankungen effektiv zu filtern und langfristige Trendinformationen zu bewahren.
Die Umsetzung der Strategie basiert hauptsächlich auf folgenden Schritten:
FilterberechnungDurch:calculateButterworthFilterDie Funktion berechnet den Tripole-Bartworsch-Filterwert. Die Funktion nutzt mathematische Formeln, um die ursprünglichen Preisdaten in einen glatten Filterwert und den entsprechenden Auslöserwert umzuwandeln. Die Berechnung des Filterflusses beinhaltet komplexe mathematische Operationen, einschließlich der Index-Funktion, der Dreiecksfunktion und der Recursivität.
SignalgenerierungDie Strategie erzeugt Handelssignale in zweierlei Hinsicht:
Ausführung der TransaktionDie entsprechenden Transaktionsoperationen werden entsprechend der erzeugten Signale ausgeführt:
Strategie im Codestrategy.entryUndstrategy.closeFunktionen führen Transaktionen aus und übertragenplotshapeDie Funktion visualisiert die Transaktionssignalpunkte auf der Grafik.
Die Quantifizierung von Trends mit dem Ehlers Tripole Butterworth-Filter hat mehrere bedeutende Vorteile:
Starke GeräuschfilterfähigkeitDer Drei-Polar-Bartworsch-Filter besitzt eine hervorragende Signalglättung, die kurzfristige Marktschwankungen und Falschsignale effektiv filtert und es den Händlern erleichtert, echte Markttrends zu erkennen. Diese hocheffiziente Filterung wird durch die genau berechneten Faktoren ((coef1 bis coef4) im Code ermöglicht.
Genaue TrenderkennungDie Überschneidung der Filter und der Triggerlinie liefert ein klares Signal für eine Trendänderung, so dass Händler die Wendepunkte der Markttrends rechtzeitig erfassen können.ta.crossoverUndta.crossunderFunktionen, Strategien, um diese wichtigen Kreuzungen genau zu identifizieren.
Visuelle IntuitionStrategie: Die Verwendung von unterschiedlich farbigen Linien und Füllbereichen auf dem Diagramm zeigt die Beziehung zwischen den Ripple-Werten und den Triggerwerten auf intuitive Weise und hilft den Händlern, den aktuellen Marktzustand schnell zu beurteilen. Gelb bedeutet eine bullische Tendenz, lila eine abwärts gerichtete Tendenz.
Flexibel und anpassungsfähigStrategie: Die Strategie bietet die Option für die Anpassung der Preis-Eingabe und der Periodenparameter, die es dem Händler ermöglichen, die Strategieparameter an unterschiedliche Marktbedingungen und persönliche Vorlieben anzupassen.
Vollständige HandelssystemeDie Strategie beinhaltet nicht nur eine Signalgenerationsmechanik, sondern auch die komplette Handelslogik, einschließlich Ein- und Ausstiegsregeln, die sie zu einem eigenständigen Handelssystem machen.
SignalvisualisierungDurch:plotshapeFunktionen, Strategien, die Kauf- und Verkaufssignalpunkte auf einem Diagramm markieren, die es dem Händler ermöglichen, die historische Signalleistung intuitiv zu verstehen und die Strategie zu bewerten und zu optimieren.
Obwohl die Quantifizierungsstrategie von Ehlers Tripole Butterworth-Filter für die Quantifizierung von Trendkreuzungen viele Vorteile hat, gibt es einige potenzielle Risiken:
RückstandsrisikenAls ein Filterindikator ist die Strategie zwangsläufig mit einer gewissen Verzögerung behaftet. Obwohl ein Dreipoler-Bartwors-Filter eine geringere Verzögerung als ein einfacher Moving Average aufweist, kann es in einem schnell wechselnden Markt immer noch vorkommen, dass ein Signal nach dem idealen Einstiegspunkt auftritt. Um dieses Risiko zu verringern, kann man überlegen, die Periodenparameter zu verkürzen, was jedoch zu einer übermäßigen Signalempfindlichkeit führen kann.
Gefahr von FalschmeldungenIn einem bewegten Markt oder in einem Marktumfeld ohne deutliche Trends kann die Strategie zu einem erhöhten False Signal führen, was zu häufigen Transaktionen und unnötigen Verlusten bei den Gebühren führt. Das Risiko von False Signalen kann durch die Hinzufügung zusätzlicher Filterbedingungen oder die Bestätigung in Kombination mit anderen Indikatoren verringert werden.
ParameterempfindlichkeitStrategie-Leistung ist stark von der Wahl der Periodensymptome abhängig. Unterschiedliche Marktumgebungen können unterschiedliche Parameter-Einstellungen erfordern, und die falsche Parameter-Auswahl kann zu einer schlechten Strategie-Leistung führen. Es wird empfohlen, die Parameter unter verschiedenen Marktumgebungen durch historische Rückmeldung zu optimieren.
EinzelindikatorrisikenEs wird empfohlen, diese Strategie als Teil des Handelssystems zu verwenden, um eine umfassende Bewertung in Verbindung mit anderen Indikatoren oder Methoden vorzunehmen.
Systemisches RisikoIn extremen Marktbedingungen, wie starke Volatilität oder Liquiditätsentwässerung, können alle technischen Indikatoren, die auf historischen Daten basieren, ausfallen. Es wird empfohlen, geeignete Risikokontrollmaßnahmen wie Stop-Loss-Anweisungen und Positionsgrößenmanagement einzurichten.
Basierend auf einer eingehenden Analyse der Quantifizierungsstrategie für die Quantifizierung von Trendkreuzungen bei den Ehlers-Tripolar-Bartwors-Filtern gibt es folgende Optimierungsmöglichkeiten:
Anpassung der ParameterentwicklungDie aktuelle Strategie verwendet festgelegte Zyklusparameter. Es kann in Erwägung gezogen werden, ein Anpassungsparametermechanismus zu implementieren, der die Zyklusparameter automatisch an die Marktvolatilität anpasst. Zum Beispiel kann die Zyklusparameter dynamisch angepasst werden, indem die durchschnittliche reale Breite der Preise berechnet wird.
Mehrzeitbestätigung: Einführung von Filterberechnungen für mehrere Zeiträume, die die Übereinstimmung der Signale für verschiedene Zeiträume bestätigen, um falsche Signale zu reduzieren. Der folgende Code kann hinzugefügt werden:
[butterLong, triggerLong] = calculateButterworthFilter(priceInput, periodInput * 2)
longConfirmation = butter > trigger and butterLong > triggerLong
Hinzufügen von Hilfsindikatoren: Integration anderer technischer Indikatoren als Signalfilter, wie zum Beispiel der Relative Strength Index (RSI), der Random-Indicator (Stochastic) oder der Trading-Volumen-Indikator, der nur dann ausgeführt wird, wenn der Hilfsindikator bestätigt wird.
Erweiterte RisikomanagementDie Strategie beinhaltet eine dynamische Stop-Loss- und Stop-Stop-Mechanik, die die Stop-Loss-Distanz automatisch an die Marktvolatilität anpasst. Gleichzeitig kann die Positionsgrößenberechnung nach den Prinzipien der Kapitalverwaltung durchgeführt werden.
Optimierung der Scatter-TestsDerzeit wird die Scatter-Detection im Code erwähnt, aber in der Praxis nicht detailliert umgesetzt. Die Scatter-Detection-Algorithmen können verbessert werden, insbesondere die Identifizierung von versteckten Scatter, um die Signalqualität weiter zu verbessern.
Marktumfeld-FilterEs wird ein Mechanismus zur Identifizierung der Marktumgebung hinzugefügt, um verschiedene Handelsregeln für verschiedene Marktumgebungen zu verwenden. Beispielsweise kann ein langfristiger Trendindikator verwendet werden, um zu beurteilen, ob ein Trendmarkt oder ein Shockmarkt vorliegt, und die Handelsstrategie entsprechend anzupassen.
Maschinelles Lernen verstärktErwägen Sie die Einführung von maschinellen Lernmethoden wie Klassifizierungsalgorithmen oder Reinforcement Learning, um die Parameterwahl und die Signalgenerierungsprozesse zu optimieren und die Anpassungsfähigkeit der Strategie zu verbessern.
Die Quantifizierung der Querschnittstrends in der Handelsstrategie von Ehlers Tripole Batworth Filter bietet eine wissenschaftliche, systematische Methode zur Identifizierung von Markttrends. Die Strategie kombiniert die Theorie der Signalverarbeitung mit der technischen Analyse. Die Strategie reduziert den Marktlärm durch eine fortschrittliche Querschnittsalgorithmen und fängt die wichtigen Wendepunkte der Preisentwicklung ein, um eine objektive, quantifizierbare Grundlage für Handelsentscheidungen zu liefern.
Die Kernvorteile der Strategie liegen in ihrer starken Geräuschfilterfähigkeit und präzisen Trenderkennungsfunktion, die es ermöglicht, sich in einem marktüblichen Trendumfeld hervorzuheben. Gleichzeitig erfüllt die Strategie die individuellen Bedürfnisse verschiedener Händler durch die Bereitstellung von visualisierten Handelssignalen und flexiblen Parameteranpassungsoptionen.
Wie bei allen technischen Kennzahlen gibt es jedoch auch bei dieser Strategie Herausforderungen wie Rückstand, Falschsignale und Parameter-Sensitivität. Die Stabilität und Anpassungsfähigkeit der Strategie kann durch die Implementierung von Optimierungsmaßnahmen wie adaptive Parameter-Design, Mehrzeitbestätigung und unterstützende Kennzahlenintegration weiter verbessert werden.
Letztendlich bietet die Quantifizierungsstrategie für Quantifizierungs-Händler ein auf einer soliden mathematischen Grundlage basierendes Handelsinstrument, das sowohl als eigenständiges Handelssystem als auch als Teil einer komplexeren Handelsstrategie verwendet werden kann, um wertvolle Referenzinformationen für Handelsentscheidungen bereitzustellen. Durch ständige Optimierung und Verbesserung wird die Strategie zu einer stabilen und nachhaltigen Handelsperformance in einer Vielzahl von Marktumgebungen führen.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-06-12 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Ehlers Three Pole Butterworth Filter Strategy", overlay=true)
// 输入参数
priceInput = input(hl2, title='Price')
periodInput = input(15, title='Period')
// Function to calculate Ehlers Three Pole Butterworth Filter
calculateButterworthFilter(price, period) =>
a1 = 0.00
b1 = 0.00
c1 = 0.00
coef1 = 0.00
coef2 = 0.00
coef3 = 0.00
coef4 = 0.00
butter = 0.00
trigger = 0.00
pi = 2 * math.asin(1)
a1 := math.exp(-3.14159 / period)
b1 := 2 * a1 * math.cos(1.738 * pi / period)
c1 := a1 * a1
coef2 := b1 + c1
coef3 := -(c1 + b1 * c1)
coef4 := c1 * c1
coef1 := (1 - b1 + c1) * (1 - c1) / 8
butter := coef1 * (price + 3 * nz(price[1]) + 3 * nz(price[2]) + nz(price[3])) + coef2 * nz(butter[1]) + coef3 * nz(butter[2]) + coef4 * nz(butter[3])
butter := bar_index < 4 ? price : butter
trigger := nz(butter[1])
[butter, trigger]
// Calculate filter values
[butter, trigger] = calculateButterworthFilter(priceInput, periodInput)
// 绘制滤波器线
plotButter = plot(butter, 'Butter', color=color.new(color.yellow, 0), linewidth=3)
plotTrigger = plot(trigger, 'Butter Lag', color=color.new(color.fuchsia, 0), linewidth=3)
fill(plotButter, plotTrigger, color=butter > trigger ? color.yellow : color.fuchsia, transp=40)
// 定义交易信号
longCondition = ta.crossover(butter, trigger)
exitLongCondition = ta.crossunder(butter, trigger)
shortCondition = ta.crossunder(butter, trigger)
exitShortCondition = ta.crossover(butter, trigger)
// 执行交易
if (longCondition)
strategy.entry("Buy", strategy.long)
if (exitLongCondition)
strategy.close("Buy")
if (shortCondition)
strategy.entry("Short", strategy.short)
if (exitShortCondition)
strategy.close("Short")
// 绘制交易信号
plotshape(longCondition, "Buy Signal", shape.triangleup, location.belowbar, color=color.green, size=size.small)
plotshape(exitLongCondition, "Exit Long Signal", shape.triangledown, location.abovebar, color=color.red, size=size.small)
plotshape(shortCondition, "Short Signal", shape.triangledown, location.abovebar, color=color.orange, size=size.small)
plotshape(exitShortCondition, "Exit Short Signal", shape.triangleup, location.belowbar, color=color.blue, size=size.small)