Handelsstrategie mit mehrfachen exponentiellen gleitenden Durchschnitten

Schriftsteller:ChaoZhang, Datum: 2024-03-11 16:17:20
Tags:

img

Übersicht

Diese Strategie kombiniert mehrere exponentielle gleitende Durchschnitte (EMAs), um potenzielle Einstiegs- und Ausstiegspunkte auf dem Markt zu identifizieren.

Strategieprinzip

Diese Strategie verwendet 4 EMAs mit unterschiedlichen Perioden als Kernindikatoren, nämlich ultra-kurzfristige EMA (Default 8-Perioden), kurzfristige EMA (Default 13-Perioden), mittelfristige EMA (Default 21-Perioden) und langfristige EMA (Default 55-Perioden). Wenn die langfristige EMA unter den anderen drei EMAs liegt, wird davon ausgegangen, dass der aktuelle Markt am Anfang eines Aufwärtstrends sein kann, und die Strategie eröffnet eine Long-Position; wenn die langfristige EMA über den anderen drei EMAs liegt, wird davon ausgegangen, dass der aktuelle Markt am Anfang eines Abwärtstrends sein kann, und die Strategie schließt alle Long-Positionen. Die Strategie identifiziert Trendwendepunkte durch diese Kombination von Long- und Short-EMA-Arrangements, um aufstrebende Trends zu erfassen.

Im Vergleich zum einfachen gleitenden Durchschnitt (SMA) legt die EMA mehr Wert auf die jüngsten Preise und somit ist ihr Trend empfindlicher und kann schneller auf Preisänderungen reagieren. Der Crossover von EMAs mit verschiedenen Perioden spiegelt die Stärke der Trends auf verschiedenen Zeitskalen wider. Die langfristige EMA ist die stabilste und repräsentiert den signifikanten Markttrend; die mittelfristigen und kurzfristigen EMAs sind relativ empfindlich und spiegeln die kurz- und mittelfristigen Markttrends wider. Sie bilden zusammen die Kernlogik dieser Strategie.

Analyse der Vorteile

  1. Breite Anwendbarkeit: Diese Strategie basiert auf dem EMA-Indikator des Preises selbst und ist auf die meisten Varianten mit guter Liquidität und relativ glatten Trends anwendbar, wie z. B. verschiedene Futures, Forex, Mainstream-Kryptowährungen usw.

  2. Trendverfolgung: Durch den Vergleich des Positionsverhältnisses von EMAs mit verschiedenen Perioden, um den Trend zu bestimmen, kann der Beginn der Trendbildung bis zu einem gewissen Grad erfasst und der Trend verfolgt werden.

  3. Flexible Parameter: Die Periodenparameter der EMA können flexibel an die Merkmale der Sorten, des Anlagehorizonts usw. angepasst werden und verfügen über eine gewisse Anpassungsfähigkeit.

  4. Klares Verständnis: Die Strategie erzeugt Handelssignale, die auf einer einfachen Kombination aus langen und kurzen EMA-Arrangements basieren, und die Logik ist klar und leicht zu verstehen und umzusetzen.

Risikoanalyse

  1. EMA-Verzögerung: Die EMA ist im Wesentlichen ein Trend-Tracking-Indikator und weist eine gewisse Verzögerung auf, die in einem turbulenten Markt mehr falsche Signale erzeugen kann.

  2. Parameterempfindlichkeit: Die Auswahl der EMA-Periodenparameter hat erhebliche Auswirkungen auf die Strategieleistung, und die optimierten Parameter können bei Daten außerhalb der Stichprobe möglicherweise keine gute Leistung aufweisen.

  3. Fehlende Filterung: Diese Strategie enthält keine weitere Filterung von Handelssignalen, und alle erzeugten Signale werden gehandelt, was zu einigen qualitativ schlechten Trades führen kann.

  4. Festposition: Derzeit eröffnet die Strategie jedes Mal eine feste Position von einer Einheit, da eine dynamische, risikobasierte Positionskontrolle fehlt und das Risikomanagement nicht perfekt genug ist.

