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.
Zu den Vorteilen dieser Strategie gehören:
Es bestehen auch einige Risiken:
Einige Optimierungsrichtlinien:
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)