EMA23/EMA50 Doppel gleitender Durchschnitt Quantifizierende Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-04-26 15:29:21
Tags:EMAEMA23EMA50

img

Übersicht

Diese Strategie basiert auf den Crossover-Signalen von EMA23 und EMA50 für den Handel. Wenn EMA23 über EMA50 überschreitet, erzeugt sie ein Kaufsignal und wenn sie darunter überschreitet, erzeugt sie ein Verkaufssignal. Die Strategie implementiert auch einen Stop-Loss für Long-Positionen, wenn der Preis unter EMA50 fällt und für Short-Positionen, wenn der Preis über EMA50 steigt. Darüber hinaus tritt die Strategie wieder in den Markt, wenn sich der Preis über EMA50 bewegt.

Strategieprinzipien

  1. Berechnen Sie die beiden exponentiellen gleitenden Durchschnitte: EMA23 und EMA50.
  2. Erstellen eines Kaufsignals, wenn der EMA23 über den EMA50 überschreitet, und eines Verkaufssignals, wenn der EMA23 unter den EMA50 überschreitet.
  3. Für Long-Positionen wird ein Stop-Loss eingeführt, wenn der Kurs unter die EMA50 fällt und der Schlusskurs unter der EMA50 der vorherigen Kerze liegt.
  4. Für Short-Positionen wird ein Stop-Loss eingeführt, wenn der Kurs über die EMA50 steigt und der Schlusskurs höher ist als die EMA50 der vorherigen Kerze.
  5. Bei Long-Positionen wird der Markt erneut betreten, wenn sich der Kurs wieder über die EMA50 bewegt, wobei sowohl der Schlusskurs als auch der hohe Kurs höher als die EMA50 und die EMA23 höher als die EMA50 sind.
  6. Bei Kurzpositionen treten Sie wieder in den Markt ein, wenn sich der Kurs wieder unter die EMA50 bewegt, wobei der Schlusskurs und der niedrige Preis sowohl unter der EMA50 als auch unter der EMA23 liegen.
  7. Stellen Sie die Gewinnspanne für Long-Positionen auf das 1,6-fache des Einstiegspreises und für Short-Positionen auf das 0,75-fache des Einstiegspreises fest.

Strategische Vorteile

  1. Die doppelte gleitende Durchschnittsüberschneidung ist ein einfacher und effektiver Trendindikator, der Trends erfasst.
  2. Der Stop-Loss-Mechanismus hilft, das Risiko zu kontrollieren und zu verhindern, dass Verluste zunehmen.
  3. Der Wiedereintrittsmechanismus ermöglicht es der Strategie, Trends erneut zu erfassen und das Gewinnpotenzial zu erhöhen.
  4. Die Profitniveaus helfen, die Gewinne rechtzeitig zu sichern.
  5. Der 30-minütige Zeitrahmen bietet mehr Handelsmöglichkeiten und filtert gleichzeitig etwas Lärm aus.

Strategische Risiken

  1. Die EMA, als Trendindikator, ist verzögert und kann die optimalen Einstiegspunkte verpassen.
  2. Die Platzierung von Stop-Loss-Levels kann nicht optimiert sein, was zu vorzeitigen Stop-Outs führt.
  3. Häufiger Handel kann die Transaktionskosten erhöhen und die Rentabilität beeinträchtigen.
  4. Die Strategie kann mehr falsche Signale in einem Rangierungsmarkt erzeugen.
  5. Festgelegte Gewinnniveaus können das Gewinnpotenzial der Strategie einschränken.

