Die Hauptidee dieser Strategie besteht darin, die Kreuzungen zwischen kurzfristiger EMA und langfristiger EMA als Kauf- und Verkaufssignale zu verwenden. Insbesondere wird ein Kaufsignal generiert, wenn die kurzfristige EMA von unten über die langfristige EMA geht. Wenn die kurzfristige EMA von oben unter die langfristige EMA geht, wird ein Verkaufssignal generiert.
Die Strategie definiert zunächst die kurzfristige EMA-Periode als 3 Tage und die langfristige EMA-Periode als 30 Tage. Anschließend berechnet sie die Werte dieser beiden EMAs. Die kurzfristige EMA spiegelt die jüngsten Preisänderungen und die langfristige EMA spiegelt die langfristigen Preistrends wider. Wenn die kurzfristige EMA über die langfristige EMA überschreitet, deutet dies darauf hin, dass die jüngsten Preise zu steigen begonnen haben und den langfristigen Trend übertreffen. Dies ist das Signal für die Errichtung einer Long-Position. Wenn die kurzfristige EMA unter die langfristige EMA überschreitet, deutet dies darauf hin, dass die jüngsten Preise zu fallen begonnen haben, was den langfristigen Trend unterbewertet. Dies ist der Zeitpunkt für die Erstellung einer Position.
Speziell definiert die Strategie einen Unterschied, um den Crossover von EMAs zu beurteilen. Wenn der Unterschied größer als die Schwelle von 0,0005 ist, wird ein Kaufsignal generiert. Wenn er kleiner als die Schwelle von - 0,0005 ist, wird ein Verkaufssignal generiert. Die Positivität und Negativität des Unterschieds stellt dar, dass die kurzfristige EMA über oder unter der langfristigen EMA liegt. Händler verwenden dies, um die Öffnungsrichtung zu bestimmen.
Die Strategie markiert auch Dreieck nach oben und Dreieck nach unten Grafiken auf dem Leuchter-Chart, um Kauf- und Verkaufssignale visuell anzuzeigen.
Der größte Vorteil dieser Strategie besteht darin, dass sie einfach und effektiv ist: Sie verwendet den grundlegendsten Indikator EMA zur Beurteilung der Marktstruktur und vermeidet das Risiko einer Überanpassung durch zu komplizierte Modelle.
Als Trend-Tracking-Indikator kann die EMA effektiv zufälliges Rauschen glätten und langfristige und kurzfristige Trendrichtungen bestimmen. Im Vergleich zu anderen gängigen Indikatoren wie langfristigen und kurzfristigen gleitenden Durchschnittskreuzungen hat die EMA eine exponentielle Glättungsfunktion in ihrer Berechnung, die schneller auf Preisänderungen reagieren kann.
Durch die Kombination mehrerer EMA-Zyklen kann der Crossover zwischen langfristigen und kurzfristigen EMAs im Vergleich zu einzelnen EMA-Zyklusstrategien fälschliche Ausbrüche bis zu einem gewissen Grad filtern und somit robuster sein.
Das größte Risiko dieser Strategie liegt in der Verzögerung der EMA selbst. Bei schnellen Lücken oder Preisumkehrungen verzögern sich die EMA-Crossover-Signale oft und spiegeln nicht die zeitlichen Veränderungen des Marktes wider. Dies kann dazu führen, dass die besten Eröffnungsmöglichkeiten verpasst oder der Verlust nicht rechtzeitig gestoppt wird.
Darüber hinaus wirkt sich die Wahl der EMA-Perioden auch auf die Strategieleistung aus. Wenn die Zyklen falsch ausgewählt werden, führt dies zu zu vielen falschen Signalen. Zum Beispiel können zu kurze Zyklen zu einer Überempfindlichkeit gegenüber Marktlärm führen, während zu lange Zyklen keine Trendwende rechtzeitig erfassen können.
Schließlich können feste, inkrementelle Ein- und Ausstiegsschwellen auch zu einer unsachgemäßen Positionskontrolle führen.
Die Strategie kann in folgenden Aspekten optimiert werden:
Dynamische Optimierung der EMA-Zyklen. Auswahl oder automatische Optimierung der besten kurz- und langfristigen EMA-Kombinationen entsprechend den Marktbedingungen zur Verbesserung der Strategie-Rohrheit.
Einführung eines anpassungsfähigen Stop-Loss-Mechanismus; Festlegung vernünftiger beweglicher Stop-Loss-Linien, die auf der Volatilität des Marktes basieren und gleichzeitig einen effektiven Stop-Loss gewährleisten.
Kombination mit anderen Indikatoren, um Signale zu filtern, z. B. Positionskontrollindikatoren, Volatilitätsindikatoren usw., um erhebliche Verluste durch EMA-Crossover-Signale bei hoher Volatilität zu vermeiden.
Einführung von Techniken des maschinellen Lernens. Train-Modelle, um optimale EMA-Parameterkombinationen vorherzusagen. Modelle können auch verwendet werden, um EMA-Differenzen vorherzusagen, um genauere Handelssignale zu erhalten.
Zusammenfassend ist diese kurz- und langfristige EMA-Fusionsentscheidungsstrategie sehr einfach und direkt. Durch die Verwendung des grundlegenden EMA-Indikators zur Bestimmung von bullischen und bärischen Marktstrukturen wird eine übermäßige Optimierung und Modellrisiken vermieden. In der Zwischenzeit verbessert die Kombination mehrerer EMA-Zyklen auch die Signalqualität. Wir müssen jedoch auch auf das Verzögerungsrisiko achten, das die EMA selbst mit sich bringen kann, das eine anschließende ordnungsgemäße Optimierung erfordert, um es zu lösen.
/*backtest start: 2023-12-05 00:00:00 end: 2024-01-04 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Merged EMA Strategy", shorttitle="MergedEMA", overlay=true) // Define EMA periods shortEMA = ta.ema(close, 3) longEMA = ta.ema(close, 30) // Plot EMAs on the chart plot(shortEMA, color=color.blue, title="3 EMA") plot(longEMA, color=color.red, title="30 EMA") // Calculate the difference between short and long EMAs emaDifference = shortEMA - longEMA // Set threshold for buy and sell signals buyThreshold = 0.0005 sellThreshold = -0.0005 // Define buy and sell conditions buyCondition = emaDifference > buyThreshold sellCondition = emaDifference < sellThreshold // Plot buy and sell signals on the chart plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar) plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar) // Strategy logic strategy.entry("Buy", strategy.long, when = buyCondition) strategy.close("Buy", when = sellCondition) strategy.entry("Sell", strategy.short, when = sellCondition) strategy.close("Sell", when = buyCondition)