Exponentielle gleitende Durchschnittswerte und gleitende Durchschnittswerte mit enger Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-19 14:50:50
Tags:

img

Übersicht

Der Exponential Moving Average (EMA) und der Moving Average (MA) Crossover mit Schließstrategie erzeugt Handelssignale basierend auf der Preisbewegung eines Vermögenswerts in Bezug auf seine 9-Perioden-EMA und 20-Perioden-MA. Er verwendet EMA- und MA-Crossover-Signale, um die Trendrichtung für Eintritte zu bestimmen und schließt Positionen, wenn der Preis die gleitenden Durchschnitte überschreitet.

Strategie Logik

Berechnung der EMA und der MA

  • EMA9 berechnet den 9-Perioden-Exponential Moving Average der Schlusskurse.
  • ma20 berechnet den 20-Perioden-einfachen gleitenden Durchschnitt der Schlusskurse.

Kauf- und Verkaufsbedingungen

  • Die BuyCondition ist wahr, wenn der Close > sowohl EMA9 als auch Ma20 beträgt.
  • sellCondition ist wahr, wenn der Schluß < sowohl ema9 als auch ma20 beträgt.

Handelsausführung

  • Wenn buyCondition wahr ist, wird ein Long-Entry-Order ausgeführt.
  • Wenn sellCondition wahr ist, wird ein Short-Entry-Order ausgeführt.
  • Wenn der Preis wieder über die EMA9 oder die MA20 geht, schließen Sie jede offene Position.

Färbung von Kerzen

  • Grüne Kerzen zeigen die Kaufbedingung an
  • Rote Kerzen zeigen Verkaufszustand
  • Andere Kerzen sind standardmäßig weiß

EMA und MA Plotting

Die 9 EMA und die 20 MA sind für visuelle Verweise auf dem Diagramm dargestellt.

Analyse der Vorteile

Die Strategie kombiniert zwei weit verbreitete Indikatoren und nutzt die Trendverfolgungs- und Glättungsfähigkeiten der EMA und MA, um zuverlässigere Signale zu erzeugen.

Crossovers geben klare Trendschwankungen an und verhindern schlechte Trades.

Die Farbcodierung der Kerze zeigt die Bedingungen ohne komplexe Berechnungen an.

Die automatisierte Ein- und Ausstiegsabwicklung folgt streng vorgegebenen Regeln und unterstützt das Risikomanagement.

Risikoanalyse

Als Trendfolgende Indikatoren können gleitende Durchschnitte während von Bereichsbegrenzungen viele falsche Signale erzeugen.

Schnelle Kursbewegungen können zu Verzögerungen bei den MA- und EMA-Werten führen und verpasste Chancen verursachen.

Die EMA- und MA-Parameter haben erhebliche Auswirkungen auf die Strategieergebnisse und sollten für verschiedene Produkte und Zeitrahmen angepasst werden.

Automatisierte Strategien können sich nicht an komplexe Situationen anpassen wie ein menschlicher Trader.

Optimierungsrichtlinien

Verschiedene Längenkombinationen von EMA und MA testen, um optimale Parameter zu finden, die wahre Signale maximieren und falsche Signale minimieren.

Einbeziehung von Volatilitätsmetriken wie ATR, um risikoreichere Setups zu filtern und potenzielle Verluste zu kontrollieren.

Kombination mit anderen Indikatoren oder Signalen wie Volumen und Bollinger Bands zur Bestätigung der Signalzuverlässigkeit.

Hinzufügen von Stop Loss und Gewinnlogik, um das Handelsrisiko aktiv zu verwalten.

Zusammenfassung

Der EMA- und MA-Crossover mit enger Strategie verwendet EMA- und MA-Crossovers, um Trends und Signal-Einträge zu bestimmen.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("EMA and MA Crossover with Close Strategy", shorttitle="EMA_MA_Close", overlay=true)

// Define the length of the Exponential Moving Average and Moving Average
lengthEMA = 9
lengthMA = 20

// Calculate the 9 EMA and 20 MA
ema9 = ema(close, lengthEMA)
ma20 = sma(close, lengthMA)

// Define the buy and sell conditions
buyCondition = close > ema9 and close > ma20
sellCondition = close < ema9 and close < ma20

// Define the close position condition
closeCondition = crossover(close, ema9) or crossover(close, ma20)

// Execute buy or sell orders
if (buyCondition)
    strategy.entry("Buy", strategy.long)
else if (sellCondition)
    strategy.entry("Sell", strategy.short)

// Close any position if the close condition is met
if (closeCondition)
    strategy.close_all()

// Coloring the candles based on conditions
barcolor(buyCondition ? color.green : na)
barcolor(sellCondition ? color.red : na)

// Plotting the EMA and MA for reference
plot(ema9, color=color.blue, title="9 EMA")
plot(ma20, color=color.orange, title="20 MA")


Mehr