Strategieoptimierungsrichtlinien

  1. Es sollte in Erwägung gezogen werden, andere technische Indikatoren einzuführen, um die Trendbestimmung zu unterstützen und die Einstiegs- und Ausstiegspunkte zu verbessern, wie MACD, RSI usw.
  2. Optimieren Sie die Platzierung von Stop-Loss-Levels und berücksichtigen Sie die Verwendung von Volatilitätsindikatoren wie ATR zur dynamischen Anpassung von Stop-Loss-Positionen.
  3. Kontrolle der Handelshäufigkeit durch Festlegung geeigneter Handelsfilterbedingungen zur Verringerung falscher Signale.
  4. Verwenden Sie unterschiedliche Einstellungen für Strategieparameter für Marktbereiche und Trends.
  5. Die Gewinnspanne sollte flexibler sein, indem sie dynamisch anhand der Marktvolatilität, des Risiko-Rendite-Verhältnisses usw. angepasst wird.

Zusammenfassung

Diese Strategie ist eine quantitative Handelsstrategie, die auf dem Crossover von zwei gleitenden Durchschnitten, EMA23 und EMA50, basiert. Sie erfasst Trends durch die Crossover-Signale und implementiert Stop-Loss- und Re-Entry-Mechanismen, um das Risiko zu kontrollieren und das Gewinnpotenzial zu erhöhen. Die Strategie ist einfach und leicht zu verstehen und eignet sich für den mittelfristigen bis kurzfristigen Handel im 30-minütigen Zeitrahmen. Die Strategie hat jedoch auch einige Einschränkungen, wie z. B. die Rückstandserkennung, die suboptimale Stop-Loss-Platzierung und die schlechte Performance in den Rangiermärkten. In Zukunft kann die Strategie durch die Einführung mehrer technischer Indikatoren, die Optimierung von Stop-Loss-Positionen, die Kontrolle der Handelsfrequenz, die Unterscheidung zwischen Trending- und Rangiermärkten und die Implementierung dynamischer Take-Profit-Level optimiert werden, um robustere Renditen


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

//@version=5
strategy("EMA Crossover Strategy", overlay=true)

// EMA 23 ve EMA 50'nin hesaplanması
ema23 = ta.ema(close, 23)
ema50 = ta.ema(close, 50)

// Ana alım kuralı: EMA 23 ve EMA 50'nin yukarı kesilmesi
buySignal = ta.crossover(ema23, ema50)

// Ana satış kuralı: EMA 23 ve EMA 50'nin aşağı kesilmesi
sellSignal = ta.crossunder(ema23, ema50)

// Long pozisyon stop seviyesi
longStopLoss = low < ema50 and close < ema50[1]

// Short pozisyon stop seviyesi
shortStopLoss = high > ema50 and close > ema50[1]

// Long pozisyon için tekrar giriş kuralı
longReEntry = high > ema50 and close > ema50 and close > ema50 and ema23 > ema50

// Short pozisyon için tekrar giriş kuralı
shortReEntry = low < ema50 and close < ema50 and close < ema50 and ema23 < ema50

// Long işlemde kar alma seviyesi (%60)
longTakeProfit = strategy.position_avg_price * 1.60

// Short işlemde kar alma seviyesi (%25)
shortTakeProfit = strategy.position_avg_price * 0.75

// Long işlem için yeniden giriş koşulu
longReEntryCondition = strategy.position_size <= 0 and longReEntry

// Short işlem için yeniden giriş koşulu
shortReEntryCondition = strategy.position_size >= 0 and shortReEntry

// Geriye dönük test için başlangıç tarihi (01.01.2022)
startDate = timestamp(2022, 01, 01, 00, 00)

if (time >= startDate)
    if (buySignal)
        strategy.entry("Buy", strategy.long)

    if (sellSignal)
        strategy.entry("Sell", strategy.short)

    if (strategy.position_size > 0 and (longStopLoss or close >= longTakeProfit))
        strategy.close("Buy")

    if (strategy.position_size < 0 and (shortStopLoss or close <= shortTakeProfit))
        strategy.close("Sell")

    if (longReEntryCondition)
        strategy.entry("Buy", strategy.long)

    if (shortReEntryCondition)
        strategy.entry("Sell", strategy.short)


Verwandt

Mehr