Optimierungsrichtung

  1. Einführung der Trendfilterung: Auf der Grundlage der EMA-Signale werden Trendstärke-Filterindikatoren wie ATR und ADX hinzugefügt, um Signale von schwachen Trends und turbulenten Perioden auszufiltern.

  2. Einführung von Volatilitätsfiltern: Auf der Grundlage von Trendfiltern kann eine Volatilitätsfilterung wie die Breite des Bollinger Bands weiter eingeführt werden, um Signalen niedriger Qualität, die durch hohe Volatilität verursacht werden können, auszufiltern.

  3. Optimieren Sie Stop-Loss: Derzeit fehlt die Strategie an einer klaren Stop-Loss-Logik. Nach der Einführung von Trend- und Volatilitätsfilterung kann dynamischer Stop-Loss basierend auf ATR oder Prozentsatz hinzugefügt werden, um den maximalen Verlust eines einzelnen Handels zu kontrollieren.

  4. Dynamische Position: Aufgrund der Volatilität der Varianten, des Anteils des Kontowerts usw. kann die Anzahl der jeweils durch die Strategie eröffneten Positionen dynamisch gesteuert werden, um höhere absolute Renditen zu erzielen und gleichzeitig das Risiko zu reduzieren.

  5. Optimierung der Parameter: Für verschiedene Sorten und verschiedene Zeiträume können die optimalen Parameter der EMA unterschiedlich sein, und die Parameteroptimierung muss je nach den Merkmalen der Sorten getrennt durchgeführt werden, um die Anwendbarkeit der Strategie zu verbessern.

Zusammenfassung

Diese Strategie identifiziert Trendwendepunkte, indem sie die langen und kurzen Anordnungskombinationen von 4 EMAs mit verschiedenen Perioden vergleicht, um den Beginn der Trendbildung zu erfassen. Die Idee ist einfach und klar. Ihre Vorteile liegen in ihrer breiten Palette an Anwendbarkeit, klarer Logik und flexiblen Parametern, und sie kann Trends gut verfolgen; aber gleichzeitig hat sie auch die inhärente Verzögerung der EMA-Indikatoren sowie Probleme wie Parameterempfindlichkeit, Mangel an Filterung und feste Position. In Zukunft können die Robustheit und Rentabilität dieser Strategie durch Aspekte wie die Einführung von Trend- und Volatilitätsfilterung, die Optimierung von Stop-Loss, dynamische Position und Parameteroptimierung verbessert werden, um sie vollständiger und zuverlässiger zu machen.


/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © n1ghthawk

//@version=5
strategy("donmo's 4ema", overlay=true, margin_long=100, margin_short=100)

float long = na
float short = na

lowestEMAPeriodInput = input.int(8, "Lowest EMA")
lowEMAPeriodInput = input.int(13, "Low EMA")
medEMAPeriodInput = input.int(21, "Med EMA")
highEMAPeriodInput = input.int(55, "High EMA")

lowestEMA = ta.ema(close, lowestEMAPeriodInput)
lowEMA = ta.ema(close, lowEMAPeriodInput)
medEMA = ta.ema(close, medEMAPeriodInput)
highEMA = ta.ema(close, highEMAPeriodInput)


emaLongCondition = highEMA<medEMA and highEMA<lowEMA and highEMA<lowestEMA
emaShortCondition = highEMA>medEMA and highEMA>lowEMA and highEMA>lowestEMA

longCondition = ta.change(emaLongCondition)
shortCondition = ta.change(emaShortCondition)

notInTrade = strategy.position_size <= 0
if longCondition and emaLongCondition and notInTrade
    long:=high
    strategy.entry("EL", strategy.long)

if shortCondition and emaShortCondition
    short:=low
    strategy.close("EL")


plot(long+3,title = 'long', color = color.green, linewidth = 4, style = plot.style_cross)
plot(short-3,title = 'short', color = color.red, linewidth = 4, style = plot.style_cross)

plot(lowestEMA, title = "lowestEMA", color=color.blue)
plot(lowEMA, title = "lowEMA", color=color.green)
plot(medEMA, title = "medEMA", color=color.orange)
plot(highEMA, title = "highEMA", color=color.red)

Mehr