Trend nach einer auf gleitenden Durchschnitten basierenden Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-22 17:26:04
Tags:

img

Übersicht

Strategie Logik

Diese Strategie verwendet zwei exponentielle gleitende Durchschnitte (EMA) mit unterschiedlichen Perioden als Basis für Handelsentscheidungen. Die schnelle EMA hat eine Periode von 30 für die Erfassung von kurzfristigen Kursschwankungen. Die langsame EMA hat eine Periode von 100 für die Messung der Richtung des mittelfristigen bis langfristigen Trends.

Analyse der Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. Ermöglicht die Optimierung von Parametern, bei denen schnelle und langsame EMA-Perioden angepasst werden können.
  2. Einfache und klare Logik, leicht zu verstehen und umzusetzen, für Anfänger geeignet.

Risikoanalyse

Es bestehen auch einige Risiken:

  1. Sie ist anfällig für falsche Signale, wenn sich die Preise seitlich bewegen.
  2. Sie ist unwirksam bei extremen Kursschwankungen und kann Stop Loss setzen, um das Risiko zu kontrollieren.

Optimierungsrichtlinien

Einige Optimierungsrichtlinien:

  1. Fügen Sie Stop-Loss-Strategien hinzu, um den Abwärtstrend bei einzelnen Trades zu begrenzen.

Schlussfolgerung

Diese Strategie baut ein Handelssystem auf der Grundlage von doppelten EMA-Crossovers auf, bei dem schnelle und langsame EMA-Beziehungen zur Bestimmung des Markttrends verwendet werden. Die Signalgenerierung ist einfach und klar. Sie filtert etwas Lärm und geht mit den Trends einher, geeignet für den mittelfristigen bis langfristigen Trendhandel. Es gibt Raum für die Verbesserung der Universalität und Effizienz durch Multi-Indikator-Optimierung und Risikokontrolle.


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

//@version=2
strategy("EMA Strategy v2", shorttitle = "EMA Strategy v2", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)


// === Inputs ===
// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 30, title = "Fast MA Period", minval = 1)

// long ma
maSlowSource   = input(defval = close, title = "Slow MA Source")
maSlowLength   = input(defval = 100, title = "Slow MA Period", minval = 1)

// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop     = input(defval = true, title = "Use Initial Stop Loss?")
slPoints    = input(defval = 0, title = "Initial Stop Loss Points", minval = 1)
useTS       = input(defval = true, title = "Use Trailing Stop?")
tslPoints   = input(defval = 0, title = "Trail Points", minval = 1)
useTSO      = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset   = input(defval = 0, title = "Trail Offset Points", minval = 1)

// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)

plot(fastMA, color=blue)
plot(slowMA, color=purple)

goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())

// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())

if (useStop)
    strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
    strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.58)

Mehr