
Diese Strategie ist eine hybride quantitative Handelsmethode, die die Messung der Distanz der technischen Indikatoren mit dem MACD-Umkehrsignal kombiniert. Sie bildet eine kombinierte Strategie, die sowohl die Trenddynamik als auch die Identifizierung potenzieller Umkehrungen erfasst, indem sie den aktuellen Marktzustand mit der Euclidean Distanz zwischen dem vordefinierten Zentrum der Bullen- und Bärenmärkte berechnet und gleichzeitig die Quersignale der MACD-Indikatoren kombiniert. Die Besonderheit der Strategie besteht darin, mehrere technische Indikatoren (EMA, Volatilität, Momentum, RSI und MACD) mit einer Kombination von Merkmalvektoren zu kombinieren, um die Ähnlichkeit der Marktlage mit den vorhergesagten Bedingungen mathematisch zu messen und so ein genaueres Handelssignal zu erzeugen.
Die Kernprinzipien der Strategie basieren auf zwei Hauptmechanismen:
EntfernungsmessmechanismusDie Strategie baut zunächst ein Merkmalvektor auf, das aus 6 technischen Indikatoren besteht, darunter Preis-EMA, Volatilität, Dynamik, RSI, MACD-Linien und MACD-Säulen. Gleichzeitig werden die beiden Mittelpunktvektoren Bull und Bear vordefiniert, um den idealen Zustand des Marktes zu repräsentieren, wenn er sich in einem Auf- und Abwärtstrend befindet. Durch die Berechnung des Abstands zwischen dem aktuellen Marktzustandvektor und diesen beiden Mittelpunktvektoren in Kilometern kann die Strategie beurteilen, welcher Zustand dem aktuellen Markt näher kommt.
MACD-KreuzsignalmechanismusAls zweite Ebene der Bestätigung verwendet die Strategie die Kreuzung der MACD-Indikatoren, um die Dynamik des Marktes zu beurteilen. Die MACD-Online-Kreuzung wird als Kaufsignal betrachtet, während die MACD-Unterline-Kreuzung als Verkaufssignal betrachtet wird.
Die Kombination dieser beiden Mechanismen erzeugt ein doppeltes Bestätigungssystem: Einerseits wird die allgemeine Tendenz des Marktes durch die Messung der Distanz beurteilt, andererseits wird die kurzfristige Dynamik durch die Kreuzung der MACD beurteilt. Die Strategie kann sowohl die gemeinsame Bestätigung der beiden Mechanismen (die Messung der Distanz und die MACD geben gleichzeitig das gleiche Signal) als auch den Handel auf der Grundlage von Signalen, die von einem der Mechanismen unabhängig erzeugt werden, nutzen, um die Vielfalt der Signale und die Häufigkeit der Fangmöglichkeiten zu erhöhen.
Mehrdimensionale MarktbeurteilungDurch die Kombination von mehreren technischen Indikatoren zu Merkmalvektoren kann die Strategie die Marktsituation in mehreren Dimensionen beurteilen, anstatt sich nur auf einen einzigen Indikator zu verlassen, wodurch das Risiko für falsche Signale verringert wird.
Flexible SignalerzeugungDie Strategie nutzt sowohl die Messung der Entfernung als auch die MACD-Kreuzung, um ein Signal zu erzeugen, das sowohl die anhaltende Dynamik in einem trendmäßigen Verhalten erfasst als auch die potentiellen Wendepunkte rechtzeitig erkennt und besser anpassungsfähig ist.
Die Objektivität mathematischer ModelleDie Berechnung der Eukalyptischen Distanz bietet eine objektive, mathematische Methode zur Beurteilung der Marktsituation und reduziert den Einfluss subjektiver Beurteilungsfaktoren.
Automatische AusgleichsregelungDie Strategie löst automatisch Positionen in der entgegengesetzten Richtung aus, wenn ein neues Signal erzeugt wird, was dazu beiträgt, Verluste rechtzeitig zu stoppen und die Position in eine andere Richtung zu verlagern, um sich an schnell veränderte Märkte anzupassen.
LeistungsüberwachungDie Strategie bietet eine integrierte Funktion zum Tracken und Anzeigen von Gewinnen und Verlusten, um die Strategie-Performance in Echtzeit zu bewerten und die erforderlichen Parameter-Anpassungen vorzunehmen.
ParametersensitivitätsrisikoDie in der Strategie verwendeten Indikatoren wie EMA, RSI und MACD sind von bestimmten Parameter-Sets abhängig. Wenn diese Parameter nicht für die aktuellen Marktbedingungen geeignet sind, kann dies zu falschen Signalen führen. Die Lösung besteht darin, die optimale Kombination von Parametern durch Rückmessung zu finden und die Wirksamkeit der Parameter regelmäßig neu zu bewerten.
ÜberhändlerrisikenDa Strategien auf zwei unterschiedlichen Mechanismen basieren können, um unabhängig voneinander Signale zu erzeugen, kann es in einem volatilen Markt zu viele Handelssignale geben, was zu erhöhten Handelskosten führt. Unnötige Geschäfte können reduziert werden, indem ein Signalfiltermechanismus hinzugefügt oder die Signalgenerationslogik angepasst wird.
Trend-Konflikt mit der UmkehrungUnter bestimmten Marktbedingungen können Distanzmessungen und MACD-Signale widersprüchliche Anweisungen geben, was zu einem widersprüchlichen Verhalten der Strategie führt. Es wird empfohlen, klare Signalprioritätsregeln zu schaffen oder zusätzliche Bestätigungsmechanismen einzuführen.
Statik der ZentralpunkteinstellungDie Parameter für den bullish-bearish-Marktzentrum in der aktuellen Strategie sind statisch eingestellt (z. B. RSI-Werte), die möglicherweise nicht an alle Marktbedingungen angepasst werden können. Die Einführung eines Anpassungsmechanismus kann in Betracht gezogen werden, der die Position des Mittelpunkts dynamisch anhand der historischen Daten anpasst.
Einschränkungen eines einzigen ZeitrahmensStrategie, die nur in einem einzigen Zeitrahmen ausgeführt wird, kann wichtige Signale in größeren oder kleineren Zeitrahmen verpassen. Erwägen Sie, die Strategie auf mehrere Zeitrahmen auszuweiten, um die Zuverlässigkeit des Signals zu verbessern.
Anpassung an die Zentrum-DesignDie Parameter des aktuellen bullish-bearish Centerpoints sind teilweise fest, können aber als dynamische Centerpoints verbessert werden, die automatisch auf der Grundlage historischer Daten berechnet werden. Beispielsweise können Daten aus den vergangenen N-Zyklen verwendet werden, um den idealen Zustand von Bulls und Bären zu bestimmen, so dass sich die Centerpoints automatisch an die Marktbedingungen anpassen können.
Signalpriorität und FiltermechanismenEinführung eines Signal-Priorität-Systems basierend auf der Marktumgebung, z. B. Priorisierung von Umkehrsignalen bei hoher Schwankungsrate und der Priorisierung von Distanzmesssignalen bei einer offensichtlichen Tendenz zu niedriger Schwankungsrate. Gleichzeitig können Signalfilter basierend auf Schwankungsrate oder Umsatzmenge hinzugefügt werden, um die Geräuschsignale zu reduzieren.
Stop-Loss- und Gewinnziel-MechanismenEs fehlt an klaren Stop-Loss- und Profit-Zielstellungen für die derzeitige Strategie, so dass ein Stop-Loss-Mechanismus auf der Grundlage von ATR oder festen Prozentsätzen sowie ein Profit-Zielstellungsmodell auf der Grundlage von Support/Resistance Levels oder RRRs hinzugefügt werden können.
Integration von mehreren Zeitrahmen: Die Integration von Trendinformationen über größere Zeiträume in die aktuelle Strategie, z. B. die Ausführung von Handelssignalen auf Stundenebene, nur wenn die Sonnenstrahltrendrichtung übereinstimmt, um die Reliabilität des Signals zu erhöhen.
Dynamische Anpassung der Eigenschaftsgewichtung: Verteilung von dynamischen Gewichten auf verschiedene Indikatoren in Merkmalvektoren, automatische Anpassung des Einflusses der einzelnen Indikatoren an die Prognosefähigkeit unter verschiedenen Marktbedingungen, um die Genauigkeit der Entfernungsberechnung zu verbessern.
Maschinelles Lernen verstärktEs kann in Betracht gezogen werden, einfache Machine-Learning-Algorithmen einzuführen, um die Position des Mittelpunkts oder die Eigenschaftsgewichtung zu optimieren. Es kann sogar verwendet werden, um mehrere Zentralpunkte der Zustände des Marktes automatisch zu entdecken, anstatt nur die beiden Zustände der einfachen Bulls und Bears.
Technische Indikatorentfernungsmessung mit MACD-Umkehrmisch-Quantifizierungs-Handelsstrategie ist eine innovative Methode des Quantifizierungs-Handels, die mehrere allgemein verwendete Technische Indikatoren in ein einheitliches System zur Beurteilung des Marktzustands durch die Berechnung der Euclidean-Distanz-Technologie integriert und in Kombination mit dem MACD-Kreuzsignal eine Doppelbestätigungsmechanismus bildet. Diese Methode kann sowohl die Dynamik in anhaltenden Trends erfassen als auch potenzielle Marktumkehrpunkte identifizieren und ist stark anpassungsfähig und flexibel.
Die Kernvorteile der Strategie liegen in ihrer Fähigkeit zur multidimensionalen Marktbeurteilung und der Objektivität mathematischer Modelle, aber es gibt auch Risiken wie Parameter-Sensitivität, Über-Trading und Signalkonflikte. Die Strategie bietet viel Raum für Optimierung und Verbesserung durch die Einführung eines anpassungsfähigen Mittelpunktdesigns, die Optimierung eines Signalprioritätssystems, die Erhöhung von Stop-Loss-Mechanismen, die Integration von Multi-Time-Framework-Analysen und die Anwendung von Machine-Learning-Technologien.
Diese Strategie, die traditionelle Methoden der technischen Analyse mit mathematischen Modellen verbindet, bietet eine neue Richtung, die es wert ist, für quantitative Händler zu erforschen, insbesondere für Händler, die die Objektivität ihrer Handelsentscheidungen erhöhen möchten, während sie die Erklärbarkeit der Strategie bewahren.
/*backtest
start: 2024-04-15 00:00:00
end: 2024-12-31 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Bysq-Distance Reversal Entry - BTCUSDT (v6)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, margin_long=0, margin_short=0)
// ========== FEATURE ENGINEERING ==========
price = close
priceNorm = ta.ema(price, 5)
volatility = ta.stdev(price, 20)
momentum = ta.ema(close - close[5], 5)
rsi = ta.rsi(close, 14)
macdLine = ta.ema(close, 12) - ta.ema(close, 26)
signalLine = ta.ema(macdLine, 9)
macdHist = macdLine - signalLine
// Fitur sebagai vector
featureVector = array.new_float(6)
array.set(featureVector, 0, priceNorm)
array.set(featureVector, 1, volatility)
array.set(featureVector, 2, momentum)
array.set(featureVector, 3, rsi)
array.set(featureVector, 4, macdLine)
array.set(featureVector, 5, macdHist)
// Centroid bullish
bullishCentroid = array.new_float(6)
array.set(bullishCentroid, 0, price)
array.set(bullishCentroid, 1, volatility)
array.set(bullishCentroid, 2, momentum)
array.set(bullishCentroid, 3, 60.0)
array.set(bullishCentroid, 4, macdLine)
array.set(bullishCentroid, 5, macdHist)
// Centroid bearish
bearishCentroid = array.new_float(6)
array.set(bearishCentroid, 0, price)
array.set(bearishCentroid, 1, volatility)
array.set(bearishCentroid, 2, momentum)
array.set(bearishCentroid, 3, 40.0)
array.set(bearishCentroid, 4, macdLine)
array.set(bearishCentroid, 5, macdHist)
// Fungsi Euclidean Distance
euclideanDistance(arr1, arr2) =>
dist = 0.0
for i = 0 to array.size(arr1) - 1
a = array.get(arr1, i)
b = array.get(arr2, i)
dist += math.pow((a - b), 2)
math.sqrt(dist)
// Hitung jarak ke centroid
distToBullish = euclideanDistance(featureVector, bullishCentroid)
distToBearish = euclideanDistance(featureVector, bearishCentroid)
// ========== SINYAL ==========
// Original distance strategy signals
isDistanceBuySignal = distToBullish < distToBearish and ta.crossover(macdLine, signalLine)
isDistanceSellSignal = distToBearish < distToBullish and ta.crossunder(macdLine, signalLine)
// Reversal strategy signals
isReversalBuySignal = ta.crossover(macdLine, signalLine)
isReversalSellSignal = ta.crossunder(macdLine, signalLine)
// Combined signals - using both strategies
isBuySignal = isDistanceBuySignal or isReversalBuySignal
isSellSignal = isDistanceSellSignal or isReversalSellSignal
// ========== EKSEKUSI ==========
if isBuySignal
strategy.close("Sell") // Close any sell position first (from reversal strategy)
strategy.entry("Buy", strategy.long)
if isSellSignal
strategy.close("Buy") // Close any buy position first (from reversal strategy)
strategy.entry("Sell", strategy.short)
// ========== METRIK KINERJA ==========
float lastOpenTradeProfit = na
if strategy.opentrades > 0
lastOpenTradeProfit := strategy.opentrades.profit(strategy.opentrades - 1)
float lastClosedTradeProfit = na
if strategy.closedtrades > 0
lastClosedTradeProfit := strategy.closedtrades.profit(strategy.closedtrades - 1)
// Plot info
plot(lastOpenTradeProfit, title="Last Open Trade Profit", color=color.blue)
plot(lastClosedTradeProfit, title="Last Closed Trade Profit", color=color.orange)